sql数据库主键、⾃增约束、唯⼀约束、⾮空约束、默认约束、外键约束⽬录
primary key主建
唯⼀标识表中的每⼀条数据
不能重复,不能为空
create table if not exists stu(
id int primary key,<------#主建
name varchar(20)
);
auto_increment⾃增约束
⾃增长字段的值从1开始,每次增加1;
数据不重复,⽣成唯⼀的id
⾃增长字段必须是主键
create table if not exists stu(
id int auto_increment primary key,<------#主建
name varchar(20)
);
⾃增约束可以和逐渐结合在⼀起使⽤
如果说我们创建表的时候,忘记创建主键约束
create table user4(
id int,
name verchar(20)
);
alter table user4 add primary key(id);
如何删除主键
alter table user4 drop primary key;
修改主键约束
使⽤modify修改字段,添加约束
alter table user4 modify id int primary key;
唯⼀约束
约束修饰字段的值不可以重复
create table user5(
id int,
name varchar(20)
)
;
alter table user5 add unique(name);
create table user6(
id int,
name varchar(20)unique
);
create table user6(
id int,
name varchar(20),
unique(name)
);
create table user6(
id int,
name varchar(20),
unique(id,name)#id和name都不可以重复
);
删除唯⼀约束
alter table  user7 drop index name;
#不加index会直接把name这个字段删除没
modify添加
alter table user7 modify name varchar(20)unique;
注意
1. 建表的时候就添加约束
2. 可以使⽤alter 。。。。。add。。。
创建唯一约束sql语句
3. alter。。。modify
4. 删除alter。。。。 drop
not null⾮空约束
修饰的字段不能为空
create table user9(
id int,
name varchar(20)not null
);
default默认约束
当我们插⼊字段值的时候,如果没有传值,就会使⽤默认值
create table user10(
id int,
name varchar(20),
age int default10
)
foreigin_key 外键约束
涉及到两个表:⽗表、⼦表
主表、副标
#班级表
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) );
insert into classes value(1,'⼀班')
insert into classes value(2,'⼆班')
insert into classes value(3,'三班')
insert into classes value(4,'四班')
insert into students values(1001,'张三',1)
insert into students values(1002,'张三',2)
insert into students values(1003,'张三',3)
insert into students values(1004,'张三',4)
insert into students values(1005,'张三',5)
主表中classes中没有的数据值,在副表中,是不可以使⽤的。主表中的记录被副表引⽤,是不可以被删除的。
参考

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。