Oracle DDL文を作成するサンプル

Oracleのtable,view等を作成するDDL文のサンプルです。
DDLとは、Data Definition Languageの略でデータを定義する言語です。

確認環境
・Oracle Express Edition 11g Release 2

目次

テーブル テーブルを作成する(create table)
  テーブルの項目の属性を変更する(alter table)
  テーブルに項目を追加する(alter table)
  テーブルの項目を削除する(alter table)
  テーブルの項目名を変更する(alter table)
  テーブルの項目をNOT NULLにする(alter table)
  テーブルの項目をNULL可能にする(alter table)
  テーブル名を変更する(alter table)
  テーブルを削除する(drop table)
権限 権限を付与する(grant)
  権限を取り消す(revoke)
ビュー ビューを作成する
  ビューを変更する
  ビューを削除する
シノニム シノニムを作成する
  シノニムを削除する
シーケンス シーケンスを作成する
  シーケンスの使い方
  シーケンスを削除する

テーブル

テーブル関連のサンプルです。

テーブルを作成する(create table)

CREATE TABLE syain(
	id NUMBER(6,0),
	name VARCHAR2(20) not null,
	romaji VARCHAR2(20),
	primary key(id)
);

2行目は、number型です。整数6桁を指定しています。
3行目は、not null制約をつけています。
5行目は、プライマリーキーを指定しています。2行目のidを指しています。

テーブルの項目の属性を変更する(alter table)

ALTER TABLE syain MODIFY(
	id VARCHAR2(20)
);

syainテーブルの項目idをvarchar2型に変更しています。

テーブルに項目を追加する(alter table)

ALTER TABLE syain ADD(
	mail VARCHAR2(30)
);

テーブルの最後尾に項目mailが追加されます。

テーブルの項目を削除する(alter table)

ALTER TABLE syain DROP(
	mail
);

テーブルの項目mailを削除しています。桁数の指定は不要です。

テーブルの項目名を変更する(alter table)

ALTER TABLE rireki 
RENAME COLUMN name1 TO name2;

テーブルの項目名のname1をname2に変更しています。

テーブルの項目をNOT NULLにする(alter table)

ALTER TABLE syain MODIFY(
	name NOT NULL
);

テーブルの項目名のnameをNOT NULLに変更しています。

テーブルの項目をNULL可能にする(alter table)

ALTER TABLE syain MODIFY(
	name NULL
);

テーブルの項目名のnameをNULL可能に変更しています。

テーブル名を変更する(alter table)

ALTER TABLE test1
RENAME TO test2;

テーブル名のtest1をtest2に変更しています。

テーブルを削除する(drop table)

drop table syain;

drop tableを使用します。項目の指定は不要です。

権限を付与する(grant)

GRANT 権限名 TO ユーザー名

grantで権限とユーザーを指定します。grantは付与するという意味です。

権限を取り消す(revoke)

REVOKE 権限名 FROM ユーザー名;

revokeで権限とユーザーを指定します。revokeは取り消すという意味です。

ビュー

ビューは、sqlで仮想の表を作成します。

ビューを作成する

CREATE VIEW v_syain AS
	select
		id,
		name
	from
		syain
with read only;

2~6行目は、select文でsyainテーブルからビューを作成しています。
select文なので複数のテーブルを結合したsqlも作成できます。
7行目は、読み取り専用を指定しています。

ビューを変更する

CREATE OR REPLACE VIEW v_syain AS
	select
		id,
		name,
		romaji
	from
		syain
with read only;

1行目は、OR REPLACEを追加しています。
5行目は、viewに項目を追加しています。

ビューを削除する

DROP VIEW v_syain;

drop viewを使用します。項目の指定は不要です。

シノニム

シノニムとは、同義語という意味です。テーブルに別名をつけれます。

シノニムを作成する

CREATE SYNONYM sy_syain FOR syain;

syainテーブルからsy_syainというシノニムを作成しています。
sy_syainというテーブルにinsertした場合、syainテーブルにデータが追加されます。

シノニムを削除する

DROP SYNONYM sy_syain;

シーケンス

シーケンスは、順序とも呼ばれます。指定した値の増分を取得できます。

シーケンスを作成する

CREATE SEQUENCE syain_id
	START WITH 1
	INCREMENT BY 1;

2行目は、最初は1から始まると指定しています。
3行目は、増分です。1ずつ増えます。

シーケンスの使い方

SQL> select syain_id.nextval from dual;
   NEXTVAL
----------
         1

SQL> select syain_id.currval from dual;
   CURRVAL
----------
         1

SQL> select syain_id.currval from dual;
   CURRVAL
----------
         1

1行目は、nextval関数で次の値を取得します。再度、nextvalを使用すると次は2になります。
6,11行目は、currval関数で現在の値を取得します。何度行っても値は変わりません。

シーケンスを削除する

DROP SEQUENCE syain_id;

DROP SEQUENCEを使用します。

関連の記事

Oracle11gのインストールとHRテーブルを確認
Oracle SQLコマンドラインを使用するサンプル
Oracle PL/SQLのプロシージャのサンプル

△上に戻る