データベース

年齢が若い(誕生日が遅い)人をセレクトする⇒birthday が大きい人に絞る。

複数キーでグループ化

部門IDごとに性別別の人数を照会する
SELECT dept_id, gender, count(* ) FROM employee GROUP BY dept_id, gender ORDER BY dept_id, gender;
性別ごとに部門ID別の人数を照会する
SELECT dept_id, gender, count(* ) FROM employee GROUP BY dept_id, gender ORDER BY gender, dept_id;
※ ORDER BYの後のキーの順番によって表示が変わる

表の内部結合

相関名(表の別名)をつけて列名を挙げる。例として
SELECT e.emp_id,d. dept_id
FROM employee AS e JOIN department AS d
ON e.dept_id = d.dept_id;

データ操作

  • 行の挿入 INSERT INTO 表名(列名, 列名) VALUES(値, 値);
  • 行の更新 UPDATE 表名 SET 列名 = 値 WHERE 条件;
  • 行の削除 DELETE FROM 表名 WHERE 条件;

トランザクション(複数の処理をひとまとめにする)

START TRANSACTION;
⇒処理A、処理B
⇒COMMIT;(COMMIT前にSQLエラーが出ていた場合は自動的にROLLBACKされる)

表の操作

  • 表の作成/ CREATE TABLE ( 列名 制約, 列名 制約 );

※ 制約にはNOT NULL制約や主キー制約、外部キー制約がある。
※ 制約に違反して行を削除するとエラーになるので、先に制約になっているほうを削除する必要がある。

  • 表の内容の変更/ ALTER TABLE 表名 ALTER 列名 SET NOT NULL;
  • 表の削除/ 参照制約がある場合 DROP TABLE 表名 DROP CONSTRAINT 参照制約名;

SERIAL 型

postgreSQL特有。自動で連番をつくってくれるデータ型。

コメント

タイトルとURLをコピーしました