- 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 sqlite3sqlite3.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
    )
    '''
) 
  
  
  
  

コメント