第3章 行の検索
3.1 全行の表示
検索はSELECT命令で行う。
全行、全列表示
SELECT * FROM テーブル名;
SELECT * FROM shouhin;
列を指定して表示
SELECT 列名 FROM テーブル名;
SELECT sname,tanka FROM shouhin;
重複を避けて表示
SELECT DISTINCT 列名 FROM テーブル名;
SELECT DISTINCT tanka FROM shouhin;
3.2 条件による行の選択
条件を指定し行を絞り込むにはSELECT文の後ろにWHEREで条件を書く。
SELECT 列名 FROM テーブル名 WHERE 条件;
例:sidが1の行を表示
SELECT * FROM shouhin WHERE sid=1;
条件では等号や不等号を使うことが出来る。 文字列や日付は''で囲む。
比較演算子
- A = B AとBは等しい
- A > B AはBより大きい
- A < B AはBより小さい
- A >= B AはB以上
- A <= B AはB以下
- A <> B AとBは等しくない
文字列の部分条件指定
LIKE演算子を使用し、文字列を部分検索できる。
SELECT * FROM shouhin WHERE sname LIKE 'り%';
- %は0文字以上の文字とマッチング
- _は1文字の文字とマッチング
どちらかの条件にあてはまる
WHERE 条件 OR 条件
SELECT * FROM shouhin WHERE sid=1 OR sid=3;
sidが1または3があてはまる。
両方の条件にあてはまる
WHERE 条件 AND 条件
SELECT * FROM shouhin WHERE sid >= 2 AND sid <= 4;
sidが2以上でかつ4以下があてはまる。
どれかと一致する条件
WHERE 列名 IN (値,値,,,);
SELECT * FROM shouhin WHERE sid IN (1,3);
sidが1または3があてはまる。
条件の範囲指定
値1~値2の範囲
WHERE 列名 BETWEEN 値1 AND 値2
例:sidが2~4まで
SELECT * FROM shouhin WHERE sid BETWEEN 2 AND 4;
NULLの検索
NULLは = では検索できない。ISを使う。
SELECT * FROM shouhin WHERE tanka IS NULL
否定(NOT)
LIKE や BETWEEN 、NULLを使用するときには、その前にNOT を付けて否定を表すことが出来る。
SELECT * FROM shouhin WHERE tanka IS NOT NULL
SELECT * FROM shouhin WHERE sname NOT LIKE 'り%'
3.3 行数と開始位置の指定
LIMITを使うとSELECTで行を取得する際にその行数を限定する。
SELECT 列名 FROM テーブル名 LIMIT 行数
例:先頭から3行表示
SELECT * FROM shouhin LIMIT 3
LIMITでは行数だけでなく表示の開始位置を指定することもできる。 開始位置は0行目から数える。
LIMIT 開始位置,行数
例:2件目から3行表示
SELECT * FROM shouhin LIMIT 2,3
3.4 並べ替え
SELECTの後ろにORDER BY句を使用し結果を並べ替えて表示できる。
SELECT 列名 FROM テーブル名 ORDER BY 列名 並べ替え順;
「並べ替え順」には昇順の場合 ASC、降順の場合、DESC を指定する。省略時には昇順。
例:tankaの昇順で並べ替え。
SELECT * FROM shouhin ORDER BY tanka ASC;
並べ替えの列名は複数指定することも可能。最初の列名で比較し同じ場合には次の列名で比較する。
例:tankaの昇順、同じ場合にはsidの降順
SELECT * FROM shouhin ORDER BY tanka ASC,sid DESC;
ORDER BYはSELECT文の最後に付ける。