约束的名称

    xiaoxiao2022-07-03  146

    文章目录

     唯一约束、非空约束、主键约束都有自己的名字,只不过是系统自动给定的默认名称,我们也可以在创建约束的时候指定名称,这个需要使用constraint来创建。 DEMO:观察默认的约束名称 --删除数据表 DROP TABLE teacher PURGE;  --创建数据表 CREATE TABLE teacher(  tno NUMBER(4) PRIMARY KEY,--主键约束  tname VARCHAR2(10) UNIQUE,--唯一约束  tage NUMBER(3),  tdate DATE ); --插入数据 INSERT INTO teacher VALUES(1001,‘X老师’,100,SYSDATE); INSERT INTO teacher VALUES(1002,‘Y老师’,100,SYSDATE); INSERT INTO teacher VALUES(1003,‘Z老师’,100,SYSDATE); DEMO:指定自定义的约束名称 --删除列表 DROP TABLE teacher PURGE; --创建数据表 CREATE TABLE teacher(  tno NUMBER(4),  tname VARCHAR(10),  tage NUMBER(3),  tdate DATE, --创建主键约束(使用constraint关键字引导创建) CONSTRAINT pk_tno PRIMARY KEY(tno), --创建唯一约束(使用constraint关键字引导创建) CONSTRAINT uk_tname UNIQUE(tname) ); --插入数据 INSERT INTO teacher VALUES(1001,‘X老师’,100,SYSDATE); INSERT INTO teacher VALUES(1002,‘Y老师’,100,SYSDATE); INSERT INTO teacher VALUES(1003,‘Z老师’,100,SYSDATE); 除了以上三种约束之外还有其他约束比如检查约束,检查约束是可以为字段值进行简单的验证,比如要让年龄的范围是0~250岁,那么可以使用检查约束 DEMO:检查约束(CHECK) --删除数据 DROP TABLE teacher PURGE; --创建数据表 CREATE TABLE teacher (  tno NUMBER(4),  tname VARCHAR2(10),  tage NUMBER(3),  tdate DATE,  --创建主键约束  CONSTRAINT pk_tno PRIMARY KEY(tno),  --创建唯一约束  CONSTRAINT uk_tname UNIQUE(tname),  --创建检查约束  CONSTRAINT ck_tage CHECK(tage BETWEEN 0 AND 250) ); --插入数据 INSERT INTO teacher VALUES(1001,‘X老师’,100,SYSDATE); INSERT INTO teacher VALUES(1002,‘Y老师’,100,SYSDATE); INSERT INTO teacher VALUES(1003,‘Z老师’,251,SYSDATE); 总结: 1、如果要指定约束的名称,那么需要使用CONSTRAINT引导创建 2、检查约束我们只是作为语法提出,在开发中不会去使用,因为很耗费性能,如果真有这样的需求是交给程序去实现。

    最新回复(0)