SQLのDDL

SQL

SQLのデータ定義言語(DDL)は、データベースオブジェクトの定義、変更、および削除を行うためのコマンド群です。DDLコマンドには、テーブル、ビュー、インデックス、スキーマなどのデータベースオブジェクトを操作するためのコマンドが含まれます。以下に、主要なDDLコマンドについて詳しく説明します。

1. CREATE

目的: 新しいデータベースオブジェクト(テーブル、ビュー、インデックスなど)を作成します。

CREATE TABLE

CREATE TABLE employees (
employee_id INT PRIMARY KEY,
name VARCHAR(100),
hire_date DATE,
salary DECIMAL(10, 2),
department_id INT
);

説明: employees テーブルを作成し、各列のデータ型と制約(例:PRIMARY KEY)を定義します。

CREATE VIEW

CREATE VIEW employee_view AS
SELECT employee_id, name, salary
FROM employees
WHERE salary > 50000;

説明: employee_view というビューを作成し、employees テーブルから給与が50,000以上の従業員のデータを取得します。

CREATE INDEX

CREATE INDEX idx_department ON employees(department_id);

説明: department_id 列に対してインデックスを作成し、検索性能を向上させます。

2. ALTER

目的: 既存のデータベースオブジェクトの構造を変更します。

ALTER TABLE

列の追加:

ALTER TABLE employees
ADD COLUMN email VARCHAR(100);

説明: employees テーブルに email 列を追加します。

列の削除:

ALTER TABLE employees
DROP COLUMN email;

説明: employees テーブルから email 列を削除します。

列の変更:

ALTER TABLE employees
ALTER COLUMN name VARCHAR(150);

説明: employees テーブルの name 列のデータ型を変更します。

3. DROP

目的: データベースオブジェクトを削除します。

DROP TABLE

DROP TABLE employees;

説明: employees テーブルをデータベースから完全に削除します。

DROP VIEW

DROP VIEW employee_view;

説明: employee_view ビューを削除します。

DROP INDEX

DROP INDEX idx_department;

説明: idx_department インデックスを削除します。

4. TRUNCATE

目的: テーブルのすべての行を削除しますが、テーブル構造は保持します。

TRUNCATE TABLE employees;

説明: employees テーブルの全データを削除しますが、テーブル自体は残ります。DELETE コマンドと異なり、TRUNCATE はトランザクションログを使用しないため、パフォーマンスが向上します。

5. RENAME

目的: 既存のデータベースオブジェクトの名前を変更します。

ALTER TABLE employees
RENAME TO staff;

説明: employees テーブルの名前を staff に変更します。

DDLコマンドの実行に関する注意点

  • トランザクション管理: 多くのデータベースでは、DDLコマンドは自動的にコミットされます。そのため、変更を元に戻すことが難しい場合があります。
  • 権限: DDLコマンドの実行には適切な権限が必要です。権限がない場合、エラーが発生します。
  • 依存関係: テーブルやビューには他のオブジェクトとの依存関係があります。例えば、ビューを削除すると、そのビューを参照する他のオブジェクトにも影響を与える可能性があります。

これらのDDLコマンドを理解し、適切に使用することで、データベースの構造を効率的に管理することができます。

コメント

タイトルとURLをコピーしました