ここではサンプルに直接関連する解釈を行う、とすることではありません。
创建一个course表,同时为主键约束列上的唯一性索引设置存储位置和存储参数。
SQL> CREATE TABLE course(
cno NUMBER(6) PRIMARY KEY,
cname CHAR(20) UNIQUE
USING INDEX TABLESPACE indx
STORAGE(INITIAL 64K NEXT 64K)
);
创建一个SC表
SQL> CREATE TABLE SC(
sno NUMBER(6) REFERENCES student(sno),
cno NUMBER(6) REFERENCES course(cno),
grade NUMBER(5,2),
CONSTRAINT SC_PK PRIMARY KEY(sno, cno)
);
说明:该例中定义了三个约束,
⑴其中两个是外键约束分别创建在sno列和cno列,均为列级。
⑵SC_PK是一个多列联合的主键约束,表级约束。
列レベルのFOREIGN KEY制約を定義
[CONSTRAINT CONSTRAINT_NAME] [FOREIGN KEY]
REFERENCESのref_table_name(COLUMN_NAME、...)
テーブル・レベルのFOREIGN KEY制約を定義
[CONSTRAINT CONSTRAINT_NAME] FOREIGN KEY(COLUMN_NAME、...)
REFERENCESのref_table_name(COLUMN_NAME、...)
| [DELETE CASCADE ON NULL SET | RESTRICTED];
CASCADE:テーブルからすべてのレコードを削除します。
SET NULL:表から外部キー制約列の値は、関連するレコードがNULLで
該当するレコードがプライマリ・テーブル内の親レコード、デフォルトの参照を削除することができないサブテーブルから、存在する場合に限定されるもので、削除、即ち:RESTRICTEDは。
DEFAULT
ユーザは、表示列、列に割り当てられたシステムのデフォルト値のためのデータを提供するために、新しい行を挿入していない場合。
構文
[CONSTRAINT <制約名>] DEFAULT式
制約を追加および削除
制約を追加するための構文:
ALTER TABLEは、TABLE_NAME
ADDを[CONSTRAINT CONSTRAINT_NAME]
CONSTRAINT_TYPE [条件条件について](column1_name、column2_name、...);
SQL> CREATE TABLE player(
ID NUMBER(6),
sno NUMBER(6),
sname VARCHAR2(10),
sage NUMBER(6,2),
resume VARCHAR2(1000)
);
添加主键约束到ID列:
SQL> ALTER TABLE player
ADD CONSTRAINT P_PK PRIMARY KEY(ID);
添加惟一性约束到sname列:
SQL> ALTER TABLE player
ADD CONSTRAINT P_UK UNIQUE(sname);
添加检查约束,限制sage取值范围为(20,30):
SQL> ALTER TABLE player
ADD CONSTRAINT P_CK CHECK(sage BETWEEN 20 AND 30);
添加外键约束到sno(主表为student):
SQL> ALTER TABLE player
ADD CONSTRAINT P_FK FOREIGN KEY(sno)
REFERENCES student(sno) ON DELETE CASCADE;
添加空/非空约束到resume列:
SQL> ALTER TABLE player MODIFY resume NOT NULL;
SQL> ALTER TABLE player MODIFY resume NULL;
注意:为表列添加空/非空约束时必须使用MODIFY子句代替ADD子句。
削除制約
ALTER TABLE ... DROP文を使用しては定義されている制約を削除します。
あなたは直接制約に対する制約を指定することで、名前を削除したり、制約を削除するために、コンテンツの制約を指定することができます。
删除指定内容的约束
SQL> ALTER TABLE player DROP UNIQUE(sname);
删除指定名称的约束
SQL> ALTER TABLE player DROP CONSTRAINT P_CK;
注:削除した表の列スペース/時間の制約も代わりにMODIFY句DROP句を使用しての非空でなければなりません。