マガジンのカバー画像

SQL

21
運営しているクリエイター

記事一覧

SQL WHEREとHAVINGの違い
WHERE 行を対象として条件に合ったものだけが対象になる。WHEREはグルーピングされる前に実行される。
HAVING グループを対象にして条件に合ったものだけが対象になる。HAVINGはグルーピング後に実行される。

SQL SELECT * FROM USER WHERE EXISTS(SELECT * FROM SCHOOL WHERE SCHOOL.USER_ID = USER.ID)
EXISTS内のサブクエリがtrueのレコードを取得する

SELECT カラム名 FROM テーブル名 WHERE カラム名 IN (値, 値, ...)
INに含まれている値に合致するカラム名で抽出したカラム名を取得する。
SELECT * FROM USER WHERE AGE IN (20, 21)

SQL SELECT カラム名 FROM テーブル名 WHERE 条件(SELECT文)で条件の中に副問い合わせとしてSQL文を挿入できる

SQL SELECT テーブル名1.カラム名,テーブル名2.カラム名 FROMテーブル名1,テーブル名2 WHERE結合条件
結合条件でテーブルを結合
SELECT U.NAME, S.NAME FROM USER U, SCHOOL S WHERE U.ID=S.USER_ID

SQL UPDATE テーブル名 SET カラム名=値, カラム名=値... WHERE 条件
WHEREを指定しないと全てのカラムが更新されてしまう
UPDATE USER SET NAME="SUZUKI", AGE=27 WHERE ID=4

SQL DELETE FROM テーブル名 WHERE 条件
条件にマッチするレコードを削除する
DELETE FROM USER WHERE ID=4

SQL INSERT INTO テーブル名1
SELECT FROM カラム名 FROM テーブル名2 WHERE 条件
で別テーブルの値を取得してデータ入力できる

SQL INSERT INTO テーブル名 VALUE (値, 値, 値, •••)
テーブルの全項目にデータを入力する場合はカラム名を省略できる

SQL INSERT INTO テーブル名 (カラム名1, カラム名2) VALUE (カラム名1の値, カラム名2の値)
テーブルに指定したカラムの値を入力
INSERT INTO USER (NAME, AGE) VALUE ("HBKK", 27)

SQL SELECT DISTINCT カラム名 FROM テーブル名
取得したレコードから重複しているものを削除する
SELECT DISTINCT NAME, REGION FROM USER

SQL SELECT 集合関数(カラム名) FROM テーブル名 GROUP BY カラム名 HAVING 条件式
SELECT REGION COUNT(*) FROM USER GROUP BY REGION HAVING AVG(AGE) >= 40

SQL SELECT カラム名1, 集合関数(カラム名2) FROM テーブル名 GROUP BY カラム名1
カラム名1でグルーピングしたカラム名1と集合関数(カラム名2)を取得する。
SELECT MALE, AVG(AGE) FROM USER GROUP BY MALE

SQL SELECT カラム名 FROM テーブル名 WHERE カラム名 LIKE '文字列'
文字列の条件を持つカラムを取得する
SELECT NAME FROM USER WHERE NAME LIKE '%JON%'
% 0文字以上の文字列
_ 1文字以上の文字列