連載
» 2004年08月20日 00時00分 公開

初めてのSQL Server 2000:第4回 論理データベース操作の第一歩 (2/2)

[デジタルアドバンテージ,著]
前のページへ 1|2       

作成したテーブルにデータを入力する

 テーブルを作成したら、サンプル・データを入力してみよう。Enterprise Managerでは、表計算アプリケーション風の入力ウィンドウで、現在のテーブルのデータの表示、行の追加、データの変更、行の削除などが行える。これには、操作したいテーブルを右クリックして、表示されるポップアップ・メニューの[テーブルを開く]−[全行を返す]を実行する。

テーブルを開く
テーブルを開いて現在のデータをすべて表示するには、操作したいテーブルを右クリックして、[テーブルを開く]−[全行を返す]メニューを実行する。
 (1)これを実行すると、現在のテーブルの全データが表示される。

 新規に作成したテーブルには、まだデータを入力していないので、何も表示されない。

テーブルを開いたところ
表計算ソフトウェアの要領で、キーボードからデータを入力することができる。

 ここでは、表計算ソフトウェアの要領で、キーボードからテーブルのデータを入力できる。前述した図のデータをそのままPerson、Sectionテーブルに入力した。

 

テーブルのデータを入力したところ(上:Personテーブル、下:Sectionテーブル)
ある行から、次の行にカーソルを移動した時点で、行データはデータベースのテーブルに保存される。

リレーショナル・データ・モデルのデータ操作とSQL文

 データベース・システムのメリットは、アプリケーションからデータを独立させて、安全かつ効率的なデータ操作をアプリケーションに対して提供できることだ。

 RDBMSがベースとするリレーショナル・データ・モデルでは、テーブルに対して「和」や「共通」「差」といった一般的な集合演算を実行したり、射影(projection、テーブルから指定された列だけを抽出する)や選択(selection、条件に合致する行だけを抽出する)、結合(join、複数のテーブルのうち、共通する列データが等しい行を結合する)などリレーショナル・データ・モデル特有の演算を実行したりできる。

 このうち最もよく使う演算は選択だろう。先ほど作成したPersonテーブルで選択を実行してみよう。ここでは例として、Personテーブルから、部署番号が4の行だけ(開発部の社員レコードだけ)を抽出してみる。

Personテーブルに対する選択の実行
例として、Personテーブルから部署番号が4の行だけ(開発部の社員レコードだけ)を抽出する。

 この操作は、テーブルに対するクエリ(問い合わせ)処理である。Enterprise Managerでこれを実行するには、Personテーブルを右クリックし、[テーブルを開く]−[クエリ]を実行する。先ほどは[テーブルを開く]−[全行を返す]を実行してすべての行データを取り出したが、今度は条件を指定して、条件に合致したものだけを選択する。

[テーブルを開く]−[クエリ]メニュー
テーブルに対するクエリ処理を実行する場合はこれを実行する。
 (1)選択条件を指定するにはこれを実行する。

 メニューを実行すると、次の画面になる。

クエリの作成
ここでは、テーブルに対するクエリの条件を指定し、実行することができる。
 (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)

Personテーブルから、部署番号4の社員レコードだけを抽出するSQL文

 クエリの作成が完了したら、ツール・バーにある感嘆符(!)マークのボタンをクリックして、作成したクエリを実行する。するとEnterprise ManagerからSQL Serverデータベースへのクエリが実行され、その結果が(6)の部分に表示される。予定どおり、開発部(部署番号=4)に所属する社員番号5番の「遠藤五郎」さんと、社員番号7番の「米田良子」さんの2行だけが表示されている。

 ここではEnterprise Managerを利用して、マニュアルでクエリを作成して実行したが、データベースを操作するアプリケーションは、こうしたクエリを鋭意アプリケーション側で作成し、実行し、結果を受け取って必要な処理を進めることになる。


 引き続き次回も、今回の人事データベースを例にとり、リレーショナル・データベースの操作をいくつか実行する。特にリレーショナル・データベースの大きな特長の1つである結合(join)の例をご紹介しよう。

「基礎解説初めてのSQL Server 2000 ―― データベースを理解するための第一歩 ――」のインデックス

基礎解説初めてのSQL Server 2000 ―― データベースを理解するための第一歩 ――

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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