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 テーブル名(列名 型(サイズ) 制約, ...);
サイズ、制約はなければ書かなくて良い。
制約、制約に違反した処理については、いつか書く。
フィールド制約について
列に入れる値(フィールド値)に色々制約を設定できる。
制約 | 内容 |
---|---|
CHECK | 値の範囲を定義する |
NOT NULL | 値にNULLを許可しない |
UNIQUE | 値の重複を許可しない |
DEFAULT | 値の既定値を設定する |
PRIMARY KEY | 主キーである事を定義する |
FOREGIN KEY | 外部キーである事を定義する |
テーブルの変更
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の基本
- 作者: Lynn Beighley,佐藤直生(監訳),松永多苗子
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/06/09
- メディア: 大型本
- 購入: 10人 クリック: 222回
- この商品を含むブログ (24件) を見る