6. AND 7. OR
4.3 SQL コマンドのアルファベット順のリスト コマンドのアルファベット順のリスト コマンドのアルファベット順のリスト コマンドのアルファベット順のリスト
4.3.18 CREATE TABLE
構文 構文構文 構文 図図図
図 4-27 CREATE TABLEコマンドコマンドコマンドコマンド
BNF表記法表記法表記法表記法
CREATE TABLE [schema .] table column_list [column_list ]...
[AS subquery] ; column_list::=
図図図
図 4-28 column_list式式式式
BNF表記法表記法表記法表記法
"("
column datatype [DEFAULT expr][column_constraint] [column_constraint]...
[table_constraint]
[, column datatype [DEFAULT expr][column_constraint] [column_constraint]...
[table_constraint]]...
")"
用途 用途用途 用途
データベース表を作成します。
また、指定された副問合せの結果に基づいてデータベースを作成し移入します。列のデータ 型は、副問合せの結果セットから導出されます。詳細は、「使用上の注意」を参照してくだ さい。
SQLコマンドのアルファベット順のリスト
前提条件前提条件前提条件 前提条件
ユーザーのスキーマまたは別のスキーマ内に表を作成するには、データベースにSYSTEM として、またはDBA/DDL権限を持つユーザーとしてログインする必要があります。
使用上の注意 使用上の注意使用上の注意 使用上の注意
CREATE ANY TABLEを使用して別のスキーマに表を作成できますが、DBA/DDLロール
が必要です。
表 表表
表 4-18 CREATE TABLEコマンドで使用される引数コマンドで使用される引数コマンドで使用される引数コマンドで使用される引数 引数引数引数
引数 説明説明説明説明
schema 所有者であるユーザーと同じ名前のスキーマ。省略すると、デ
フォルトのスキーマ名が使用されます。
table データベースの表の名前。表名にはピリオド「.」を含めることは
できません。また、アンダースコア「_」の付いた文字で始めるこ ともできません。
column 表の列の名前。
datatype columnのデータ型。副問合せでは使用できません。
DEFAULT 新しい列に対してデフォルト値expr(式)を指定するか、既存の
列に対して新規デフォルトexprを指定します。次のいずれかにな ります。
■ DEFAULT NULL、DEFAULT USER(表が作成された際の ユーザー名)、DEFAULTリテラル
■ ODBC FUNCTIONS - TIMESTAMPADD、 TIMESTAMPDIFF、DATABASE、USER
■ SQL FUNCTIONS - CURRENT_DATE、CURRENT_TIME、 CURRENT_TIMESTAMP、SYSDATE
式の詳細は、「式の指定」を参照してください。
column_constraint 列整合性制約を追加します。詳細は、「CONSTRAINT句」を参照
してください。
table_constraint 表整合性制約を追加します。詳細は、「CONSTRAINT句」を参照
してください。
AS subquery SELECT文。
SQLコマンドのアルファベット順のリスト
■ 選択リスト内の式に別名が含まれている場合は、列名として別名が使用されます。
■ 式が別名を持たない列の場合、その名前が列名として使用されます。列ではなく、別名 を持たない式は無効です。表の列のデータ型は、副問合せの選択リスト内の対応する式 のデータ型と同じです。
■ 副問合せがUNIONまたはMINUSを含む場合、最初の選択文がこの目的に使用されま す。
column_listが含まれている場合は、次のようになります。
■ column_list内の列の数は、副問合せの式の数と等しくする必要があります。
■ 列定義は、列名、デフォルト値および整合性制約のみを指定できますが、データ型は指 定できません。
■ 参照整合性制約は、CREATE TABLE文のこの構成では定義できません。かわりに、後
でALTER TABLE文を使用して参照整合性制約を作成できます。
subqueryでORDER BY句が使用された場合、データはその順序で表に挿入されます。これ
は通常、列による順序に従ったデータのクラスタとなりますが、保証はされません。
例例例 例1
次の文は、HOTEL_NAMEとCAPACITYの2つの列がある表HOTEL_DIRを作成します。
HOTEL_NAMEは主キーで、CAPACITYはNULLにはできず、デフォルト値が0です。
CREATE TABLE HOTEL_DIR (HOTEL_NAME CHAR(40) PRIMARY KEY, CAPACITY INTEGER DEFAULT 0 NOT NULL)
例 例例 例2
次の文は、表HOTEL_RESTAURANTを作成します。
CREATE TABLE HOTEL_RESTAURANT(REST_NAME CHAR(50) UNIQUE, HOTEL_NAME CHAR(40) REFERENCES HOTEL_DIR,
RATING FLOAT DEFAULT NULL) 列には、次のものが含まれます。
■ REST_NAMEはレストランの名前です。
■ HOTEL_NAMEはレストランのあるホテルの名前です。
■ RATINGはレストランの評価で、そのデフォルト値はNULLです。
表には、次の整合性制約があります。
■ 同じ名前のホテル・レストランが2つ以上あってはならない。
■ HOTEL_NAMEは、HOTEL_DIR表内のホテルを参照する必要がある。
SQLコマンドのアルファベット順のリスト
関連項目関連項目関連項目 関連項目
CONSTRAINT句、DROP TABLE、ALTER TABLE、SELECT