创建一个表 users,包括 id,name,gender,salary 字段,使用 check 约束【性别只能是 男或女,薪水介于 6000 到 8000 之间】
SQL> create table users(
2 id number(5) primary key,
3 name varchar2(10) not null unique,
4 gender varchar2(10) not null check ( gender in ('男','女') ),
5 salary number(10) not null check ( salary between 6000 and 8000 )
6 );
表已创建。
check ( gender in ('男','女') ) 表示插入数据的时候,检查 gender 字段的数据只能为 "男" 或者 "女";
如下插入数据的语句,就会报错:
SQL> insert into users(id,name,gender,salary) values(1,'哈哈','中',6000);
insert into users(id,name,gender,salary) values(1,'哈哈','中',6000)
*
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C0010907)
check ( salary between 6000 and 8000 ) 表示 salary 的取值范围只能在 6000-8000 之间;
如下语句,也会报错:
SQL> insert into users(id,name,gender,salary) values(2,'呵呵','男',5000);
insert into users(id,name,gender,salary) values(2,'呵呵','男',5000)
*
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C0010908)