データ定義言語(DDL)とは
データ定義言語(DDL)は、SQLの一部であり、SQLデータベース内の全てのオブジェクトを定義および管理する役割を果たします。これらのオブジェクトには、テーブル、インデックス、シーケンス、ビュー、スキーマなどが含まれます。データ操作言語(DML)がこれらのオブジェクト内のデータに関連するのに対して、DDLはこれらのオブジェクトの構造に焦点を当てています。
一般的なDDLコマンド:CREATE、ALTER、DROP、およびTRUNCATE
SQLで使用される主なDDLコマンドは、次の4つです。
-
CREATE
このコマンドは、データベース内に新しいオブジェクトを作成するために使用されます。構文はオブジェクトのタイプによって異なりますが、基本的な構造はCREATE <object type> <object name> (<parameters>)
です。 -
ALTER
ALTER
コマンドは既存のデータベースオブジェクトを変更します。これには、テーブルに列を追加したり、列のデータ型を変更したり、オブジェクトの名前を変更したりすることが含まれます。構文はALTER <object type> <object name> <modification command>
です。 -
DROP
不要なオブジェクトを永久にデータベースから削除するためにDROP
コマンドを使用できます。構文はDROP <object type> <object name>
です。 -
TRUNCATE
このコマンドはテーブルから全てのデータを削除しますが、将来の使用のためにテーブルの構造は残します。構文はTRUNCATE TABLE <table name>
です。
DDLの例
以下にこれらのコマンドの例を示します。
/* 新しいテーブルを作成する */
CREATE TABLE Employees (
ID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
DOB DATE
);
/* テーブルを変更して新しい列を追加する */
ALTER TABLE Employees ADD COLUMN Salary FLOAT;
/* テーブルからすべてのデータを削除する */
TRUNCATE TABLE Employees;
/* データベースからテーブルを削除する */
DROP TABLE Employees;
データ操作言語(DML)とは
データ操作言語(DML)は、SQLのサブセットであり、データベース内のデータの挿入、選択、更新、削除に使用されます。DMLを使用することで、テーブルなどのデータベースオブジェクトに格納されているデータを操作することができます。DDLがデータベースオブジェクトの構造に影響を与えるのに対し、DMLは主にこれらのオブジェクト内に含まれるデータに影響を与えます。
一般的なDMLコマンド:SELECT、INSERT、UPDATE、およびDELETE
SQLで使用する主なDMLコマンドは次の通りです。
-
SELECT
このコマンドは、データベース内の1つ以上のテーブルからデータをクエリして取得するために使用されます。一般的な構文はSELECT <columns> FROM <table name> WHERE <condition>
です。 -
INSERT
INSERT
コマンドを使用すると、データをテーブルに挿入することができます。構文はINSERT INTO <table name> (<columns>) VALUES (<values>)
です。 -
UPDATE
このコマンドを使用すると、テーブル内の既存のデータを更新できます。構文はUPDATE <table name> SET <column = value> WHERE <condition>
です。 -
DELETE
DELETE
コマンドを使用すると、テーブル内の既存のレコードを削除できます。構文はDELETE FROM <table name> WHERE <condition>
です。
DMLの例
以下にこれらのコマンドの例を示します。
/* テーブルにデータを挿入する */
INSERT INTO Employees (ID, FirstName, LastName, DOB, Salary)
VALUES (1, 'John', 'Doe', '1980-07-15', 50000);
/* テーブルからデータを選択する */
SELECT * FROM Employees;
/* テーブル内のデータを更新する */
UPDATE Employees
SET Salary = 55000
WHERE ID = 1;
/* テーブルからデータを削除する */
DELETE FROM Employees
WHERE ID = 1;
データ制御言語(DCL)とは
データ制御言語(DCL)は、データベースオブジェクトへのアクセスと権限を制御するために使用されるSQLコマンドのサブセットです。DCLコマンドはセキュリティの維持やデータベース内のデータへのアクセスの管理に必要です。これにより、データベース管理者はデータへのアクセス権限と操作権限を制御することができます。
一般的なDCLコマンド:GRANTとREVOKE
主なDCLコマンドは次の通りです。
-
GRANT
このコマンドは、データベースユーザーに権限を付与するために使用されます。権限には、データベースオブジェクトでのSELECT
、INSERT
、UPDATE
、DELETE
などの操作が含まれる場合があります。構文はGRANT <privileges> ON <object> TO <user>
です。 -
REVOKE
REVOKE
コマンドは、データベースユーザーに付与された権限を取り消すために使用されます。これは基本的にGRANT
コマンドの逆の操作です。構文はREVOKE <privileges> ON <object> FROM <user>
です。
DCLの例
以下にこれらのコマンドの例を示します。
/* ユーザーにSELECTおよびINSERTの権限を付与する */
GRANT SELECT, INSERT ON Employees TO user1;
/* ユーザーからINSERTの権限を取り消す */
REVOKE INSERT ON Employees FROM user1;