MySQL表约束(2)

常见面试题:

主键约束VS 唯一约束

1.一个表中主键约束只能有一个,而唯一约束可以有多个;
2.唯一约束可以插入一个或多个NULL,而主键约束不允许插入NULL。

4.外键约束(foreing key)

外键用于关联其他表的主键或唯一键。
语法:

foreign key (字段名) references 主表()

主表(主键)和次表(外键,关联到主表的主键上)
创建一个class表设置主键:
在这里插入图片描述
创建一个student表并设置外键和class关联:
在这里插入图片描述
测试外键:
创建两个班级12班和18班
在这里插入图片描述
在这里插入图片描述
如图,此时外键生效了,进行数据插入的时候,会先去主表查询外键的有效性。

外键可以插入null(表示该学生暂未分班)
外键可以插入多个null,但是如果指定了数据(指定了具体的值),那么这个值一定得是有效才行。(有效指的是这个值已经在主表中存在了)
在这里插入图片描述

5.检查约束(check)

检查约束是保证列中的值符合指定的条件,比如性别只能插入”男“或者”女“。
语法:

check (约束条件)

例:性别只能是男或女;
在这里插入图片描述

6.自增约束(auto_increment)

用在建表时
语法:
直接在字段后面添加auto_increment即可

在这里插入图片描述
在添加数据时,没有输入id,表也会显示
在这里插入图片描述
当给自增列插入null时,他的执行逻辑和不设置是一样的,也就是自增列回自动插入此值。
在这里插入图片描述

自增列是可以手动指定值的

在这里插入图片描述

注意事项:

1.一个表中只能有一个字段使用auto_increment约束,且该字段必须有唯一索引,以免序号重复(即为主键或主键的一部分)
在这里插入图片描述
auto_increment必须配合key使用(primary key,foreign key,unique)
2.auto_increment约束字段只能是整数类型(tinyint、smallint、int、bigint等)。
在这里插入图片描述
3.一个表中只能有一个auto_increment自增约束(和主键的数量要求是一样的,主键也是一样的,一张表中最多有一个主键,但一个主键可以有多个字段组成)

在这里插入图片描述

手动指定自增值:(新增表的时候使用)

语法:

(字段)auto_increment=n;

在这里插入图片描述

手动修改自增列值:

alter table 表名 auto_increment=n;

注意事项:
auto_increment修改的自增值小于自增列的最大值max(自增列),那么设置将会无效

delete和truncate区别(6)

前五个区别见MySQL表的增删改查(3)
delete删除不会重置自增值
在这里插入图片描述
truncate会重置自增列:
在这里插入图片描述

auto_increment不能只和not null一块使用

在这里插入图片描述

6.默认约束(DEFAULT)

语法:
字符 字段类型 约束条件
在这里插入图片描述
时间类型:
时间加英文’'包含时间
在这里插入图片描述
如果没有时分秒,则为默认值00:00:00;
但是最好输入时间
在这里插入图片描述
查询时间:(用>、<)
在这里插入图片描述

7.insert…select

在这里插入图片描述
insert into 插入时,是根据列的顺序匹配查询结果的,不关注列名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值