レコードの選択

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以外のレコードを取得する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です