矢沢久雄

●データの読み出し

 個人情報テーブルから,個人IDが1234であるレコードの氏名と電話番号を読み出すSQL文を以下に示します。SELECTの後ろに読み出すフィールドをカンマで区切って指定し,FROMの後ろにテーブル名を指定します。WHEREの後ろには,条件を指定します。条件に一致するレコードが複数読み出されることもあります。

SELECT 氏名, 電話番号 FROM 個人情報 WHERE 個人ID = 1234

●データの更新

 個人情報テーブルで,個人IDが1234であるレコードの電話番号を03-8888-9999に更新するSQL文を以下に示します。UPDATEの後ろにテーブル名を指定し,WHEREの後ろに更新の対象となるレコードの条件を指定します。更新するフィールドは,SETの後ろに「フィールド名 = 新しい値」という書式で指定します。

UPDATE 個人情報 SET 電話番号 = '03-8888-9999' WHERE 個人ID = 1234

●データの削除

 個人情報テーブルから,個人IDが1234であるレコードを削除するSQL文を以下に示します。FROMの後ろにテーブル名,WHEREの後ろに削除の対象となるレコードの条件を指定します。

DELETE FROM 個人情報 WHERE 個人ID = 1234

●SQL文の実行

 SQL文を実行するためには,アプリケーションからデータベース・エンジンにSQL文を送る,と先ほど説明しました。これは,具体的には,データベース・エンジンが提供する関数を呼び出すことで実現します(図1)。関数のパラメータにSQL文を与えて,それをデータベース・エンジンに送るのです。

図1●データベース・エンジンが提供する関数を呼び出すことで,SQL文を実行する

 データベース・エンジンの機能が,オブジェクト(データ・オブジェクト)として提供されている場合が多くあります。オブジェクトとは,関数と変数の集合体です。例えば,Jetデータベース・エンジンは,DAO(Data Access Objects)と呼ばれるデータ・オブジェクトを提供しています。DAOが持つ関数でSQL文を実行したら,その結果がDAOが持つ変数に返されます。

●ストアド・プロシジャ

 データベースを操作する便利な方法として,ストアド・プロシジャを紹介しておきましょう。ストアド・プロシジャとは,データベースの中に登録できる小さなプログラムです。

 データベースの利用者が,あらかじめストアド・プロシジャを作成し,それをデータベースに登録ておきます。ストアド・プロシジャを使えば,SQLでできる操作に,条件分岐くり返しなどのプログラム的な機能を追加できます。すなわち,データベースの操作を効率的にできるというわけです。

 ストアドプロシージャの構文は,データベース管理システムの種類によって異なります。以下のリストは,Microsoft SQL Serverのサンプル・データベースのストアド・プロシジャです。SQL文と条件分岐のIF文が組み合わされていることが分かるでしょう。

CREATE PROCEDURE SalesByCategory
@CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'
AS
IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998'
BEGIN
SELECT @OrdYear = '1998'
END