数据库的五大约束条件

唯一约束:  如果有一列添加了唯一约束,那么就代表如果这一列有值的话,
          这个值必须唯一,不能跟其他的值一样;  但是这一列允许位空值;
          即:可以为空值,但是一旦有值必须唯一;
          例如:手机号   银行卡号  
          定义: 在所有列定义完之后加逗号,  unique(列名)
          
drop table human;
create table human(
id char(18),
name varchar2(30),
sex char(2),
age number(9),
telephone number(11),
unique(telephone)
);      


主键约束: 是非空和唯一的集合;  
        如果有一列添加了主键约束,那么这一列的取值不能为空值,而且取值要唯一;
        例如:身份证号、 学号、职工编号、药品编号、商品编号等等
        主键:是用来唯一标示一行数据的;    主键一般都是编号;  
        定义:在所有列定义完之后加逗号,   primary key(列名)
        建议每个表都要添加主键约束;
        drop table human;
create table human(
id char(18),
name varchar2(30),
sex char(2),
age number(9),
telephone number(11),
primary key(id)
);      


检查约束:自定义约束;自己决定限制条件;
          如果有一列添加了检查约束,那么符合检查条件的数据可以进入到表中,不符合就进不去;
          例如: 驾校  年龄在18~70之间   age>=18 and age<=70       age between 18 and 70
          定义: 在所有列定义好了之后加逗号,  check(1个或者多个检查条件)    ---跟查询条件一样

        drop table human;
create table human(
id char(18),
name varchar2(30),
sex char(2),
age number(9) ,
telephone number(11),
check(age>=18 and age<=70)
);



外键约束(完整性约束): 涉及到2个表; 父表和子表  ; 子表中的数据要依赖于父表; 即:父表中得先有这个数据,子表才能使用;
     外键约束是加在子表中; 父表中得先有这个数据,子表才能使用;
     定义: 在所有列定义完之后加逗号,  foreign key(子表外键列名) references  父表名(父表主键列名)
     
insert into emp values('8889','xiaobai','CLERK','7902',sysdate,4000,null,80);

select * from dept; --部门表  父表
select * from emp;   ---子表  
insert into dept values(80,'美女部','xian');

职工跟部门

学生跟系别的关系   
公民(籍贯)和省份表
   公民表:  增加一列,籍贯 ;       
   省份表: 省份编号  省份名称  
   ---先创建父表
   drop table
   create table province_tab(
     pro_id  number(3),
     pro_name varchar2(30),
     primary key(pro_id)
   );

             drop table human;
create table human(
id char(18),
name varchar2(30),
sex char(2),
age number(9) ,
telephone number(11),
province  number(3),
foreign key(province) references  province_tab(pro_id)
);


insert into human values('210211199809089878','嘻嘻',null,17,'18111111111','210');

select * from human;
        
select * from province_tab;
insert into province_tab values('210','辽宁');





外键 foreign key(自身的列名) references 有关系的表名(表中的主键名)
foreign key(sid) references student(sid)


主键 primary key(列名)
primary key(scid)




SELECT count(id_mcard) from mcard
查询表中总数据



猜你喜欢

转载自blog.csdn.net/weixin_38079422/article/details/78983373