MySQL(建表约束)

主键约束

它能够唯一确定一条表中的某条记录,给某条字段添加主键约束,使得它不重复也不为空,比如学号之类的

--给id添加主键
create table user(
	id int primary key,
	name varchar(20)
);
--联合主键,是指两个字段不同时重复,例给id和name添加主键
create table user2(
	id int,
	name varchar(20),
	password varchar(20),
	primary key(id,name)
);
--建表后再添加主键约束
alter table user2 add primary key(id);
--删除主键
alter table user2 drop primary key;

自增约束

给id添加主键约束和自增约束,可以实现插入新数据时不输入id而自动增加id的值

create table user3(
	id int primary key auto_increment,
	name varchar(20)
);
insert into user3(name) values('zhangsan');
insert into user3 values(2,'lisi');

非空约束

修饰的字段不能为NULL

create table user4(
	id int primary key auto_increment not null,
	name varchar(20)
);

默认约束

当插入字段值的时候,如果没有传值,就会使用默认值

create table user4(
	id int ,
	name varchar(20),
	age int default 10
);

外键约束

涉及到两个表,一个主表一个副表
1.主表中没有的数据值,副表是不可以引用的,比如主表班级数据中没有5班,副表学生表班级id绑定了主表的班级数据,则不能在副表中插入到5班
2.主表被引用的外键不允许被删除,比如说删除了主表班级表中的4班,则副表中的4班同学就不知道归属于哪了

--创建班级表,为主表
create table classes(
	id int primary key,
	name varchar(20)
);
--创建学生表,为副表
create table student(
	id int primary key,
	name varchar(20),
	class_id int,
	foreign key(class_id) references classes(id)
);
insert into classes values(1,'一班');
insert into classes values(2,'二班');
insert into classes values(3,'三班');
insert into classes values(4,'四班');

insert into student values(1001,'张三',1);
insert into student values(1002,'张三',2);
insert into student values(1003,'张三',3);
insert into student values(1004,'张三',4);
--报错
insert into student values(1005,'李四',5);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值