1.CREATE TABLE文とは
CREATE TABLEは表を作成するSQLです。
CREATE TABLEシステム権限を持っているユーザーで実行できます。
※他ユーザーのスキーマに表を作成する場合などは、別の権限も必要ですが詳細は省きます。
なお、CREATE TABLEは、文DDL(データ定義文:Data Definition Language)のため、自動でコミットされます。
2.CREATE TABLE文の構文
CREATE TABLE文の構文は以下の通りです。
・1列のみのテーブルを作成
CREATE TABLE [スキーマ.] テーブル名
(
列名1 データ型(サイズ) [制約]
);
・複数の列のテーブルを作成
CREATE TABLE [スキーマ.] テーブル名
(
列名1 データ型(サイズ) [制約]
,列名2 データ型(サイズ) [制約]
, 列名3 データ型(サイズ) [制約]
・・・・・・・・・
);
・指定する項目の説明
スキーマ:表を所有するスキーマを指定 ※自分のスキーマ内に作成する場合は省略可
テーブル名:作成する表名
列名:表内で一意の列名を指定する必要がある
データ型(サイズ):列に格納するデータ型とサイズを指定
制約:
NOT NULL:NULL値を禁止
CHECK:列のデータが満たす必要がある条件を指定し、満たさないデータを禁止
UNIQUE KEY:重複したデータ禁止
PRIMARY KEY:主キー。各行を一意に識別する。NULLを禁止。1テーブルに1つだけ定義可能
FOREIGN KEY:外部キー。他テーブルの列を参照し、他テーブルの一意の値と一致しないデータを禁止
DEFAULT:列のデフォルト値を指定
・表領域を指定する場合
以下のように表領域を指定することもできます。
CREATE TABLE [スキーマ.] テーブル名
(
列名1 データ型(サイズ) [制約]
,列名2 データ型(サイズ) [制約]
, 列名3 データ型(サイズ) [制約]
・・・・・・・・・
) TABLESPACE 表領域名;
3.CREATE TABLE文の練習
testDataテーブルの作成
CREATE TABLE testData (
no NUMBER(6) PRIMARY KEY,
name VARCHAR2(10) NOT NULL,
email VARCHAR2(10)
);
以下のSELECT文でテーブルが作成されていることを確認しました。
SELCT * FROM testData;
テストで作成したテーブルのため、以下のDROP TABLE文でテーブルを削除しました。
DROP TABLE testData;
※削除後、SELCT * FROM testData;で削除されていることを確認しました。