PHP
MySQL
SQL

【まとめ】SQLコマンド一覧

More than 3 years have passed since last update.

SQL文法一覧

合わせて読みたい

はじめに

自分が勉強するときにつかった図書は
スッキリわかる SQL 入門 ドリル215問付き!
です。

とてもわかり易い。これを用いながら
メモしてあった文法一覧。

これからSQLを勉強される方は
ぜひご一読ください。とても
わかりやすいです。

実行結果や詳しい説明などは
ぜひ書籍で御覧ください。
また、おすすめのSQL学習媒体があれば
ぜひ教えて下さい。

Level 1

INSERT

INSERT INTO 家計簿
VALUES('2013-02-25', '居住費', '3月の家賃', 0, 85000)

UPDATE

UPDATE 家計簿
SET 出金額 = 100000
WHERE 日付 = '2013-02-25'

DELETE

DELETE FROM 家計簿
WHERE 費目 = '食費'

Level 2

AS

別名をつけるメリット
・実行結果の列のタイトルを変更
・わかりにくい名前や長い名前を短い名前をつけて利用

SELECT 費目 AS ITEM, 入金額 AS RECEIVE, 出金額 AS PAY
FROM 家計簿 AS MONEYBOOK
WHERE 費目 = '給料'

複数の列に追加するINSERT

INSERT INTO 家計簿
(費目, 日付, 出金額)
VALUES ('通信費', '2013-02-20', 6200)

LIKE

SELECT * FROM 家計簿
WHERE メモ LIKE '%1月%'

BETWEEN

SELECT *
FROM 家計簿
WHERE 日付 BETWEEN '2013-02-03' AND '2013-02-13'

IN / NOT IN

SELECT *
FROM 家計簿
WHERE 費目 IN ('食費', '交際費')
SELECT *
FROM 家計簿
WHERE 費目 NOT IN ('食費')

AND / OR

UPDATE 家計簿
SET 入金額 = 50000000
WHERE 費目  = '給料'
AND メモ = '1月の給料'
SELECT *
FROM 家計簿アーカイブ
WHERE (費目 = '給料'
      OR 費目 = '食費')
      AND (日付 > '2012-12-20')

Level 3

DISTINCT

重複する行を削除して出力してくれる。

SELECT DISTINCT 入金額
FROM 家計簿アーカイブ

ORDER BY

ASC
SELECT *
FROM 家計簿アーカイブ
ORDER BY 出金額
DESC
SELECT *
FROM 家計簿アーカイブ
ORDER BY 出金額 DESC

複数の列で並び替える場合は
以下のように記述する。

SELECT *
FROM 家計簿アーカイブ
ORDER BY 入金額 DESC, 出金額 DESC

LIMIT

検索結果の全行ではなく、
先頭の一部のみ得られればよい場合は
LIMIT句を使う。

SELECT DISTINCT 費目, 出金額
FROM 家計簿アーカイブ
ORDER BY 出金額 DESC
LIMIT 3

OFFSETを指定することで
n番目に高い行だけを
抽出することなどもできる。

SELECT 費目, 出金額
FROM 家計簿アーカイブ
ORDER BY 出金額 DESC 
LIMIT 1 OFFSET 2

CASE

SELECT 費目, 出金額,
    CASE 費目 WHEN '居住費' THEN '固定費'
              WHEN '水道光熱費' THEN '固定費'
              ELSE '変動費'
    END AS 出費の分類
FROM 家計簿アーカイブ
WHERE 出金額 > 0

Level 4

この節では、集合演算子を
扱います。

UNION

和集合。

SELECT 費目, 入金額, 出金額
FROM 家計簿
UNION
SELECT 費目, 入金額, 出金額
FROM 家計簿アーカイブ
ORDER BY 2, 3, 1

EXCEPT / MINUS

差集合。すなわち、
前者のテーブルにのみ存在する
項目を抽出します。

SELECT 費目 FROM 家計簿
EXCEPT
SELECT 費目 FROM 家計簿アーカイブ

積集合を取得する

積集合。
ようするに、どちらのテーブルにも
存在する項目を抽出します。

SELECT 費目 FROM 家計簿
INTERSECT
SELECT 費目 FROM 家計簿アーカイブ

Level 5

この節では関数を扱うこととします。

LENGTH()

SELECT メモ, LENGTH(メモ)
FROM 家計簿アーカイブ

以下の様な使い方も可能。

SELECT メモ, LENGTH(メモ) AS メモの長さ FROM 家計簿
WHERE LENGTH(メモ) <= 10

TRIM(), LTRIM(), RTRIM()

SELECT メモ, TRIM(メモ) AS 空白除去したメモ
FROM 家計簿アーカイブ

REPLACE

UPDATE 家計簿アーカイブ
SET メモ = REPLACE(メモ, '購入', '買った')

SUBSTRING()

SELECT * FROM 家計簿
WHERE SUBSTRING(費目, 1, 3)
LIKE '%費%'

ROUND()/TRUNC()

SELECT 出金額, ROUND(出金額, -2) AS 四捨五入した出金額
FROM 家計簿アーカイブ
SELECT 出金額, TRUNC(出金額, -2) AS 四捨五入した出金額
FROM 家計簿アーカイブ

さいごに

かなりお勧めです!

参考図書

スッキリわかる SQL 入門 ドリル215問付き!

こちらもおすすめです。
ゼロベースでの知識がつきます。

CD付 SQL ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)