SQLでデータベースのテーブルやビューなどからデータ(行)を取得する際には、SELECTステートメントを使用します。
本記事では、SQLServerなどのデータベースでデータを取得するに使用するSELECTステートメントを紹介します。
テーブルから行を取得するSELECTステートメント
SELECTステートメントは、データベースのテーブルからデータを取得する際に使用するSQLの中で最も基本的な命令になります。
SELECTステートメントでは、文字通りSELECTというキーワードを使用します。
SELECTステートメントの文法構成は、SELECTの後に選択列のリストを記述します。
1 |
SELECT 選択列1, 選択列2, 選択列3, ... |
選択列のリストはSELECT句に続けて1行で記述することができますが、改行した方が見やすくなります。
1 2 3 4 5 |
SELECT 選択列1, 選択列2, 選択列3, ... |
選択列のリストでは、どの列を取得するかを選択(指定)します。
取得する列が複数ある場合は、カンマ(,)で区切ります。
例えば、「ID」と「氏名」の2つの列を取得する場合は、以下のようになります。
1 2 3 |
SELECT ID, 氏名 |
どの列を取得するかを指定したら、今度はどこから取得するかを指定します。
SQLでどこから取得するかを指定する際はFROMというキーワードを使用します。
FROM句は、SELECT句で指定した選択列のリストの後に記述します。
1 2 3 4 5 6 |
SELECT 選択列1, 選択列2, 選択列3, ... FROM |
FROMの後には、どこから取得するかを指定しますので、テーブルを記述します。
1 2 3 4 5 6 7 |
SELECT 選択列1, 選択列2, 選択列3, ... FROM テーブル |
「従業員」テーブルから「ID」列と「名」列を取得するのであれば、以下のようになります。
1 2 3 4 5 |
SELECT ID, 氏名 FROM 従業員 |
すべての列を取得する
上記の例では、SELECT句で取得する列を指定していました。
列数が多くない場合は問題ないですが、列の数が50や100あるテーブルのすべての列を記述するのは、少し大変です。
そこでSQLでは、テーブルのすべての列を取得するための方法が用意されています。
すべての列を取得する場合は、SELECTの後に選択列のリストの替わりにアスタリスク(*)を記述します。
1 2 |
SELECT * |
「従業員」テーブルからすべての列を取得したい場合であれば、以下のようになります。
1 2 3 4 |
SELECT * FROM 従業員 |
上記の例ではテーブルからデータを取得していますが、SELECTステートメントは、ビューやユーザー定義ファンクション(関数)からデータを取得する場合にも使用できます。
まとめ
本記事では、データベースのテーブルからデータを取得する際に使用する、SQLのSELECTステートメントについて紹介しました。
SELECTステートメントでは、どれを取得するかを指定するSELECT句と、どこから取得するかを指定するFROM句がありました。
SELECTステートメントでは取得する「列」を指定しましたが、SQLでは取得する「行」を指定する命令も用意されています。
取得する「行」を限定する場合は、WHEREというキーワードを使用します。
WHERE句については、以下の記事で紹介していますので、合わせてご覧ください。