推定無題

日々調べたこととか

SQL入門(書きかけ)

共通的な命令と構文についてのメモ。
主にMySQL/SQLite3を基準にしてます。

分類 SQLコマンド 概要
テーブルの定義 CREATE テーブルなどの作成
ALTER テーブルなどの変更
DROP テーブルなどの削除
データの操作 SELECT レコードの取得
INSERT レコードの追加
UPDATE レコードの更新
DELETE レコードの削除
データ制御 START TRANSACTION 更新処理の開始(MySQL)
BEGIN 更新処理の開始(SQLite3)
COMMIT 更新処理の確定
ROLLBACK 更新処理の破棄

データベースを作る

CREATE DATABASE データベース名;

SQLite3にはCREATE DATABASEコマンドがない。
コマンドラインから

$ sqlite3 データベース名

テーブルを作る

CREATE TABLE テーブル名(列名 型(サイズ) 制約, ...);

サイズ、制約はなければ書かなくて良い。
制約、制約に違反した処理については、いつか書く。

テーブルの変更

ALTER文で可能。
詳細はいつか書く。

テーブルの削除

DROP TABLE テーブル名;


レコードの追加/挿入

INTERT INTO テーブル名(列名1, 列名2...) VALUES(値1, 値2...);

レコードの更新

UPDATE テーブル名 SET 列名 = 値 WHERE 条件式;

レコードの削除

DELETE FROM テーブル名 WHERE 条件式;

レコードの取得

SELECT 取得する列名 FROM テーブル名 WHERE 条件式;

複数の列を取得する場合はカンマで区切る。
全ての列を取得する場合は「*(アスタリスク)」を

全てのレコードを取得する場合は

SELECT * FROM テーブル名;

で取得できます。

高度な条件指定について

「WHERE 条件式」部分は、より高度な指定が可能。
詳細はいつか書く。


トランザクション

開始

START TRANSACTION;    // MySQLの場合
BEGIN;    // SQLitte3の場合

確定

COMMIT;

取り消し

ROLLBACK;

以下の例は、SQLite3です。
トランザクションを開始し、確定します。

BEGIN;
// レコードの更新処理など
COMMIT;

開始したトランザクション前の状態にすべてを戻します(ロールバック=更新処理の破棄)

BEGIN;
// レコードの更新処理など
ROLLBACK;


勉強中…

Head First SQL ―頭とからだで覚えるSQLの基本

Head First SQL ―頭とからだで覚えるSQLの基本