スタートページWeb教材一覧データベース

データベース言語(SQL)の体系 DDL/DML/DCL

学習のポイント

データベース管理システムの体系-データベース言語の種類-をSQLをベースに理解します。

キーワード

データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)


SQLの命令(文)は、次の3つに大別できます。

データ定義言語(DDL:Data Definition Language)
データベースのデータ構造を定義する言語
CREATE(表の創成、定義)、DROP(表の削除)など
データ操作言語(DML:Data Manipulation Language)
既存表からのデータ検索・追加・更新・削除を行うための言語
SELECT(検索)、INSERT(追加)、UPDATE(更新)、DELETE(削除)など
データ制御言語(DCL:Data Control Language)
データベースへのアクセス制御に関する言語
GRANT(アクセス権付与)やREVOKE(権限破棄)など

データ定義言語

CREATE文:新表の創成・定義
基本形 CREATE TABLE 新表名
      列名1 データ型, 列名2 データ型. …;
DROP文:表の削除
基本形 DROP TABLE 表名;
ALTER文:列の追加・削除
基本形 ALETR TABLE 表名 ADD 新列名 データ型;

制約

CREATE TABLEにおいて、制約を記述することにより、誤った操作を防止することができます。以下の主キー制約と外部キー制約をあわせてキー制約といいます。CHECKとASSERTIONは、一般の項目(列)に関する制約です。

主キー制約(PRIMARY KEY)と一意性制約
商品表において、商品が主キーであり、重複がないことを定義します。
   CREATE TABLE 商品表
   (
     商品, 仕入先, 単価, ・・・
     PRIMARY KEY(商品)
   );
(一意性制約は、UNIQUEで定義することもできます。このときはNULLが許可されます。)
外部キー制約(FOREIGN KEY)と参照制約
売上表において、商品が外部キーであり、その商品は商品表に存在するものに限る(これを参照制約といいます)ことを定義します。
   CREATE TABLE 売上表
   (
     商品, 個数, ・・・
     FOREIGN KEY(商品) REFFERENCES 商品表(商品)
   );
CHECKと検査制約
売上表で個数は整数で10個以下でなければならないというような定義です。
   CREATE TABLE 売上表
   (
     商品, 個数 INTEGER CHECK(個数<=10), ・・・
   );
ASSERTIONと表明
CHECKと同様な入力値チェックですが、CREATE TABLE文に記述するのではなく、独立した文として定義します。そのことを表明といいます。
   CREATE ASSERTION チェック名 CHECK(チェックの内容。SELECT文のような形式);

データ操作言語

SELECT文:既存の表からの検索
基本形 SELECT 列名1,列名2,・・・
     FROM 表1,表2,・・・
     WHERE 条件1 AND 条件2 …;
     INTO 新表名
参照:「SELECT文の演習」
INSERT文:新行の挿入
基本形 INSERT INTO 表名
     VALUES (列名1の値, 列名2の値, …);
DELETE文:条件に合致した行を削除
基本形 DELETE FROM 表名
     WHERE …;
UPDATE文:指定した列の値の変更
基本形 UPDATE 表名
     SET 列名1=値の式1、列名1=値の式1、・・・
     WHERE …;

データ制御言語

GRANT文:アクセス権限の付与
基本形 GRANT 権限名 ON 表名
     TO { ユーザ名 | PUBLIC };
   (PUBLIC を指定すると全ユーザが対象)
REVOKE文:アクセス権限の取消
基本形 REVOKE 権限名 ON 表名
     FROM { ユーザ名 | PUBLIC };

本シリーズの目次へ