SELECTステートメント
SELECTステートメントは、テーブルからレコードを取得するもの。 次のように記述する。
SELECT フィールド名1, フィールド名2, フィールド名3, … FROM テーブル名; SELECT * FROM テーブル名;とすることで、全てのフィールドからレコードを取得できるよ。
DISTINCT述語
SELECTステートメントで、重複するレコードを排除する場合、DISTINCT述語を使用する。
SELECT DISTINCT フィールド名1, フィールド名2, フィールド名3, … FROM テーブル名; DISTINCT述語を使用しない場合、同じ内容のレコードが3つあると、レコードは3つ取得される。
DISTINCT述語を使用する場合、同じ内容のレコードが3つあっても、レコードは1つだけ取得される。
ASキーワード
テーブル名やフィールド名に別名を付ける場合、ASキーワードを使用する。
SELECT テーブル別名.フィールド名1, テーブル別名.フィールド名2, テーブル別名.フィールド名3, …
FROM テーブル名 AS テーブル別名;
SELECT フィールド名1 AS フィールド別名1, フィールド名2 AS フィールド別名2,
フィールド名3 AS フィールド別名3, …
FROM テーブル名; BETWEEN…AND演算子
範囲に当てはまるレコードを取得する場合、BETWEEN…AND演算子を使用する。
SELECT フィールド名1, フィールド名2, フィールド名3, … FROM テーブル名
WHERE フィールド名1 BETWEEN 10 AND 20; この場合、フィールド名1が10から20までのレコードを取得する。
IN演算子
指定した値のレコード、または指定した値以外のレコードを取得する場合、IN演算子を使用する。
SELECT フィールド名1, フィールド名2, フィールド名3, … FROM テーブル名
WHERE フィールド名1 IN (10,20,30);
SELECT フィールド名1, フィールド名2, フィールド名3, … FROM テーブル名
WHERE フィールド名1 NOT IN (10,20,30); 1つ目のSELECTステートメントは、フィールド名1が10、20、30のレコードを取得する。
2つ目のSELECTステートメントは、フィールド名1が10、20、30以外のレコードを取得する。
NULLの取得
NULL、またはNULL以外を取得する場合、IS演算子を使用する。
SELECT フィールド名1, フィールド名2, フィールド名3, …
FROM テーブル名 WHERE フィールド名1 IS NULL;
SELECT フィールド名1, フィールド名2, フィールド名3, …
FROM テーブル名 WHERE フィールド名1 IS NOT NULL; 1つ目のSELECTステートメントは、フィールド名1がNULLのレコードを取得する。
2つ目のSELECTステートメントは、フィールド名1がNULL以外のレコードを取得する。