检查约束
--密码的长度必须在3-6
--年龄必须在1-120
--性别只能是男或女
--电话号码必须满足电话的格式: 手机格式,座机格式
drop table test;
select * from test;
create table test
(
id number(11) primary key,
name varchar2(20) not null,
pwd varchar2(20) check (length(pwd)>2 and length(pwd)<7),--密码必须在3-6之间
age number(11) check (age between 1 and 120),--年龄必须在1-120之间
gender char(2) check (gender='男' or gender='女'), --性别必须是男或女
tel varchar2(20) check (regexp_like(tel,'^1(3|5|8)[0-9]{9}$|^[0-9]{3}-[0-9]{8}$|^[0-9]{4}-[0-9]{7,8}$'))
)
insert into test values(1,'jack','',22,'男','');
insert into test values(2,'chris','abc',33,'女','0755-1234567');
--oracle中正则表达式的规则:
1、正则表达式的规则,需要以 ^开始,以$结束
2、匹配原则:
^12AB$ --表示,内容必须是12AB
^[0-9]$ --表示,0-9之间任意的一个数字
^[0-9]{2}$ --表示任意的2位数字
^[0-9]{2,6}$ --表示2-6位的任意数字
^[A-Z]$ --表示任意的一个大写字母
^[a-z]$
^[a-z|A-Z]$ --不区分大小写的任意字母
^1(3|5|8)$ --表示一共有两个字符,第一个必须为1,第二位在3,5,8中任选一位
^1(3|5|8)[0-9]{9}$ --表示11位,第一位必须是1,第二位是3,5,8中任意一位,后面是9位数字
^[0-9]{3}-[0-9]{8}$ --表示区号3位数字,中间横线连接,后面8位数字
^[0-9]{4}-[0-9]{7,8}$ --表示区号4位,号码可以是7或8位