クエリの基礎
クエリは、SQL Server に格納されているデータに対する要求です。クエリは、次のような形式で実行できます。
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) に並べ替えることを指定しています。