クエリの基礎
クエリは、SQL Server 2005 に格納されているデータに対する要求です。クエリは、次のような形式で実行できます。
- MS Query ユーザーまたは Microsoft Access ユーザーは GUI (グラフィカル ユーザー インターフェイス) を使用して、1 つ以上の SQL Server テーブルから必要なデータを取り出すことができます。
- SQL Server Management Studio または osql ユーティリティのユーザーは SELECT ステートメントを実行できます。
- Microsoft Visual Basic アプリケーションなどのクライアント アプリケーションや中間層アプリケーションは、SQL Server のテーブルのデータを、グリッドなどのバインドされたコントロールにマップできます。
ユーザーはさまざまな方法でクエリを操作できますが、クエリによって実行される作業はすべて同じです。つまり、SELECT ステートメントの結果セットがユーザーに提示されます。Visual Studio クエリ デザイナなどのグラフィック ツールを使用する場合など、ユーザーが SELECT ステートメントを指定しない場合でも、クライアント ソフトウェアによってユーザーのクエリが SELECT ステートメントに変換され、SQL Server に送信されます。
SELECT ステートメントは、SQL Server のデータを取得し、これを 1 つ以上の結果セットにまとめてユーザーに返します。結果セットは、SELECT のデータを表形式で表示したものです。SQL テーブルと同様に、結果セットは列と行から構成されます。
SELECT ステートメントの完全な構文は複雑です。ただし、ほとんどの SELECT ステートメントは、結果セットの 4 つの主要なプロパティを記述しているだけです。
- 結果セット内の列の数と属性。次の属性は、結果セット列ごとに定義する必要があります。
- 列のデータ型。
- 列のサイズ。数値列の場合は有効桁数と小数点以下桁数。
- 列に返されるデータ値のソース。
- 結果セットの検索対象テーブル、およびテーブル間の論理的関係。
- 基になるテーブルの行が SELECT の対象になるために満たす必要がある条件。条件を満たしていない行は無視されます。
- 結果セットの行の順序。
次の SELECT
ステートメントでは、単価が $40
を超える製品の製品 ID、名称、表示価格を検索します。
SELECT ProductID, Name, ListPrice
FROM Production.Product
WHERE ListPrice > $40
ORDER BY ListPrice ASC
SELECT キーワードの後ろに続く列名 (ProductID
、Name
、および ListPrice
) は選択リストです。この選択リストは 3 列の結果セットを作成し、各列に Product
テーブルの対応する列の名前、データ型、サイズが格納されることを指定しています。FROM
句は 1 つのベース テーブルだけを指定しているので、SELECT
ステートメントの列名はどれもそのテーブル内の列を参照します。
FROM
句は、データの検索対象テーブルとして Product
テーブルを指定しています。
WHERE
句は、Product
テーブル内でこの SELECT
ステートメントの対象になるのは、ListPrice
列の値が $40
を超えている行だけであることを指定しています。
ORDER BY
句は ListPrice
列の値に基づいて、結果セットを昇順 (ASC
) に並べ替えることを指定しています。
参照
概念
その他の技術情報
FROM (Transact-SQL)
SELECT (Transact-SQL)
WHERE (Transact-SQL)