NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, -- 重複しない連番(主キー) name TEXT NOT NULL, -- 文字列、空っぽはダメ age INTEGER, -- 整数 email TEXT UNIQUE -- 文字列、他の人と同じメールアドレスはダメ ); IF NOT EXISTS : 同じ名前のテーブルがあってもエラーにしないおまじない。 PRIMARY KEY : 各行を区別するための「ゼッケン番号」。絶対に重複しません。 NOT NULL , UNIQUE : データの品質を保つための「ルール」(制約)です。 7
TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE ); """ try: with sqlite3.connect('example.db') as conn: cursor = conn.cursor() # SQL文を実行するためのカーソルを作成 cursor.execute(sql) # SQL文を実行! print("テーブル 'users' が作成されました。") except sqlite3.Error as e: print(f"エラー: {e}") 8
cursor.execute("SELECT name, email FROM users") for user in cursor.fetchall(): print(user) # ('Alice', '[email protected]') # ('Bob', '[email protected]') ... 条件で絞り込む ( WHERE ) WHERE 句を使えば、探しているデータをピンポイントで見つけられます。 cursor.execute("SELECT * FROM users WHERE name = ?", ('Bob',)) bob = cursor.fetchone() print(bob) 13