DataTableオブジェクト

ここではサンプルに直接関連する解釈を行う、とすることではありません。

创建一个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句を使用しての非空でなければなりません。

公開された36元の記事 ウォン称賛26 ビュー7576

おすすめ

転載: blog.csdn.net/weixin_43566977/article/details/103665730