📘

SQL基本操作メモ

2 min read

SQL基本操作

SELECT

SELECT カラム;
カラム選択。コンマ区切りで複数可能。****で全て。

FROM

FROM テーブル;
テーブル選択。

WHERE

どのレコードを取得するか。条件を指定する。
例1)WHERE category = '○○';(等しいときが=一つなの注意)
例2)WHERE category LIKE %○○%;(○○を含む文字列)
%はワイルドカードと言ってどんな文字列にも一致する。
例3) WHERE NOT category = '○○';(否定)
例4)WHERE category IS NULL;(categoryがNULLである)
例5)WHERE category IS NOT NULL;(categoryがNULLではない)
例6)WHERE category = '○○' AND price = ○○○;(ANDとORがある)

ORDER BY

ORDER BY カラム 並べ方
データを並び替える。ASCDESCがある。

LIMIT

最大で何件取得するか。
LIMIT 件数;

DISTINCT

DISTINCT(カラム)
指定したカラムの重複するデータを除く。
例)SELECT DISTINCT(category);

四則演算

例)SELECT price * 1.1;(表示するデータを加工できる)

集計関数

SUM

SUM(カラム)
指定したカラムの合計値を出す。
WHEREでデータ絞り込み可

AVG

AVG(カラム)
指定したカラムの平均値を出す。
WHEREでデータ絞り込み可

COUNT

COUNT(カラム)
指定したカラムのデータ数を出す。nullだった場合はカウントされない。
WHEREでデータ絞り込み可。
例1)SELECT COUNT(category);(categoryカラムのデータ数を表示)
例2)SELECT COUnT(*);(レコードの数を表示)

MAX・MIN

MAX(カラム)
指定したカラム内での最大・最小値を取得する。
WHEREでデータ絞り込み可。

GROUP BY

GROUP BY カラム
指定したカラムの同一のデータを持つものたちがグループ化される。
カラム名は複数指定可能。その場合はコンマで区切る。
GROUP BYを用いた場合にSELECTに指定できるのは、そのカラムと集計関数のみ。
WHEREと併用化。

HAVING

GROUP BY カラム HAVING 条件
GROUP BYでグループ化したデータを更に絞り込める。
WHEREとの違いは絞り込まれる順番。WHEREGROUP BYの前でHAVINGは後。
WHEREがテーブル全体から絞り込むのに対し、HAVINGはグループ化されたデータの中で絞り込まれるので
GROUP BYで指定したカラムのみ使用できる。

サブクエリ

クエリ中に他のクエリを入れられる。
;がいらない。

WHERE price > (
  SELECT price
  FROM product
  WHERE name = '○○' 
  )
;

AS

SELECT price AS "値段"
カラム名に名前を付けられる。

JOIN(内部結合)

複数のテーブルを1つに結合することが出来る。
JOINにテーブル名、ONに条件。

SELECT products.name, companies.name
FROM products
JOIN companies
ON products.company_id = companies.id

ONの条件を満たさないものは取り出されない。

LEFT JOIN(左外部結合)

SELECT products.name, companies.name
FROM products
LEFT JOIN companies
ON products.company_id = companies.id

productsテーブルのデータを全て取り出した後に、companyテーブルのデータを紐づける。

RIGHT JOIN(右外部結合)

SELECT products.name, companies.name
FROM products
LEFT JOIN companies
ON products.company_id = companies.id

companyテーブルのデータを全て取り出した後に、productsテーブルのデータを紐づける。

INSERT

INSERT INTO products (name, price) VALUES ('bag', 11000);
テーブルにレコードを追加できる。

UPDATE

UPDATE products SET name = 'shoes', price = 20000
※whereなどでデータを指定しないと全てのレコードが更新される。

DELETE

DELETE FROM products
※whereなどでデータを指定しないと全てのレコードが更新される。

Discussion

ログインするとコメントできます