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 intovalues(1,'1') # 下面与这个比较

insert intovalues(1,'2')# 不出错,虽然id相同
insert intovalues(2,'1')# 不出错,虽然name相同
insert intovalues(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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值