連載
» 2000年06月21日 00時00分 公開

SQL実践講座(1):SQLの基礎 「SELECT」文を覚えよう (2/2)

[篠原光太郎,@IT]
前のページへ 1|2       

まずはSELECT文の基本的な使い方

 では、SQL文を使って、データの表示してみましょう。Enterprise Managerで、「ツール」メニューの「SQL Serverクエリアナライザ」を選択します。まず、右上の「DB」ドロップダウンリストで、「Northwind」データベースを選択します。そして、表示された画面で、次のSQLを入力してみましょう。

【例1】

SELECT CustomerID, CompanyName FROM Customers

 入力したSQL文の実行は、「クエリ」メニューから「実行」を選択します(もちろん、アイコンを選択してもOKです)。すぐに結果が表示されるはずです。

画面3 クエリアナライザ(クリックすると拡大画像を表示します) 画面3 クエリアナライザ(クリックすると拡大画像を表示します)

 SELECTは、データの取得をするためのSQL命令です。データの取得は、「照会」とも呼ばれます。CustomerID、CompanyNameは、それぞれ列の名前を指定します。この例のように複数の列を指定するときは、「,」で区切ります。SELECTとカラムの列の部分を、SELECT句、もしくは、SELECT文節と呼びます。

 SELECT句の後のFROMは、テーブルの指定をします。この例では、Customersテーブルを指定しています。今後の例では複数のテーブルを指定する場合がありますが、そのときはテーブル名を列名と同じように、「,」で区切ります。FROMとテーブル名の部分を、FROM句、もしくは、FROM文節と呼びます。

 この例のSQL文をまとめると、「Customersテーブルから、CustomerID、CompanyNameを取得しなさい」という命令であることになります。

 カラムの指定には、「*」という記号も使えます。これは、すべてのカラムを取得したいときに便利です。例えば、次のようなSQLを実行してみましょう。

【例2】

SELECT * FROM Customers

 Customersテーブルの全データが、全列表示されたでしょうか?

WHERE句の使い方WHERE句の使い方

 例1では、特に条件を指定しなかったので、取得されたデータはすべての行でした。SQLによるデータの取得では、欲しい情報の条件を指定することが出来ます。次のSQL文を実行してみましょう。

【例3】

SELECT CustomerID, CompanyName, City
 FROM Customers WHERE City = 'London'

 新たに、WHEREという部分が追加されました。ここで、欲しい情報の条件を指定します。この例では、「City = 'London'」として、City列が'London'の行のみを取得するように指定しています。WHEREとその条件文を、WHERE句、もしくはWHERE文節と呼びます。

 WHERE句には、複数の条件を指定することも可能です。次のSQL文を実行してみましょう。

【例4】

SELECT * FROM Orders
 WHERE CustomerID = 'QUICK' AND OrderDate > '1998/1/1'

 この例では、Ordersテーブルから、CustomerIDが'QUICK'で、かつ、OrderDateが1998年以降のものを取得しています。「かつ」ではなく、「または」で条件指定したい場合は、「OR」を使用します。

【例5】

SELECT * FROM Orders
  WHERE CustomerID = 'QUICK' OR OrderDate > '1998/1/1'

 また、条件に合致しない行を指定したい場合は、条件をNOTで否定することが出来ます。

【例6】

SELECT * FROM Orders WHERE NOT CustomerID = 'QUICK'

条件の指定の仕方

 例4では、「=」と「>」という記号で条件を指定しましたが、これ以外にも次のような条件を指定することが出来ます。

(1) 比較演算子

値の大小の比較をします

等しい
より大きい
より小さい
>=
より以上
<=
より以下
<>
等しくない

(2) BETWEEN条件

値が指定した2つの値の間にあるか否かを比較します。次の例では、Ordersテーブルから、OrderDateが1996/1/1から1997/12/31であるものを取得します。

【例7】

SELECT * FROM Orders
 WHERE CustomerID = 'QUICK' AND
  OrderDate BETWEEN '1996/1/1' AND '1997/12/31'

(3) IN条件

値が指定した値のリストの中にあるかを比較します。次の例では、OrdersテーブルからCustomerIDが'QUICK'か'VINET'であるものを取得します。

【例8】

SELECT * FROM Orders
 WHERE CustomerID IN ('QUICK', 'VINET')

(4) LIKE条件

文字の検索条件を指定します。ここで、%と_(アンダースコア)は特殊な意味が割り当てられており、%は「任意の文字数の任意の文字」、_は「1文字の任意の文字」を表します。例えば、CustomerID LIKE 'Q%'は、CustomerIDがQで始まる文字を指定し、CustomerID LIKE 'Q_'は、CustomerIDがQで始まる2文字の文字を指定します。%と_は組み合わせての使用が可能です。

【例9】

SELECT * FROM Orders WHERE CustomerID LIKE 'Q%'

今回のまとめ

 今回はごく基本的な、「SELECT文」を紹介しました。次回は、並び替えの仕方(ORDER BY)、集計の仕方(GROUP BY)を予定しています。


「SQL実践講座」バックナンバー
前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。