- SQLを使い始めたので、使ったものをまとめていきます
 - PythonでSQLを使う方法についても少しまとめました
 - 順次追加予定です
 
テーブルの作成・削除
作成
CREATE TABLE 【テーブル名】(【カラム内容】)
例:テーブル「users」を作成する
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER
)
カラム
カラムは【カラム名】 【型】 【オブション】と記述する
- 【カラム名】:任意
 - 【型】:
INTEGERTEXTetc. - 【オプション】の例
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
    )
    '''
)
      
  
  
  
  

コメント