CONTENTS コンテンツ

SQLを学ぼう!(1)

学習編-SQL

2024.06.17

 生成AIで架空のポケモンを作るためのデータベースを作っています。とりあえずデータベースができたので、不要なデータを抜いていこう。

入力:

作成したデータベースから、10文字以下の行を削除したいです。必要なコードを教えてください。

出力:

データベースから10文字以下の行を削除するには、以下のようなSQLクエリを使用します。Pythonコードに組み込んで実行する方法を示します。

SQLクエリ

まず、SQLiteで10文字以下の行を削除するSQLクエリは次のようになります:

DELETE FROM pokemon WHERE LENGTH(description) <= 10;

Pythonコード

次に、このクエリをPythonコードに組み込んで実行する方法を示します。

import sqlite3

# データベースに接続
conn = sqlite3.connect('pokemon_data.db')
c = conn.cursor()

# 10文字以下の行を削除する
c.execute('DELETE FROM pokemon WHERE LENGTH(description) <= 10')

# データベースをコミットしてクローズ
conn.commit()
conn.close()

このコードを実行することで、descriptionカラムの文字数が10文字以下の行がデータベースから削除されます。

 実行して「〇〇のすがた」みたいな行を削除できたけど、非可逆な変化させる前にバックアップ取っておくべきだったな。そしてSQLが完全に謎の呪文になっている。寄り道して理解しに行こう。ネットの海をさまよっていたら、AI SHIFT社の社内研修資料を公開しているページに行き着いたので、これを使うか。

 研修資料に問題演習とかはなさそうなので、ChatGPTに問題を作ってもらおう

入力:SQLのCreate文の理解度を確認するための問題を作ってください

出力:

以下に、SQLのCREATE文の理解度を確認するための問題をいくつか作成しました。これらの問題を解くことで、CREATE文の基本的な構文やオプションについての理解度を確認できます。

問題 1: 基本的なテーブルの作成

以下の要件を満たすSQLのCREATE文を作成してください。

  • テーブル名はstudents
  • idカラムは整数型で、プライマリキーであり、自動インクリメントされる。
  • nameカラムは文字列型で、NULL値を許可しない。
  • ageカラムは整数型で、NULL値を許可する。

 多分超基本的な問題なんだろうけど、自動インクリメント、NULL値の許可といった知らない概念に出会ったり、問題を解く過程で固定長-可変長と知らない概念に出会ったり、初見のころは学べることがいっぱいだ。

次回に続く

この記事をシェアする