Oracleのtable,view等を作成するDDL文のサンプルです。
DDLとは、Data Definition Languageの略でデータを定義する言語です。
確認環境 ・Oracle Express Edition 11g Release 2 |
目次
テーブル
テーブル関連のサンプルです。
テーブルを作成する(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のストアドプロシージャのサンプル