本ホームぺージでは、Accessの様々なクエリ機能について紹介をしてきましたが、これらは全て「SQL文」というものを用いて構築されています。SQL文は、プログラミング言語とは異なり、データベースを操作することに特化した言語です。
今回は、いくつかの基本的なSQL文について紹介をし、AccessでもSQLを使ってクエリを構築できるように基礎を学んでいきましょう。
データ処理をするSQL文
データベースのデータを処理する方法としては、大きく4つに分類することができ、「検索」、「追加」、「更新」及び「削除」が挙げられます。これらのデータ操作言語として以下のSQL文が用意されています。
データの検索: SELECT
データの更新: UPDATE
データの追加: INSERT
データの削除: DELETE
各構文について例を踏まえて確認をしていきましょう。
SELECT文について
データの検索に対するSQL文は、「SELECT」文となりますが、これはAccessの選択クエリに相当します。以下の記事中の図6に示すクエリをSQL文で表現します。
SELECT T_従業員.氏名, T_部署.部署名 FROM T_従業員 INNER JOIN T_部署 ON T_従業員.部署コード = T_部署.部署コード;
このSQL文は、「T_従業員」テーブルと「T_部署」テーブルを「部署コード」フィールドで内部結合した後、「氏名」と「部署名」フィールドを射影により出力するデータ処理を示しています。
UPDATE文について
データの更新に対するSQL文は、「UPDATE」文となりますが、これはAccessの更新クエリに相当します。以下の記事で作成した更新クエリをSQL文で表現します。
UPDATE T_従業員 SET T_従業員.部署コード = “A101”
WHERE (((T_従業員.部署コード)=”A111″));
このSQL文は、「T_従業員」テーブルの「部署コード」フィールドで「A101」の値を「A111」に更新する処理を示しています。
INSERT文について
データの追加に対するSQL文は、「INSERT」文となりますが、これはAccessの追加クエリに相当します。以下の記事で作成した追加クエリをSQL文で表現します。
INSERT INTO T_従業員 ( 氏名, 部署コード, 年齢, 電話番号, 出身地 )
SELECT T_従業員コピー元.氏名, T従業員コピー元.部署コード, T従業員コピー元.年齢, T従業員コピー元.電話番号, T従業員コピー元.出身地 FROM T従業員コピー元 WHERE (((T従業員_コピー元.年齢)<=25));
このSQL文は、「T_従業員_コピー元」テーブルから年齢が25歳以下のレコードを抽出し「T_従業員」テーブルの「氏名」、「部署コード」、「電話番号」及び「出身地」フィールドへ値を追加する処理を示しています。
DELETE文について
データの削除に対するSQL文は、「DELETE」文となりますが、これはAccessの削除クエリに相当します。以下の記事で作成した追加クエリをSQL文で表現します。
DELETE T_従業員.氏名, T_従業員.部署コード, T_従業員.年齢, T_従業員.電話番号, T_従業員.出身地 FROM T_従業員 WHERE (((T_従業員.年齢) Between 22 And 25));
このSQL文は、「T_従業員」テーブルから年齢が22歳から25歳までのレコードを抽出し削除する処理を示しています。
データ定義をするSQL文
データ定義言語とは、データベース自体に命令を出すものであり、例えば、データの容れ物であるテーブルを操作する際に用います。テーブル操作の例としては、「作成」、「変更」及び「削除」が挙げられます。これらのデータ定義言語として以下のSQL文があります。
テーブルの作成: CREATE
テーブルの変更: ALTER
テーブルの削除: DROP
各構文について例を踏まえて確認をしていきましょう。
CREATE文について
CREATE文はテーブルを作成する際に用いるSQL文で、Accessでは「CREATE TABLE」と表現します。
例えば、「ID」、「氏名」、「年齢」及び「入社年月日」フィールドをそれぞれ「オートナンバー型」、「短いテキスト」、「数値型」及び「日付/時刻型」とした「T_テスト」テーブルを作成するためのSQL文は次のように表現されます。
CREATE TABLE T_テスト(
ID COUNTER PRIMARY KEY,
氏名 CHAR(20),
年齢 INT,
入社年月日 DATE
);
ALTER文について
ALTER文はテーブルのフィールドのデータ型を変更するために用いるもので、例えば、「テーブル1」の「数値」フィールドのデータ型を「短いテキスト」型にしたい場合は次のようなSQL文で表現することができます。
ALTER TABLE テーブル1 ALTER COLUMN 数値 TEXT;
Accessでクエリとして用意されてはいませんが、SQLビューで定義をしてあげるとALTER文も機能してくれます。しかしながら、ALTER文を使ってデータ型を変更する機会はほとんどありません。
DROP文について
DROP文はテーブルを削除する際に用いるSQL文で、Accessでは「DROP TABLE」と表現します。
「テーブル1」テーブルを削除するためのSQL文は次のように表現されます。
DROP TABLE テーブル1;
Accessでクエリとして用意されてはいませんが、SQLビューで定義をしてあげるとALTER文も機能してくれます。しかしながら、ALTER文を使ってデータ型を変更する機会はほとんどありません。
まとめ
今回は、データベースを操作するための言語であるSQL文としていくつかの構文を紹介しました。
今回紹介したSQL文以外にも、多数用意されていますが、これらのSQL文を活用することでクエリウィザードでは作りにくい、複雑なデータ処理も実現することができるようになりますので、本記事を参考に業務効率の改善を図っていただければと思います。
以下の書籍はSQL文を学習する上で参考になると思いますので、お手元に用意されることをお勧めします。
コメント