本文主要是介绍MySQL -> DDL:约束(primary,not null,default,unique),标识列(auto_increment:自增长),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
主键:primary key-非空,唯一(不重复)
非空:not null-不能设置为null
默认:default
唯一:unique-可以为null,但是不能重复
外键:foreign key(字段) references 主表(字段);加外键的表是从表
# 约束就直接加在列的后面
create table 表 (id int primary key,# 主键:不能为空,不能重复name varchar(20) not null,# 非空age int(10) default 18,zuowei int(10) unique,# unique:唯一,可以为null,但是不能重复
)"写法二":
create table 表 (id int(11),name varchar(11),age int(11),zuowei int(10),studentid int,constraint id primary key(id),# constraint 定义名字 primary key(字段)constraint zuowei unique(zuowei),# constraint 定义名字 unique(字段)constraint 表_表student foreign key(studentid) references student(id) on delete cascade# 外键,foreign:外国的 reference:涉及# 使用外键时,选择其他表的字段的时候,那个字段必须是主键或者唯一建,否则是连不上的# on delete cascade 级联删除,表示把连接的所有字段都删除,多个表的记录都删除
)"constraint 定义名字:可以省略":
create table 表 (id int(11),name varchar(11),age int(11),zuowei int(11),student int,primary key(id),unique(zuowei),foreign key(studentid) references student(id)
)
组合主键:设置多个列为主键–唯一键也一样,可以组合
create table 表 (id int,name varchar(11),primary key(id,name)# 组合主键
)
#出错演示
insert into 表 values(1,'1') # 下面与这个比较insert into 表 values(1,'2')# 不出错,虽然id相同
insert into 表 values(2,'1')# 不出错,虽然name相同
insert into 表 values(1,'1')# 出错,id和name都相同,组合主键只有都相同且同时存在的时候才会报错
标识列:auto_increment:自增
# auto_increment自增标识列只能与key使用,varchar等类型也是不支持自增的,且一个表只能有一个标识列
# key是primary key ,unique ,foreign key() references()
create table 表 (id int primary key auto_increment # 标识列,自增
)# 使用set修改标识列的数值,从10开始
set auto_increment=10;
这篇关于MySQL -> DDL:约束(primary,not null,default,unique),标识列(auto_increment:自增长)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!