ORACLE_约束(主键 唯一键 )

一.主键约束 //ALTER TABLE * ADD CONSTRAINT * PRIMARY KEY (*)

1.外部定义:

ALTER TABLE STUDENT ADD CONSTRAINT PK_ID PRIMARY KEY(ST_ID);

2.行级定义

CREATE TABLE STUDENT(

ST_ID NUMBER(4) PRIMARY KEY ,

..........

);

3.表级定义:

CREATE TABLE STUDENT(

ST_ID NUMBER(4)  ,

..........,

CONSTRAINT PK_ID PARIMARY KEY (ST_ID)

);

二.UNIQUE 唯一约束  //约束此字段内容不可以相同,但允许为空。 ALTER TABLE * ADD CONSTRAINT * UNIQUE(*)

1.外部定义

ALTER TABLE STUDENT ADD CONSTRAINT UN_NAME UNIQUE(ST_NAME); 

2.表级定义

CREATE TABLE STUDENT(

ST_ID  NUMBER(4) ,

ST_NAME VARCHAR2(20) CONSTRAINT UN_ST_NAME UNIQUE,

.....

)

3.行级定义

CREATE TABLE STUDENT(

ST_ID  NUMBER(4) ,

ST_NAME VARCHAR2(20),

.....,

CONSTRAINT UN_ST_NAME UNIQUE (ST_NAME)

)

三.删除约束  ALTER TABLE * DROP CONSTRAINT *

ALTER TABLE STUDENT DROP CONSTRAINT PK_ST_ID;

四.非空约束  NOT NULL   //ALTER TABLE * MODIFY *  *

    ALTER TABLE STUDENT MODIFY ST_NAME NOT NULL

表级定义:

    CREATE TABLE STUDENT(

     ST_NAME VARCHAR2(20)  NOT NULL,

    ......,

)

五.检查约束  CHECK //检查的内容允许为空

    外部定义:ALTER TABLE * ADD CONSTRAINT * CHECK(*=*)

       ALTER TABLE STUDENT ADD CONSTRAINT CHECK_ST_NAME CHECK(ST_NAME='TOM' AND ST_NAME IS NOT NULL)

     表级定义:

     CREATE TABLE STUDENT(

     ST_NAME VARCHAR2(20)  CHECK(ST_NAME='TOM'),

    ......

      )

六.外键约束  FOREIGN KEY  //用来强制两个表的关系

外键:将要引用父表列中的列

引用键:被外键引用的子表中的主键或唯一键

 

CREATE TABLE C_CLASS(

C_ID NUMBER(4) PRIMARY KEY,

C_NO NUMBER(4) UNIQUE,

C_TEACHER VARCHAR2(20)

)

CREATE TABLE T_STUDENT(

S_ID NUMBER(4),

S_NO NUMBER(4),

C_NO NUMBER(4),

S_NAME VARCHAR2(20)

)

外部定义:ALTER TABLE * ADD CONSTRAINT * FOREIGN KEY() REFERENCES  *(*)

     ALTER TABLE T_STUDENT ADD CONSTRAINT FK_ST_NO FOREIGN KEY(C_NO) REFERENCES C_CLASS(C_NO)

定义外键:级联删除

ON DELETE CASCADE //删除主表数据时顺带删除所对应的从表数据

     ALTER TABLE  T_STUDENT ADD CONSTARINT FK_ST_NO FOREIGN KEY(C_NO) REFERENCES C_CLASS(C_NO)           ON DELETE CASCADE

ON DELETE SET NULL //删除主表数据时将从表对应的外键的值设置为空

      ALTER TABLE T_STUDENT ADD CONSTRAINT FK_ST_NO FOREIGN KEY(C_NO) REFERENCES C_CLASS(C_NO)            ON  DELETE SET NULL

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值