検索
連載

あっという間に分かるSELECT文の書き方さらっと覚えるSQL&T-SQL入門(2)(1/3 ページ)

アプリケーション開発でデータベースを利用する新人プログラマに向けて、SQLおよびT-SQLを短期間で理解できるよう、開発現場ですぐに必要となる内容を中心に解説する。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

主な内容

   --Page 1--
▼SELECT文の基本
▼AS句を利用した別名の付与
▼DISTINCT句による重複データの絞り込み
   --Page 2--
▼算術演算子の利用
▼WHERE句による絞り込み
   --Page 3--
▼さまざまな条件句の利用


 SQLおよびT-SQLの入門解説として始まった本連載、今回は「SELECT」文について取り上げます。今回の記事から読み始めた方は、前回の「初めてSQLコマンドを叩く緊張と感動の一瞬」でSQLの概要とSQL Server 2005の管理ツール「Management Studio」について確認してください。本連載は、SQL Server 2005、サンプルデータベースのAdventureWorksの利用を前提として進めていきます。

 データベースは、データの格納だけが目的ではありません。格納したデータを取り出し利用して初めて真価を発揮するといえます。今回取り上げるSELECT文は、データベースから目的のデータを取得する際に利用します。このため、最も基本的、かつ最も利用頻度の高いSQL文です。このSELECT文をマスターすることがSQLを学ぶうえで必須となります。

SELECT文の基本

 SELECT文の最も基本的な構文は次のような形です。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 「SELECT」句の次に列名を指定し、「FROM」句の後にデータ取得対象のテーブル名を指定します。すべての列を指定したい場合、列名を「(アスタリスク)」に置き換えます。試してみるのが手っ取り早いので、まずはAdventureWorksの「Product」テーブルからデータを取得してみましょう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図1 アスタリスクを利用したSELECT文
図1 アスタリスクを利用したSELECT文(画像をクリックすると拡大します)

 Productテーブルから、全列のデータを取得できました。アスタリスクを利用することで、テーブルの構成を知らなくとも簡単に結果を取得できます。

 では、続いて列名を指定してみましょう。Productテーブルから、3つの列のデータだけを取得するSELECT文は次のとおりです。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図2 列名を指定したSELECT文
図2 列名を指定したSELECT文(画像をクリックすると拡大します)

 列名を指定した場合の結果は、SELECT句で記述した順に表示されます。列順を入れ替えることで、見やすい結果に調整することが可能です。

AS句を利用した別名の付与

 SELECT文を発行すると、表の形でデータを得ることができます。その際、列名にはテーブル定義に従った名前が表示されますが、この列名は自由に変更できます。列に対し別名を付与するには、SELECT句で指定した列名の後に「AS」句を利用します。次の例では、2つの列に対し別名を付与しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図3 列名に対し別名を付与する
図3 列名に対し別名を付与する(画像をクリックすると拡大します)

 別名の付与に際しては、AS句を省略することも可能です。別名の付与は、次回以降紹介するテーブル結合の際によく利用します。

DISTINCT句による重複データの絞り込み

 Productテーブルは、製品ごとの色情報を収めた列「Color」を持っています。このColor列から重複した内容を取り除き、Productテーブルに含まれる色一覧を取得したい、というような場合には「DISTINCT」句を利用します。DISTINCT句は、重複する行を取り除いた結果を返します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図4 DISTINCT句による重複データの絞り込み
図4 DISTINCT句による重複データの絞り込み(画像をクリックすると拡大します)

 DISTINCT句はSELECT文で得られる行から重複データを取り除く、という点に注意してください。SQLを次のように記述した場合、Name列とColor列が重複している場合にその行が取り除かれます。Productテーブルには重複した製品情報は収められていないため、下記のSQLではDISTINCT句に意味はありません。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 DISTINCT句を使った結果と使わない結果を見比べて、どのような動作をしているか確認を行っておきましょう。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る