- SQLを使い始めたので、使ったものをまとめていきます
- PythonでSQLを使う方法についても少しまとめました
- 順次追加予定です
テーブルの作成・削除
作成
CREATE TABLE 【テーブル名】(【カラム内容】)
例:テーブル「users」を作成する
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
カラム
カラムは【カラム名】 【型】 【オブション】
と記述する
- 【カラム名】:任意
- 【型】:
INTEGER
TEXT
etc. - 【オプション】の例
PRIMARY KEY
= プライマリーキー指定NOT NULL
= NULLを許容しないAUTOINCREMENT
= 値を1ずつ増加させて入れる
削除
DROP TABLE 【テーブル名】
例: テーブル「users」を削除する
DROP TABLE users
補足:IF EXIST
IF EXIST
、IF NOT EXIST
で対象テーブルが存在する場合、しない場合のみ作る、削除することも可能
テーブル「users」がない場合に作成
CREATE TABLE IF NOT EXISTS users(【カラム内容】)
テーブル「users」がある場合は削除
DROP TABLE IF EXISTS users
補足:複数カラムでのPRIMRY KEY
複数カラムの組み合わせをPRIMARY KEYに指定することもできる。
例: テーブル「utilities」を作成、year,monthの組み合わせをPRIMARY KEYにする
CREATE TABLE IF NOT EXISTS utilities (
year INTEGER NOT NULL,
month INTEGER NOT NULL,
electricity_cost INTEGER,
gas_cost INTEGER,
water_cost INTEGER,
PRIMARY KEY (year, month)
)
- PRIMARY KEYはユニークに設定する必要がある
- year、monthそれぞれだと、同年別月、別年同月の重複があるが、year, monthを組み合わせることでユニークになる
データ取得
SELECT 【カラム】 FROM 【テーブル名】
例: テーブル「users」からカラム「id」「name」「age」を取得
SELECT id, name, age FROM users
- 【カラム】を
*
にすると、全カラムを取得する
例: テーブル「users」から全カラムを取得
SELECT * FROM users
データ挿入
"INSERT INTO users (【カラム1】, 【カラム2】, …) VALUES (?, ?, …)", (【値1】, 【値2】, …)
例: テーブル「users」のカラム「name」「age」に「Alice」「30」を入れる
"INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30)
- INSERT時、
- 既にあったら上書きする時 →
INSERT OR REPLACE
- 既にあったら上書きしない時 →
INSERT OR IGNORE
- 既にあったら上書きする時 →
PythonでSQLを使う(sqlite3)
使用するためにはsqlite3
のimportが必要
import sqlite3
sqlite3.connect
でDBに接続(無い場合は作成される)、その後はexecute
でSQLコマンドを実行できる
例: DB「example.db」に接続し、テーブル「users」を作成する
conn = sqlite3.connect("example.db")
conn.execute(
'''
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
'''
)
コメント