0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【pgAdmin4 を使ったpostgeSQL】

Posted at

テーブル作成

 order_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
 customer_id INTEGER,
 order_date DATE
);

INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,はMySQLのオートインクリメントキーと一緒(連続した数値をカラムに自動で設定する機能)

テーブルの削除

DROP TABLE テーブル名;

カラム(列)のデータ型変更

ALTER TABLE テーブル名 ALTER COLUMN カラム名 TYPE データ型;

テーブルにカラム(列)を追加

ALTER TABLE テーブル名 ADD COLUMN カラム名 データ型;

テーブルのカラム(列)を削除

ALTER TABLE テーブル名 DROP COLUMN カラム名;

テーブルにデータの追加

INSERT INTO テーブル名(カラム名) VALUES (追加する内容);

例)INSERT INTO threads(content,title,user_id)VALUES ('ないよう','タイトル',3);
複数のカラムを追加するときは、(カラム名,カラム名,カラム名)でカンマで区切る
追加する内容はカラムの内容と同じ順番になるようにする。
複数の情報を追加するときは、(カラム名)VALUES VALUES (追加する内容), (追加する内容) ,(追加する内容);みたいな感じでカンマで区切る。
文字列は。「' '」で囲う。

テーブルのデータを取得する(一部のカラムを取る場合)

SELECT 列1(カラム),列2(カラム名)・・・ from テーブル名;

テーブルのデータを取得する(全ての列を取得したい場合)

SELECT * FROM テーブル名;

テーブルの特定のデータを取得する(WHERE句)

SELECT * FROM テーブル名 WHERE 条件;

テーブルの特定のデータを取得する(ORDER BY句)

SELECT * FROM テーブル名 ORDER BY カラム名 ASC; (昇順)
SELECT * FROM テーブル名 ORDER BY カラム名  DESC; (降順)

クエリの結果セットに返される⾏数を制限する(limit句)

-- 最初の10⾏を返す
 SELECT * FROM example_table LIMIT 10;
-- 11⾏⽬から始まる5⾏を返す
 SELECT * FROM example_table ORDER BY price DESC;

データを更新する

UPDATE テーブル名 SET カラム名 = 変更する内容;

一括で全部置き換わる

データの変更(条件に一致したデータのみ変更)

UPDATE テーブル名 SET カラム名 = 変更する内容 WHERE 条件式;

データの変更(複数のデータ変更)

UPDATE テーブル名 SET カラム名 = 変更する内容,カラム名 = 変更する内容 WHERE 条件式;
または
UPDATE テーブル名 SET (カラム名,カラム名) =(変更する内容,変更する内容) WHERE 条件式;

データの削除

DELETE FROM テーブル名 WHERE 条件式;

レコード

データベース内のテーブル含まれる1行分のデータ、または関連することの集まり。

統合結合(UNION/UNION ALL)の基本構文

SELECT句
UNION/UNION ALL
SELECT句

統合結合は、2つ以上のSELECTの結果を統合して取得する。「UNION」は、統合した結果で重複したデータをまとめて表示し、「UNION ALL」は、重複したデータもそのまま全て表示する。複数のSELECTクエリの結果を結合して1つの結果セットとして返すための構⽂だから、各SELECTクエリ は同じ数のカラムを持ち、それぞれの対応するカラムが互換性のあるデータ型でないといけない。

内部結合(INNER JOIN)の基本構文

SELECT 項目X,項目a,項目b
FROM テーブルY
INNER JOIN テーブルZ ON テーブルY.項目A = テーブルZ.項目A;

両方のテーブルに一致するレコードのみ取得。(テーブルyの項目aとテーブルzの項目aに一致してるテーブルzの項目x、項目a,項目bを取得)

内部結合LEFT JOIN (LEFT OUTER JOIN)の基本構文

SELECT 項目X,項目a,項目b
FROM テーブルY
LEFT JOIN テーブルZ ON テーブルY.項目A = テーブルZ.項目A;

左側のテーブルのすべてのレコードと、右側のテーブルに⼀致するレコードを取得する。右側に⼀致 するレコードがない場合、NULLが返される。

内部結合RIGHT JOIN (RIGHT OUTER JOIN)の基本構文

SELECT 項目X,項目a,項目b
FROM テーブルY
LEFT JOIN テーブルZ ON テーブルY.項目A = テーブルZ.項目A;

右側のテーブルのすべてのレコードと、左側のテーブルに⼀致するレコードを取得する。左側に⼀致 するレコードがない場合、NULLが返される。

GROUP BY句

SELECT [カラム名] 
FROM [テーブル名] 
GROUP BY [グループ化したいカラム名、条件];

が基本文。重複しないカラム名を取得する場合は、SELECT name AS 'カラム名' FROM sample01 GROUP BY name;、各カラムのvalue(カラム名)の合計値を取得する場合はSELECT name AS '商品名', SUM(value) FROM sample01 GROUP BY name;等いろんな使い方がある。

HAVING句

SELECT カラム名, COUNT(*) AS count 
FROM テーブル名 
GROUP BY カラム名 
HAVING COUNT(*)  条件(>10とか);
: GROUP BY句でグループ化されたデータに対して条件を指定する

サブクエリ(副問合せ)

SELECT カラム名1, カラム名2 
FROM テーブル名 
WHERE カラム名3 = (SELECT カラム名3 FROM テーブル名 WHERE カラム名2 = '加藤');

テーブル名のカラム名2が’加藤’であるカラム名3を持つテーブル名のレコードを取得する。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?