■ データ操作言語(DML:Data Manipulation Language)
- データの参照、更新(変更・追加・削除)はデータベースにおける重要な基本操作である。
◆ データの参照
- データの参照には、SELECT文を使用する。
SELECT文の基本構文
SELECT 列名1,列名2,…FROM テーブル名 WHERE 行の抽出条件 GROUP BY グループ化を行う列名 HAVING グループ化後の抽出条件 ORDER BY 並び替え指定列名 または 列番号
SELECTとFROM
(1)SELECT * FROM テーブル名
- *を指定すると、元のテーブルからすべての列をそのままの順序で取り出せる。
(2)SELECT 列名1 FROM テーブル名
- 指定した列名のみ取り出せる。(射影)
(3)SELECT 列名2,列名3,列名1 FROM テーブル名
- 元のテーブルと違う列順序で取り出せる。
DISTINCT
(1)SELECT DISTINCT 列名1 FROM テーブル名
- DISTINCTを指定すると、重複した行を1行に纏めて取り出せる。
WHERE
(1)SELECT * FROM テーブル名 WHERE 抽出条件
- WHEREを指定すると、抽出条件に合致した行のみ取り出せる。
(2)SELECT * FROM テーブル名 WHERE 列名1 = '文字列'
- 抽出条件に文字列を指定する場合は、シングルクォーテンション(')で囲む必要がある。
GROUP BY
(1)SELECT 列名1,SUM(列名3) FROM テーブル名 GROUP BY 列名1
- SELECT句に指定出来るのは、GROUP BY句に指定した列名か集合関数のみである。
HAVING
(1)SELECT 列名1,COUNT() FROM テーブル名 GROUP BY 列名1 HAVING COUNT() <= 10
- HAVINGを指定すると、グループ化した結果に対し、抽出条件を満たす行のみ取り出せる。
ORDER BY
(1)SELECT 列名1,COUNT(*) FROM テーブル名 ORDER BY 列名1,2 DESC
- ORDER BY句に指定した列をソートキーとして、取り出したデータを並び替える。
- ORDER BY句に集合関数は指定出来ないので、列番号を指定する。
- 昇順(ASC)、降順(DESC)である。
◆ データの更新
- データの変更には、UPDATE文を使用する。
UPDATE文の基本構文
UPDATE テーブル名 SET 列名1 = 値,列名2 = 値,…WHERE 条件
- データの追加には、INSERT文を使用する。
- INSERT文には、INSERT~VALUES文とINSERT~SELECT文がある。
INSERT~VALUES文の基本構文
INSERT INTO テーブル名 (列名1,列名2,…)VALUES (値1,値2,…) ※ただし、VALUESで指定する値がテーブルの順番通りなら列名は省略可能。 INSERT INTO テーブル名VALUES (値1,値2,…)
INSERT~SELECT文の基本構文
INSERT INTO テーブル名 (列名1,列名2,…) SELECT 列名1,列名2,…FROM 参照テーブル名 WHERE 条件
- データの削除には、DELETE文を使用する。
DELETE文の基本構文
DELETE FROM テーブル名 WHERE 条件
【試験対策】
- SELECT句に指定出来るのは、GROUP BY句に指定した列名か集合関数のみである。
- グループ化前に条件を指定する場合は、WHERE句を使用する。
- WHERE句には、集合関数を指定出来ない。
- グループ化後に条件を指定する場合は、HAVING句を使用する。
- HAVING句には、集合関数を指定出来る。
- ORDER BY句には、集合関数は指定出来ないので、列番号を指定する。
- ORDER BY句で並び替え順を省略した場合は、昇順(ASC)が設定される。
- INSERT~VALUES文は、1行ずつデータを追加する。
- INSERT~SELECT文は、複数行を1度に追加することが出来る。
- DELETE文のWHERE句に条件を指定しないと、すべてのデータが削除される。