Mysql键表约束

键表约束

主键约束

能够***唯一确定***一张表中的一条记录

注:关于联合主键,只要联合主键“和”在一起不重复,且都不为NULL就不会出错。创建方式:

create table user2(
	id int,
	name varchar(20),
	password varchar(20),
	***primary key(id,name)***
);
建表后的修改约束,增加,删除,修改
alter table tablename add primary key(id); -- 添加主键
alter table tablename drop primary key;	-- 删除主键
alter table tablename modify id int primary key-- 通过modify修改字段,添加约束

自增约束:条目id自动+1

和主键搭配使用,用以自动管理主键的值

create table user3(
	id int primary key auto_increment,
    name varchar(20)
);
insert into user3(name) values('张三');
insert into user3(name) values('李四');
+----+------+
| id | name |
+----+------+
|  1 | 张三 |
|  2 | 李四 |
+----+------+

这里直接添加name的值而主键id会因为自增约束自己自增生成1

外键约束:设计主表与附表,附表中关联的字段来自主表

-- 班级
create table classes(
	id int primary key,
    name varchar(20)
);
-- 学生表
create table students(
	id int primary key,
    name varchar(20),
    class_id int,
    foreign key(class_id) reference classes(id)	
    -- 学生表中的claa_id字段要来自classes表中,否则会报错
    -- 主表中的记录被附表引用,那么这条几率不能被删除
);

唯一约束:约束修饰的字段的值不可重复,唯一约束可以为NULL

create table user(
	id int,
    name varchar(20)
);
alter table user add unique(name);	-- 添加name的唯一约束,表示name不可以重复
-- 也可以通过其他方式在创建的时候添加,在末尾使用unique(name), 或者直接
-- name varchar(20) unique, 来添加
-- 在末尾添加unique(id,name)类似联合主键的方式添加,类似的要合在一起一样才算重复
alter table user drop index name; -- 删除

非空约束:修饰的字段不能为空

create table user(
	id int,
    name varchar(20) not null
);

默认约束:给字段一个默认值

create table user(
	id int,
    name varchar(20),
    age int default 10		-- age没有传值的时候,使用默认值10
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值