约束和表之间的关联关系介绍

一:约束    

             1:约束是什么:指的是除了数据类型以外额外添加的约束。                    

             2:为什么要使用约束:为了保证数据的合法性,完整性。

             3:分类:

                          ①:not null   非空约束:数据不能为空                                

                                            例:create table t1(id int,name char(10) not null);

                                                   insert into t1 values(1,null);

 

                          ②:default   默认值约束:可以指定字段的默认值

                                            例:create table t1(id int,name char(10) default ''xxx'');

                                                   insert into t1(id) values(1);

 

                          ③:unique   唯一性约束:该字段的值不能重复,如:手机号码,身份证

                                            例:create table t1(idcard char(18) unique,name char(10));

                                                   insert into t1 value(''111'',''xxx'');

                                                   insert into t1 value(''112'',''yyy'');

                                                   insert into t1 value(''112'',''yyy'');

 

                                               unique其实是一种索引,索引作为一种数据结构,主要用于提高查询效率。

                                       可以为空,并且一张表中可以有多个唯一约束。

 

                          ④:primary key   主键约束:用于唯一标识表中一条记录,并且不能为空。也就是说从约

                                              束的角度来看,主键约束和非空加唯一约束没有区别。

                                       语法案例:create table stu (stuid int primary key,name char(10));

                                                      #create table stu (stuid int unique not null,name char(10));

                                                         insert into stu value(1,''xxx'');

                                                         insert into stu value(1,''yyy'');

 

                                  有主键和没有主键的区别:

                                             1:无法区分两个相同记录

                                             2:有主键则意味着有索引,效率更高

                                             3:可以建立关联关系

 

                          ⑤:auto_increment   自动增长约束:其作用是通常搭配主键字段使用,可以自动为数据分配主键。

                                                             如何分配:添加一条就自动加1,计数从1开始。

                                     语法案例:create table t1(id int primary key auto_increment,name char(10));

                                                       insert into t1(name) values(''xxx''),(''yyy''),(''zzz'');

                                                       修改自动增长的起始位置:

                                                       alter table t1 auto_increment = 7;

 

                          ⑥:foreign key   外键约束:专门用于为表和表之间建立物理关联/联系。

                                                      添加外键约束时,被关联的表需要先被创建,主表先插入,从表后插入。

                                                      外键加上以后,主表中的数据在删除和更新时,都会受到限制,解决方案就是

                               语法案例:

                          先创建部门表
                create table dept(id int primary key auto_increment,name char(10),manager char(10));
                          再创建员工表
                create table emp(id int primary key auto_increment,name char(10),dept_id int,foreign key(dept_id) references dept(id));

                                        为外键添加级联操作。而级联操作指的就是同步更新和删除。

                                                     语法:在创建外键时,后面添加  on update cascade   同步更新

                                                            :在创建外键时,后面添加  on delete cascade    同步删除

 

二:表之间的关联关系

         两个表之间能产生的关系有哪些:        

                      1.多对一
                      2.一对一
                      3.多对多

转载于:https://www.cnblogs.com/duanxiangyang/p/9641487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值