SQL Server : 1.データの抽出・出力

SQL Server(Microsoft SQL Server)はMicrosoftが開発しているRDBMSです。当ページではテーブルからデータを抽出して出力する処理――SELECT文についてまとめています。

1.データの抽出・出力

2.オブジェクトの操作・制御

3.変数や制御文の取り扱い

4.その他

SELECT文とは?

SELECT文はテーブルからデータを抽出して出力するステートメントです。抽出したデータは加工して出力することができますが、テーブルにデータを追加したり、更新したり、削除したりといったことはできません。あくまでテーブルからデータを取り出すことにためのものです。

SELECT文はSQLの肝であり、入門書・プログラミング教室・入社研修等で真っ先に教わることになる基礎的な処理です。しかし、最初期に学ぶ処理にしては省略可能な6つの大きな句から成っていたり、各句のなかにはさらに小さな句やオプションがあったり、同じ結果を表示するのに複数の書き方があったりと使いこなすのは容易ではありません。そのため当サイトでは独立したページを設けて情報をまとめています。

各句の記述順

先に述べましたように、SELECT文は6つの大きな句から成ります。SELECT句・FROM句・WHERE句・GROUP BY句・HAVING句・ORDER BY句です。各句の記述順は先の記述順に対応しています。SELECT句以外は省略することができますが、一般的にはFROM句は省略されない(省略しないほうが良い)ことが多いです。

SELECT句

SELECT句の処理

FROM句

FROM句の処理

WHERE句

WHERE句の処理

GROUP BY句

GROUP BY句の処理

HAVING句

HAVING句の処理

ORDER BY句

ORDER BY句の処理

SELECT句

SELECT句では出力する対象を指定します。忘れがちですがSELECT句で指定できるのはテーブルのカラムだけではありません。数値や文字列といったリテラルを指定・出力することができますし、計算式も利用できます。あまり使うことはありませんが……。

SELECT

0123456789,

'Hello world.',

1 + 2 * 3 --7と出力されます

一般的にはFROM句で指定したテーブルのカラムを指定します。

SELECT

no,

name,

price

FROM

product

DISTINCTオプション

DISTINCTオプションは出力結果のなかで重複したレコードがあったとき、1つにまとめる(実際はnレコード表示されるところを1レコードのみ表示する)働きをもつオプションです。

TOP句と併用する際はTOP句の前に記述します。

SELECT DISTINCT

no,

name,

price

FROM

product

TOP句

TOP句は上位nレコードだけを表示するように制限します。例えば、以下の例では123レコードまで表示するようになります。

DISTINCTオプションと併用する際はDISTINCTオプションの後ろに記述します。

SELECT TOP 123

no,

name,

price

FROM

product

FROM句

FROM句ではデータを抽出する対象となるテーブルを指定します。

FROM

テーブル

WHERE句

WHERE句では表示するレコードに制限をかけることができます。

WHERE

条件式

GROUP BY句

HAVING句

ORDER BY句