数据库表的约束
-
概述
对表中的数据进行限定,保证数据的有效性、完整性和正确性。一个表一旦添加了约束,那么不正确的数据将无法添加进来,所以一般约束在创建表设定字段的时候添加上
-
主键约束
-
主键:一般是用来唯一标识数据库表中的某一条记录,不能为空
-
通常情况下,一般会给表添加一个id字段,用作唯一标识,设置为主键,主键一般是提供给数据库操作使用的(查询,修改,删除等等),主键不能重复,也不能为空。
比如: 一个人的身份证号、一个人手机号,一个学生的学号,一个员工工号
-
语法: 使用关键字 primary key
-
操作:
-- 查询 SELECT * FROM user; -- 非法数据插入 唯一 不重复 INSERT INTO user values(7,'0008','123123','小花','12312312313','女',19); -- 非法数据插入 null值插入 非空 INSERT INTO user values(null,'0008','123123','小花','12312312313','女',19); -- 删除主键 sql语句 alter table user drop PRIMARY key; -- 添加主键 alter table user add PRIMARY KEY(id);
-
主键自增
如果希望在添加表记录时,不设定表中主键值,系统会自动给主键添加自增值
- 语法: auto_increment 表示自动自增
-- 非法数据插入 null值插入 INSERT INTO user values(null,'0010','123123','小周','12312312313','男',25);
-
修改自增的起始值为100
alter table user auto_increment = 起始值;
-
-
唯一约束
-
概念:字段值唯一,不允许重复
-
关键字: unique
-
语法: 字段名 字段数据类型 unique
-
操作:
-- 插入数据 insert into role values(null,'CEO'); insert into role values(null,'manager'); insert into role values(null,'CTO'); -- 查询角色表 SELECT * from role; insert into role values(null,null);
备注:如果插入是null,表明是没有数据,不存在数据重复问题,可以重复插入。
-
-
非空约束
-
概念:记录中的某个字段不能为null
-
语法: 字段名 字段数据类型 not null
-- 创建一张部门表 create table department ( id int PRIMARY KEY auto_increment, -- id 主键自增 departmentname VARCHAR(10) not null -- 部门不能为空 ) insert into department values(null,'总裁办'); insert into department values(null,'财务部'); insert into department values(null,'人事部'); insert into department values(null,'研发部'); insert into department values(null,'销售部'); -- 查询该表数据 SELECT * from department; insert into department values(null,null);
-
默认值:
-
概念:当没有给字段赋值,系统会赋上一个指定的默认值
-
语法: 字段名 字段数据类型 default 默认值
-
操作:
-- 创建一张表 employee 员工表 create table employee ( id int PRIMARY key auto_increment, username VARCHAR(10) not null, gender VARCHAR(1) DEFAULT '男', age int ) insert into employee(id,username,age) values(null,'小孙',20); -- 查询员工表 SELECT * from employee; insert into employee(id,username,gender,age) values(null,'小丽','女',20);
备注:
如果给表中的 某个字段既添加了非空约束又添加了唯一约束,那么该字段是不是主键呢?
一般情况下,一张表中只能有一个主键。
-
-
-
-
外键约束