【Oracle】CREATE TABLE でテーブルを作成する

OracleのCREATE TABLEについて。

この記事の内容はコチラです

  • CREATE TABLEの使い方
  • テーブルを作成したい

今回は、Oracleの「CREATE TABLE」について紹介します!

CREATE TABLE テーブルを作成する

Oracleでテーブル(表)を作成するには「CREATE TABLE ~」を使います。

--テーブル(表)を作成する
CREATE TABLE {テーブル名} 
 (
 {列1} {列1のデータ型},
 {列2} {列2のデータ型},
 {列3} {列3のデータ型},
 CONSTRAINT {主キー名} PRIMARY KEY(列1) 
 ) 
TABLESPACE {表領域名};

「CREATE TABLE ~」でテーブル名、列を定義します。

「CONSTRAINT~」はプライマリーキー(主キー)の設定です。オプションなのでなしでもOKです。同様に 表領域もオプションです。指定しないとデフォルトの表領域にテーブルが作成されます。

例1. テーブルを作成する

--テーブル(表)を作成する
CREATE TABLE emp 
 (
 empno VARCHAR2(10) NOT NULL,
 empname VARCHAR2(50),
 gender_f NUMBER(1,0)
 ) 
;

ここでは3つの列からなるテーブル「emp」を作成しました。表領域は指定していないので、デフォルト表領域に作成されました。

「empno」に「NOT NULL」制約をつけました。これはNULL値を許可しないという意味です。必ずデータを登録しないといけない列に対して設定します。

例2. プライマリーキーを指定してテーブルを作成する

--テーブル(表)を作成する
CREATE TABLE emp 
 (
 empno VARCHAR2(10),
 empname VARCHAR2(50),
 gender_f NUMBER(1,0),
 CONSTRAINT pk1 PRIMARY KEY(empno)
 ) 
TABLESPACE tabsp1;

ここでは3つの列からなるテーブル「emp」を表領域「tabsp1」に作成しました。

「CONSTRAINT pk1 PRIMARY KEY(empno)」はプライマリーキー(主キー)の記述です。プライマリーキー「pk1」をカラム「empno」に指定しました。

プライマリーキーはテーブル作成後でも追加できます。

例3. プライマリーキーを複数指定してテーブルを作成する

--テーブル(表)を作成する
CREATE TABLE emp 
 (
 empno VARCHAR2(10),
 area NUMBER(3,0),
 empname VARCHAR2(50),
 gender_f NUMBER(1,0),
 CONSTRAINT pk1 PRIMARY KEY(empno,area)
 ) 
TABLESPACE tabsp1;

「CONSTRAINT pk1 PRIMARY KEY(empno,area)」はプライマリーキーの記述です。プライマリーキー「pk1」を複数列「empno,erea」に対して指定しました。

例4. 他のテーブルをもとにテーブルを作成する

--他のテーブルをもとにテーブル(表)を作成する
CREATE TABLE emp 
 AS SELECT * FROM test;

他のテーブルと全く同じ構成でテーブルを作成(コピー)する場合は、「AS」以降に元になるテーブルでSELECTすればOKです。

ここでは「test」テーブルから「emp」テーブルをコピーして作成しました。これはテーブルを作成するだけなので、元テーブルのデータは引き継がれません。

参照CREATE TABLE – Oracle Database SQL言語リファレンス

以上、Oracleでテーブル(表)を作成する「CREATE TABLE ~」でした。

 

コメント