【MySQL】表的约束

1. 空属性与默认值

create table tt6(age tinyint not null,name varchar(5) not null,sex char(2) default '男');
创建一个名为tt6的字段,age字段为tinyint型,不可为空,name字段为varchar(5),不可为空,sex字段为char(2)类型,默认值为男。
当给字段设置为not null后,向字段中添加数据时不可为空。
在这里插入图片描述
给字段设置默认值之后,即使不向字段赋值,那么也会有默认值。
在这里插入图片描述

2. 字段注释

alter table tt6 add class varchar(5) comment '班级' first;
表tt6的最前面添加一个class字段,comment可以注释此字段的含义为’班级’。
在这里插入图片描述

3. 补零操作

alter table tt6 modify age int(5) zerofill;
给类型后面加zerofil可以使得数据类型自动补0。
在这里插入图片描述

4. 主键

用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。

  1. 创建表的时候在指定字段上设置主键
    在类型后面加primary key
    在这里插入图片描述
  2. 设置复合主键:
    primary key(id,name)
    将id,name同时都设为主键。
  3. 追加主键:
    alter table tt10 add primary key(id);
    在这里插入图片描述
  4. 删除主键:(删除全部主键)
    alter table tt9 drop primary key;
    在这里插入图片描述

5. 自增长

当对应的字段如果不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
在字段类型后面加上auto_increment
在这里插入图片描述
自增长的特点:

  • 任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
  • 自增长字段必须是整数
  • 一张表最多只能有一个自增长

查看自增长值的方法:
select last_insert_id();
show create table xxx

唯一键:

一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。
唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。
在字段后面加上uniqe关键字
在这里插入图片描述

外键:

用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
foreign key (字段名) references 主表(列)

  1. 先创建主表:
    在这里插入图片描述
  2. 创建从表:
    在这里插入图片描述
    首先向class中插入数据分别为编号为1的a班,编号为2的b班,之后在向student中插入编号为101的1班学生‘a’,编号为102的1班学生‘b’。这些都可以成功完成,当插入
    编号为103的3班学生学生‘c’时出错,因为不存在3班这个编号。
    此例子说明外键的数据必须在主键的数据中。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    说明外键可以为空的例子:
    在这里插入图片描述
    在这里插入图片描述

附:
MuSQL表操作.
MySQL库操作.
MySQL常见数据类型.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我顶得了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值