MySQL---约束

MySQL之约束



约束—Constraint

约束实际上就是表中数据的限制条件

作用

表在设计的时候加入约束的目的就是为了保证表中记录完整性和有效性

分类

主键约束 primary key–pk

唯一约束+非空约束
一个列或者多列,唯一标识表中的每一行,提高查询效率

添加单列主键

两种方式 一
Create table 表名(
 <字段名><数据类型> primary key
   ·······
)
方式二
Create table 表名(
   ·······
 [constraint]<约束名>] primary key[字段名]
)

添加联合主键

注意:当主键由多个字段组成时,不能直接在字段名后声明主键约束 一张表只能有一个主键,联合主键也是一个主键

Create table 表名(
·····
Primary key (字段1,字段2···,字段n)
)

通过修改表结构添加主键
Create table 表名(
·····
);
Alter table <表名>add primary key(字段列表)

删除

Alter table <数据表名> drop primary key

自增长约束 auto_increment

定义自增长后,这个主键就不在需要输入数据了,而由数据库系统根据定义自动赋值

字段名 数据类型 auto_increment

Delete和truncate在删除后自增长的变化

Delete数据之后自动增长从断点开始
truncate数据之后自动增长从默认起始值开始

非空约束 not null

字段的值不能为空

1.<字段名><数据类型> not null
2.alter table <表名> modify 字段 类型 not null

删除

alter table <表名> modify 字段 

唯一约束 unique

是指所有记录中字段的值不能重复出现

1.<字段名><数据类型>unique
2.alter table 表名 add constraint 约束名 unique( 列)

删除

Alter table <表名>drop index(唯一约束)

默认约束 default

约束用来指定某列的默认值

1.<字段名><数据类型>default<默认值>
2.alter table 表名 modify 列名 类型 default 默认值

删除

Alter table<表名>change column<字段名><类型>default null

零填充约束 zerofill

插入数据时,该字段的值长度定义小于定义的长度时,会在该值的前面补上相应的0
zerofill默认为int(10)
当时用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原来值的2倍
例如 有符号-128~+127 无符号0-256

<字段名><数据类型>zerofill

删除

Alter table<表名>modify 字段 类型

外键约束 foreign key

经常与主键约束一起使用,对于两个具有关联关系的表而言,相关字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)

create  table 表名(
     字段名  字段类型,
     外键名称         --命名规则:主表名称_从表名称_fk
     foreign  key(字段名)      -- 作用在这个字段id上
     references   主表名称(id)     --关联主表的主键id
)

删除

Alter table<表名>drop foreign key<外键约束名>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值