sql约束
概念
-
对表中的数据进行进一步的限制
-
保证数据的正确性、有效性、完整性
-
违反约束的不正确数据无法插入到表中
-
常见约束
-
主键:PRIMARY KEY
-
非空:NOT NULL
-
唯一:UNIQUE
-
默认:DEFAULT
-
外键:FOREIGN KEY
-
主键约束
-
主键:一列(或一组列),其值能够唯一标识表中每一行
-
特点:不可重复,唯一,非空
-
语法:列名 字段类型 PRIMARY KEY
create table emp2(eid INT ,ename VARCHAR ( 20 ),sex CHAR ( 1 ));
-- 查看数据库结构
desc emp2;
-- 通过ddl语句添加主键约束
alter table emp2 add primary key(eid);
自动增长
-- 创建主键自增的表
CREATE TABLE emp3 (
eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 10 ),
sex CHAR ( 1 ));
desc emp3;
insert into emp3(ename,sex) values('张三','男');
insert into emp3(ename,sex) values('李四','男');
insert into emp3(ename,sex) values('王五','女');
insert into emp3(ename,sex) values('赵六','男');
-- 创建主键自增的表,并指定自增初始值
CREATE TABLE emp4 (
eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 10 ),
sex CHAR ( 1 )
)auto_increment=100;
desc emp4;
insert into emp4(ename,sex) values('张三','男');
insert into emp4(ename,sex) values('李四','男');
insert into emp4(ename,sex) values('王五','女');
insert into emp4(ename,sex) values('赵六','男');
注意:
-
delete删除表数据的话,对自增没有影响,再添加数据还会按照原来的编号继续增加
-
truncate table 删除表的话,他会重新进行编号
删除主键约束
-- 删除主键约束
alter table emp drop PRIMARY KEY;
选择主键原则:
-
针对业务设计主键,一般建议每张表都设计一个主键
-
主键可以没有业务意义,但是要保证不重复
-
主键不允许修改也不允许更新
唯一约束
-
表中某一列的值不能重复
-
对null不做唯一的判断
-
语法:列名 字段类型 unique
CREATE TABLE emp (
eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 20 ) UNIQUE,
sex CHAR ( 1 ));
desc emp;
主键约束和唯一约束的区别:
-
主键约束唯一且不为空
-
唯一约束唯一但可以为空
-
一个表中只能由一个主键约束,但可以有多个唯一约束
默认值约束
-
用来指定某列的默认值
-
语法:列名 字段类型 default 默认值
CREATE TABLE emp (
eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 20 ) ,
sex CHAR ( 1 ) default '女');
desc emp;
insert into emp(ename,sex) VALUES('小张',DEFAULT);
insert into emp(ename) VALUES('小');
-- 不使用默认值
insert into emp(ename,sex) VALUES('小王','男');
标签:ename,insert,数据库,sex,into,约束,主键
From: https://www.cnblogs.com/joker108/p/16818202.html