SQLにおけるCREATE文の詳細解説
SQLの`CREATE`文は、関係
データベース管理システム(RDBMS)において、
データベースオブジェクトを新たに作成するための
データ定義言語(DDL)命令です。この命令は、
データベースの構造を定義し、さまざまな要素を構築するために使用されます。
CREATE文で作成可能なオブジェクト
`CREATE`文で作成できるオブジェクトの種類は、使用しているRDBMSの実装によって異なりますが、一般的には以下のものが含まれます。
表(テーブル): データを格納する基本的な構造。
定義域(ドメイン): 列のデータ型や制約を定義。
索引(インデックス): データの検索を高速化するための構造。
利用者(ユーザー):
データベースへのアクセス権を持つユーザーアカウント。
別名(シノニム): オブジェクトの別名。
ストアドプロシージャ: 一連の
SQL文をまとめたプログラム。
データベース: データの集合。
一部のRDBMS(例:PostgreSQL)では、`CREATE`文を含むDDL命令をトランザクション内で実行できます。これにより、DDL操作をロールバックすることが可能となり、データベースの変更管理がより柔軟になります。
CREATE TABLE文
`CREATE`文の中でも特に重要なのが`CREATE TABLE`文です。これは、データベース内に新しいテーブルを作成するために使用されます。以下に基本的な構文を示します。
sql
CREATE [TEMPORARY] TABLE [表名] (
[基底表要素カンマリスト]
) [表パラメータ];
基底表要素カンマリスト
`基底表要素カンマリスト`は、テーブルの構造を定義するための要素をカンマで区切ったリストです。以下の要素を含めることができます。
列定義: テーブル内の列の名前、データ型、制約などを定義します。
sql
[列名] [データ型] {NULL | NOT NULL} {列オプション}
主キー定義: テーブルの主キーを定義します。
sql
PRIMARY KEY ( [列カンマリスト] )
制約: 列やテーブルに対する制約を定義します。
sql
{CONSTRAINT} [制約定義]
具体例:従業員テーブルの作成
以下に、「従業員」という名前のテーブルを作成する`CREATE TABLE`文の例を示します。
sql
CREATE TABLE 従業員 (
従業員ID INT PRIMARY KEY,
名前 VARCHAR(255) NOT NULL,
部署 VARCHAR(255),
入社日 DATE
);
この例では、以下の列を持つ「従業員」テーブルが作成されます。
`従業員ID`:整数型で主キー制約が設定されています。
`名前`:可変長文字列型で、NULL値を許可しない制約が設定されています。
`部署`:可変長文字列型。
`入社日`:日付型。
まとめ
`CREATE`文は、
SQLにおける基本的なDDL命令であり、
データベースオブジェクトの作成に不可欠です。特に`CREATE TABLE`文は、データの格納構造を定義する上で重要な役割を果たします。RDBMSの実装によって`CREATE`文の機能や構文に若干の違いがあるため、使用するRDBMSのドキュメントを参照することが重要です。
参考文献
* C.J.Date、Hugh Darwen、QUIP LLC (訳)、『標準
SQLガイド 改訂第4版』、アスキー、1999年、ISBN 4-7561-2047-4