第4回 論理データベース操作の第一歩:初めてのSQL Server 2000(2/2 ページ)
RDBの中心は、データを格納するテーブルである。論理DB操作の手始めとして、今回は実際に手作業でテーブルを作成してみよう。
作成したテーブルにデータを入力する
テーブルを作成したら、サンプル・データを入力してみよう。Enterprise Managerでは、表計算アプリケーション風の入力ウィンドウで、現在のテーブルのデータの表示、行の追加、データの変更、行の削除などが行える。これには、操作したいテーブルを右クリックして、表示されるポップアップ・メニューの[テーブルを開く]−[全行を返す]を実行する。
テーブルを開く
テーブルを開いて現在のデータをすべて表示するには、操作したいテーブルを右クリックして、[テーブルを開く]−[全行を返す]メニューを実行する。
(1)これを実行すると、現在のテーブルの全データが表示される。
新規に作成したテーブルには、まだデータを入力していないので、何も表示されない。
ここでは、表計算ソフトウェアの要領で、キーボードからテーブルのデータを入力できる。前述した図のデータをそのままPerson、Sectionテーブルに入力した。
リレーショナル・データ・モデルのデータ操作とSQL文
データベース・システムのメリットは、アプリケーションからデータを独立させて、安全かつ効率的なデータ操作をアプリケーションに対して提供できることだ。
RDBMSがベースとするリレーショナル・データ・モデルでは、テーブルに対して「和」や「共通」「差」といった一般的な集合演算を実行したり、射影(projection、テーブルから指定された列だけを抽出する)や選択(selection、条件に合致する行だけを抽出する)、結合(join、複数のテーブルのうち、共通する列データが等しい行を結合する)などリレーショナル・データ・モデル特有の演算を実行したりできる。
このうち最もよく使う演算は選択だろう。先ほど作成したPersonテーブルで選択を実行してみよう。ここでは例として、Personテーブルから、部署番号が4の行だけ(開発部の社員レコードだけ)を抽出してみる。
この操作は、テーブルに対するクエリ(問い合わせ)処理である。Enterprise Managerでこれを実行するには、Personテーブルを右クリックし、[テーブルを開く]−[クエリ]を実行する。先ほどは[テーブルを開く]−[全行を返す]を実行してすべての行データを取り出したが、今度は条件を指定して、条件に合致したものだけを選択する。
メニューを実行すると、次の画面になる。
クエリの作成
ここでは、テーブルに対するクエリの条件を指定し、実行することができる。
(1)結果として選択する列をチェックする。列をチェックすると、(2)にその列に対応する項目が表示される。主キーの列名は太字で表示される。
(2)列に対する条件をここで指定する。
(3)上で指定されたクエリに対応するSQL文が表示される。
(4)クエリの結果が表示される。
(5)クエリを実行する。
細かい点は置いておき、今回の選択条件を設定して、クエリを実行してみよう。
クエリを作成し、実行する
部署番号が4の社員レコード(開発部所属の社員レコード)をクエリで抽出する。
(1)結果として取り出す列をチェックする。
(2)この列に関する抽出条件が指定されていることを示すアイコン。
(3)結果に列を出力するものをチェックする。
(4)抽出条件(部署番号=4)を指定する。
(5)上の条件に対応するSQL言語によるクエリ文。実際にはこれがデータベースによって解釈され、実行される。
(6)クエリを実行した結果。部署番号が4の行だけが選択されて表示されている。
(1)〜(4)までのグラフィカル・インターフェイスを使用してクエリの内容を指定すると、それに対応するSQL文が生成される((5))。実際にSQL Serverが解釈するのはこのSQL文である。連載第1回で解説したとおり、SQL(Structured Query Language)はデータベースの問い合わせ言語として最もポピューラーなもので、SQL Serverという製品名の由来にもなっている。SQL Server 2000では、基本的なデータベース操作コマンドに加え、SQL Server 2000のデータを管理するための各種コマンドなどが追加された、Transact-SQLと呼ばれるSQLの互換言語がサポートされている。
ここで詳しくは説明しないが、SELECTはテーブルから行または列を選択するステートメントで、ここではPersonテーブルの「社員番号」「氏名」「入社年度」「部署番号」の列を選択対象として指定している。次のFROMはSELECTステートメントに付属する句の1つで、SELECTで使用するテーブルを指定する。ここではPersonテーブルを指定している。WHEREもSELECTステートメントの句で、SELECTステートメントで選択される行を制限するための検索条件を指定する。ここでは部署番号が4である行だけを検索している。
SELECT 社員番号, 氏名, 入社年度, 部署番号
FROM Person
WHERE (部署番号 = 4)
クエリの作成が完了したら、ツール・バーにある感嘆符(!)マークのボタンをクリックして、作成したクエリを実行する。するとEnterprise ManagerからSQL Serverデータベースへのクエリが実行され、その結果が(6)の部分に表示される。予定どおり、開発部(部署番号=4)に所属する社員番号5番の「遠藤五郎」さんと、社員番号7番の「米田良子」さんの2行だけが表示されている。
ここではEnterprise Managerを利用して、マニュアルでクエリを作成して実行したが、データベースを操作するアプリケーションは、こうしたクエリを鋭意アプリケーション側で作成し、実行し、結果を受け取って必要な処理を進めることになる。
引き続き次回も、今回の人事データベースを例にとり、リレーショナル・データベースの操作をいくつか実行する。特にリレーショナル・データベースの大きな特長の1つである結合(join)の例をご紹介しよう。
Copyright© Digital Advantage Corp. All Rights Reserved.