数据库(六)约束

前言

本文为在霍格沃兹测试开发学社的学习经历分享,希望有志同道合的小伙伴可以一起交流技术,一起进步~

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;

主键约束和唯一约束的区别:

  1. 主键约束唯一且不为空

  2. 唯一约束唯一但可以为空

  3. 一个表中只能由一个主键约束,但可以有多个唯一约束

默认值约束

  • 用来指定某列的默认值

  • 语法:列名 字段类型 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('小王','男');

数据库学习笔记目录导航


推荐阅读文章链接:接口测试经典面试题:Session、cookie、token有什么区别?_霍格沃兹测试开发学社的博客-CSDN博客

posted @ 2022-10-23 11:22  北冥有鱼。  阅读(125)  评论(0)    收藏  举报