5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PostgreSQLの機能を自分なりにまとめてみる

Last updated at Posted at 2025-03-31

PostgreSQLのSQL機能

PostgreSQLの機能をわかりやすい言葉でまとめてみる。

1. SELECT(データを取得する)

SELECT * FROM sample;

sample テーブルからすべてのデータを取得する。

2. INSERT(データを追加する)

INSERT INTO sample (name, age) VALUES ('Yamada', 23);

sample テーブル内の新しい行を追加する。「name」列に「Yamada」
「age」列に「23」を追加する。

3. UPDATE(データを変更する)

UPDATE sample SET age = 26 WHERE name = 'Yamada';

name列がYamadaの全ての行で、age列を26に変更する。

4. DELETE(データを削除する)

DELETE FROM sample WHERE name = 'Yamada';

name列がYamada のデータを全て削除する。

データの絞り込み・並び替え

5. WHERE(特定の条件に合うデータだけ取得する)

SELECT * FROM sample WHERE age = 20;

age が 20の行だけを取得する。

SELECT * FROM sample WHERE age > 20;

age が 20 より大きい行だけを取得する。

6. ORDER BY(データを並び替える)

SELECT * FROM sample ORDER BY age DESC;

age が大きい順に並べる。

7. LIMIT(取得するデータの数を制限する)

SELECT * FROM sample LIMIT 5;

→ 最初の 5 件だけ取得する。

8. OFFSET(取得するデータをスキップする)

SELECT * FROM sample LIMIT 5 OFFSET 10;

→ 10 件目から 5 件取得する(10件目までは取得しない)。

データのグループ化・集計

9. GROUP BY(同じ値ごとにまとめる)

SELECT age, COUNT(*) FROM sample GROUP BY age;

→ 年齢ごとに何人いるかを集計する。

10. HAVING(グループの条件を指定する)

SELECT age, COUNT(*) FROM sample GROUP BY age HAVING COUNT(*) > 2;

→ 2 人以上いる年齢グループだけ表示する。

11. DISTINCT(重複を省く)

SELECT DISTINCT age FROM sample;

age の重複を省いて取得する。

データの結合

12. INNER JOIN(共通するデータを結合する)

SELECT sample.name, orders.score 
FROM sample 
INNER JOIN orders ON sample.id = orders.user_id;

sampleorders を、id をキーにして共通データを取得する。

13. LEFT JOIN(左のテーブルのデータは必ず残す)

SELECT sample.name, orders.score 
FROM sample 
LEFT JOIN orders ON sample.id = orders.user_id;

sample に対応するデータのある orders の行だけ結合。対応する行が存在しない場合、orders テーブルの列は NULL になる。

14. RIGHT JOIN(右のテーブルのデータは必ず残す)

SELECT sample.name, orders.score 
FROM sample 
RIGHT JOIN orders ON sample.id = orders.user_id;

orders に対応するデータのある sample の行だけ結合。対応する行が存在しない場合、sample テーブルの列は NULL になる。

15. FULL JOIN(両方のデータを全部出す)

SELECT sample.name, orders.score 
FROM sample 
FULL JOIN orders ON sample.id = orders.user_id;

sampleorders も全部出し、関連がない部分は NULL

データベースの管理

16. CREATE TABLE(テーブルを作る)

CREATE TABLE sample (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    age INTEGER
);

sample というテーブルを作る。

17. DROP TABLE(テーブルを削除する)

DROP TABLE sample;

sample テーブルを削除する。

18. ALTER TABLE(テーブルの構造を変更する)

ALTER TABLE sample ADD COLUMN hobby VARCHAR(100);

sample テーブルに hobby という列を追加する。

データベースの操作

19. SHOW(設定を確認する)

SHOW timezone;

→ 現在のタイムゾーンを確認する。

20. SET(設定を変更する)

SET timezone = 'Asia/Tokyo';

→ タイムゾーンを 東京 に変更する。

データのバックアップと復元

21. COPY(データをファイルに書き出す)

COPY sample TO 'data/sample.csv' CSV HEADER;

sample テーブルのデータをCSVファイルに保存する。

22. COPY FROM(ファイルからデータを取り込む)

COPY sample FROM 'data/sample.csv' CSV HEADER;

sample.csv のデータを sample テーブルに取り込む。

データベースの削除

23. DROP DATABASE(データベースを削除する)

DROP DATABASE my_database;

my_database を削除する。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?