SQL

DDL(data description language)

すること SQL
作成 CREATE TABLE ○○ (SELECT * FROM ○○);
変更 ALTER TABLE ○○ ADD COLUMN ○○ varchar(255) default '';
削除 DROP TABLE ○○;

DML(data manipulation language)

すること コマンド
検索 SELECT ○○, ○○,... FROM ○○ WHERE ○○ LIKE '%○○%' ORDER BY ○○ DESC; (※1)
検索 SELECT ○○,COUNT() FROM ○○ GROUP BY ○○ HAVING COUNT()> 1; (※2)
検索 SELECT ○○.xxxx,●●.xxxx AS xxxx FROM ●● JOIN ○○ ON ○○.xxxx = ●●.xxxx;
更新 UPDATE ○○ SET ○○='○○' WHERE ○○=○○;
追加 INSERT INTO ○○ (○○, ○○,...) VALUES(○○, ○○,....);
追加 INSERT INTO ○○ ( xxxx, xxxx,) SELECT ●●. xxxx,●●. xxxx, FROM ▲▲ JOIN ●● ON ●●.lxxxx = ▲▲. xxxx;
削除 DELETE FROM ○○ WHERE ○○=○○;

(※1)
・ASC:昇順(デフォルト)
・DESC:降順

(※2)
グループ化したものに対して絞り込みを行う時は→having


重複データを抽出する
SELECT * FROM people WHERE name IN (SELECT name FROM people GROUP BY name HAVING COUNT(*) > 1);


データベース構築のコツ

★リレーションには1:1(1対1)1:N(1対多)N:N(多対多)がある。
★N:N(多対多)の場合はなるべく中間テーブルを置いて1:N(1対多)の関係を構築する。
★1:N(1対多)の場合、「多」のほうに、「1」のIDを持たせるとよい。