CREATE TABLE文により表を作成します。表には列および制約があって、情報が沿うべき規則が決められています。表ごとの制約は列の集合ないしは列を指定します。列にはデータ型が決まっていて、列の制約(列ごとの制約)があります。
表や
制約についての情報は、
列には既定値を与えることができます。既定値とは値が指定されなかったとき、列に挿入される値です。明示されない場合列の既定値はNULLです。詳細は
表を限定する場合、スキーマ名はSYSで始まってはなりません。
CREATE TABLEには二通りの書き方があります。これは、列の定義と制約を指定しようとするか、問い合わせ式の結果に基づき列を定義するかによります。
もう一つのCREATE TABLE文の書き方は、問い合わせで列の名前と/あるいは列のデータ型を指定します。問い合わせ結果の列は、新しい表の各列を作成するときにモデルとして利用されます。
新しい表に列名が指定されなかった場合、問い合わせの結果の全列が、新しい表に同じ名前と対応するデータ型で作成されます。 ひとつあるいはそれ以上の列の名前が新しい表に指定された場合、問い合わせ式の結果には同数の列が無ければなりません。問い合わせ結果の列のデータ型は新しい表の対応する列に引き継がれます。
WITH NO DATA節は問い合わせ結果行のデータは使われず、列の名称と型だけが利用されることを表します。 WITH NO DATAは必ず指定してください。今後のリリースにて、DerbyでもWITH DATAを指定して、問い合わせ式の結果を新規作成された表に挿入するように出来るようになるかもしれません。しかし現在のリリースでは、WITH NO DATAの文しか処理されません。