SELECT

基本的な書き方

SELECT ① FROM ②
SELECT ① FROM ② WHERE ③ GROUP BY ④ ORDER BY ⑤

①、カラム名

そのテーブルのすべてのカラムを表示するときは * を記入する。
カラム指定の場合はカラム名を、複数の場合はカンマ区切りで書く
戻り値が数値の場合は+-*/の演算子が使用可能
例:カラムABCでは
ABC + 10
と記入することでデータベースの数値より10増えた数値を取得できる

②テーブル名

③カラムの条件を指定して抽出する場合に使用。比較演算子など使える

例:カラムABCで一定以上の数値の場合は
WHERE ABC >= 1000
と記入

文字列の場合も可能
例:ABC = ‘課長’

複数の指定も可能
DEF != 500 AND GHI = ‘部長’

WHEREの中で使える演算子は下部を参照

④グループ化

カラム名

⑤並び替え 

ASC と DESC



ORDER BY(並び替え)

並び替え

昇順(1⇒2⇒3)

通常は書かなくてもその通りになる

ORDER BY カラム ASC
降順(3⇒2⇒1)
ORDER BY カラム DESC

複数の指定の場合はカンマ区切りで書く(前に書いた順から適用される)

ORDER BY カラムA, カラムB DESC

GROUP BY (グループ化)

SELECT文に記載することができるカラムは、GROUP BYで指定したカラムと集合関数を記述することが出来まる

SELECT	JOB,AVG(SAL)
FROM	EMP
GROUP BY JOB

指定したカラムごとにグループ化し、集合関数の計算結果を取得することができる

グループ化したテーブルの条件抽出(HAVING)
--SAL(給料)の平均が2500以上のJOB(仕事)を抽出する
SELECT	JOB
FROM	EMP
GROUP BY	JOB
HAVING	AVG(SAL) >= 2500

WHEREの後ろで使える演算子

画像に alt 属性が指定されていません。ファイル名: fe05827bfb1349e6177c02467df99ec6.png

BETWEEN

WHERE カラム BETWEEN 1000 AND 2000

↑ このカラムの中の1000から2000のものから選ぶ

否定形は↓ NOT が付く

WHERE カラム NOT BETWEEN 1000 AND 2000

LIKE 文字列が含まれるかどうか

WHERE カラム LIKE '%文字列%'

否定形はLIKEの前にNOT
%の代わりに_も可能だが1文字のみ
詳細は上部表を参考に

‘%A2’ の場合は A2の前にどのような文字が来てもいいが、後ろに続く文字はなし、つまりA2で終わる
‘A2%’ の場合はA2で始まる文字でその後は何文字でも可

_の場合は指定の文字列の前後は一文字のみになる

IN

WHERE カラム IN(1000, 2000, 3000)
WHERE カラム IN('食費', '交際費', '広告費')

重複行の排除(DISTINCT)

--抽出したレコードから重複行を削除する
SELECT	DISTINCT JOB,SAL
FROM	EMP

参考

https://sql.main.jp


投稿日

カテゴリー:

,

投稿者: