约束的名称:
我们可以在创建约束的时候指定名称,使用CONSTRAINT来创建
默认的约束名称:
--删除数据表
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);
指定约束的名称:
--删除数据表
DROP TABLE teacher PURGE;
--创建数据表
CREATE TABLE teacher(
tno NUMBER(4),
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE,
--创建主键约束(使用CONSTRAINT 关键字引导创建)
CONSTRAINT pk_tno PRIMARY KEY(tno),
--创建唯一约束
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之间,就可以使用检查约束
检查约束(CHECK):
--删除数据表
DROP TABLE teacher PURGE;
--创建数据表
CREATE TABLE teacher(
tno NUMBER(4),
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE,
--创建主键约束(使用CONSTRAINT 关键字引导创建)
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.检查约束只是作为语法提出,在开发中不会去使用,因为很耗费性能,如果真有这种需求,都是交给程序去实现