自分用にまとめ
SQLの種類
- DDL
- データ定義言語。
- データを格納する入れ物であるDBやテーブルなどを製作したり削除したりする。
- DML
- データ操作言語。
- テーブルの行を検索したり変更したりする。
- DCL
- データ制御言語。
- データベースに対して行った変更を確定したり、取り消したりする。その他RDBMSのユーザがDBにあるものを操作する権限の設定も行う
記述ルール
- SQL文はセミコロン(;)で終わる
- キーワードの大文字小文字は区別させない
- 文字列と日付の定数はシングルクォーテーションで囲む。数値の定数は囲まない
- 単語の間を半角スペース、または改行で区切る
DDL
CREATE
テーブルの作成
例
CREATE TABLE テーブル名 ( 列名 データ型, ...);
/* 作成したテーブルの確認 */
SHOW TABLES;
ALTER
テーブル変更
例
AlTER TABLE テーブル名 変更操作;
/* よく使う変更操作 */
ADD (列名 データ型) --列を追加
ADD 制約 --制約を追加
MODIFY 列名 データ型 --データ型や制約を変更
DROP COLUM 列名 --列を削除
DROP 制約 --制約を削除
DROP
テーブルの削除
例
DROP TABLE テーブル名;
DML
SELECT
データの検索
例
SELECT 列名[表示用列名] FROM テーブル名; --テーブルから列を抜き出す。表示用の列名は省略可能
SELECT * FROM テーブル名; --テーブルから全て選んで表示する
/* 条件指定 */
SELECT 列名 FROM テーブル名 WHERE 条件式;
/* 重複を排除 */
SELECT DISTINCT 列名 FROM テーブル名;
/* ソート */
ORDER BY 列名 --昇順
ORDER BY 列名 DESC --降順
/* よく使う */
列名 IS NULL --空欄を選択
列名 IS NOT NULL --空欄以外を選択
列名 IS BETWEEN 値 AND 値 --2つの値の間に含む
列名 IS IN (値, 値, ...) --列挙した中のどれかと一致する
UPDATE
データの更新
例
/* 条件と一致する列の値を更新 */
UPDATE テーブル名 SET 列名 = 値 WHERE 条件式;
INSERT
データの挿入
例
/* 行をテーブルの一番下に挿入する */
INSERT INTO テーブル名 VALUES (値, 値, ...);
/* 列名を指定して行を挿入 */
INSERT INTO テーブル名 (列名, 列名, ...) VALUES (値, 値, ...);
DELETE
データの削除
例
/* 条件と一致する列の値を削除 */
DELETE FROM テーブル名 WHERE 条件式;
DCL
COMMIT
確定
例
COMMIT;
ROLLBACK
取り消し
例
ROLLBACK;
セーブポイント
例
/* 新しいセーブポイントの設定 */
SAVEPOINT 新規セーブポイント名
/* 指定したセーブポイントまで戻る */
ROLLBACK TO セーブポイント名