リレーショナルデータベースシステム(RDBMS)も、今や、システムの構築には不可欠なものとなりました。皆さんが目にしているシステムや、管理しているシステムでも、RDBMSが使われていないシステムを探すほうが大変ではないでしょうか。RDBMSの普及にともない、RDBMSへのアクセス手段であるSQLも、日常的によく見かけるものとなりました。
このSQL実践講座では、SQLの効率的な使い方をエッセンスにしてお伝えしていこうと考えています。SQLは、データを操作するために非常に簡単な構文で構成されているように見えます。ところが、実際に使い込んでいくと、一見簡単に取得できるように見えるデータが取得できない場面にぶち当たることがあると思います。また逆に、一見取得するのが難しいと思われるようなデータが、SQLを使うと数行でできてしまったりします。このあたりが、SQLの面白いところですね。
この講座では、このような疑問を中心に、「SQLそのもの」について話を進めていこうと考えています。
SQLにはいくつかの規格があります。今現在でいちばん一般的なのは、SQL/92と呼ばれる規格でしょう。これは、ANSIとISOによって、1992年に制定された規格です。別名、「SQL2」とも呼ばれています。
本講座で取り扱うマイクロソフトのMicrosoft SQL Server 7.0は、SQL/92に準拠しています。“準拠”ですので、多くの部分でSQL Server 7.0独自の部分が多数存在します。また、以前のバージョンとの互換性のために、SQL/89に準拠したSQL Server 6.5やSQL Server 6の文法も多くサポートしています(どのバージョンに基づいて文法解析するかは、SQL Serverに対して意図的に指定することができます)。
本講座では、基本的にはSQL/92に基づいた記述をし、必要に応じてSQL/89やSQL Serve独自の記述方法を紹介していこうと考えています。これは、SQL/92に基づいているものと、基づいていないものを意識して使い分けることで、将来同じSQLをOracle用(など)に作成する際の「壁」を少しでも少なくしようという配慮です。
また、SQLの最新版は、「SQL/99」(別名SQL3)です。昨年の1999年に規格化されました(SQL99の詳細についてはこちらを参照)。本講座でも随時取り上げて行きます。
先ほども若干触れましたが、本講座では、マイクロソフトの「SQL Server 7.0」をベースに、例題のSQLを提供していきます。もし環境がない場合は、マイクロソフトのホームページで30日間の試用版を入手できますので、それを利用しても良いでしょう(ただし、ダイアルアップではダウンロードにかなり時間がかかりますが)。
ところで、みなさんは「Northwind」というデータベースをご存知でしょうか? 言わずと知れた、SQL Serverのサンプルデータベースです。例題はこのDBを使用していきますので、もしインストールされていない場合は、ぜひ追加インストールしてください。容量自体も5M程度と、非常に小さなデータベースです。
また、ツールとしては、SQL Server Enterprise Manager、クエリアナライザ(以前のバージョンではISQLと呼ばれてました)を中心に使っていこうと考えています。
では、SQL Server Enterprise Manager(以下、Enterprise Managerと略します)を起動して、Northwindデータベースの中身を調べてみましょう。Enterpriseマネージャの初期画面で、左側のペインの「ツリー」を、「Microsoft SQL Server→SQL Serverグループ→(サーバ名)→データベース→Northwind→テーブル」と順番に選択します。32個のテーブルが右側のリストされていますね。
では、Ordersテーブルを選択して、「操作」メニューを開き、「テーブルを開く→全行を返す」を選択してみましょう。Ordersテーブルの中身が表示されたでしょうか。いちばん上の行に、左から順番に「OrderID」「CustomerID」……とデータのタイトルが表示されています。これを、「列(またはカラム)」と呼びます。これに対し、縦に並んでいるそれぞれのデータを、「行(またはロウ)」と呼びます。1行が1つのデータで、カラムがそれぞれの属性の値を表します。
テーブルとは、このように行と列で表されるデータの集まりのことです。Orders、Customersなどは、それぞれ1つのテーブルですね。
Copyright © ITmedia, Inc. All Rights Reserved.