当前位置:   article > 正文

MySQL表约束(2)_一个表有多少个自增和主键

一个表有多少个自增和主键

常见面试题:

主键约束VS 唯一约束

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

4.外键约束(foreing key)

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

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

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

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

5.检查约束(check)

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

check (约束条件)
  • 1

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

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;
  • 1

在这里插入图片描述

手动修改自增列值:

alter table 表名 auto_increment=n;
  • 1

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

delete和truncate区别(6)

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

auto_increment不能只和not null一块使用

在这里插入图片描述

6.默认约束(DEFAULT)

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

7.insert…select

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/463273
推荐阅读
相关标签
  

闽ICP备14008679号