1、约束
什么是约束
- 对表中的数据进行限定,保证数据的正确性、有效性、完整性
- 约束通常是在创建表的时候进行约束
1.1、主键约束
主键的作用
- 用来区分表中的数据
主键的特点
- 主键必须是唯一不重复的值
- 主键不能包含 null 值
添加主键
- 建表时添加主键
#方法1
create table 表名(
字段名 字段类型 PRIMARY KEY,
字段名 字段类型
);
#方法2
create table 表名(
列名 数据类型,
[CONSTRAINT] [约束名称] PRIMARY KEY(列名)
);
/* =========== 主键约束 =========== */
-- 创建表学生表st1, 包含字段(id, name, age)将id做为主键
-- 创建表时添加主键
CREATE TABLE st1 (
id INT PRIMARY KEY,
NAME VARCHAR(10),
age INT
);
- 建表后单独添加主键
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
-- 在已有表中添加主键约束(了解)
ALTER TABLE st1 ADD PRIMARY KEY(id);
删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
-- 删除主键约束(了解)
ALTER TABLE st1 DROP PRIMARY KEY;
注意:当你设置主键后,插入相同主键会报错
[2023-10-28 10:02:45] [23000][1062] Duplicate entry '1' for key 'st1.PRIMARY'
1.2、主键自增
为什么自增
主键如果让我们自己添加很可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值
字段名 字段类型PRIMARY KEY AUTO_INCREMENT
#注意 AUTO_INCREMENT 的字段类型必须是数值类型
/* =========== 主键自动增长 =========== */
-- 创建学生表st2, 包含字段(id, name, age)将id做为主键并自动增长
CREATE TABLE st2 (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10),
age INT
);
-- 修改自动增长的开始值
ALTER TABLE st2 AUTO_INCREMENT = 1000;
1.3、唯一约束
唯一约束的作用
让字段的值唯一,不能重复
/* =========== 唯一约束 =========== */
CREATE TABLE 表名(
字段名 字段类型 UNIQUE,
字段名 字段类型
);
CREATE TABLE emp (
id INT PRIMARY KEY AUTO_INCREMENT, -- 员工id,主键且自增长
ename VARCHAR(50) NOT NULL UNIQUE , -- 员工姓名,非空并且唯一
);
1.4、非空约束
非空约束的作用
让字段的值不能为 null
/* =========== 非空约束 =========== */
CREATE TABLE 表名(
字段名 字段类型 NOT NULL,
字段名 字段类型
);
CREATE TABLE emp (
id INT PRIMARY KEY AUTO_INCREMENT, -- 员工id,主键且自增长
ename VARCHAR(50) NOT NULL UNIQUE , -- 员工姓名,非空并且唯一
joindate DATE NOT NULL , -- 入职日期,非空
salary DOUBLE(7,2) NOT NULL , -- 工资,非空
);
1.5、默认值约束
默认值约束的作用
如果这个字段不设置值,就使用默认值
/* =========== 默认值约束 =========== */
CREATE TABLE 表名(
字段名 字段类型 DEFAULT值,
字段名 字段类型
);
CREATE TABLE emp (
id INT PRIMARY KEY AUTO_INCREMENT, -- 员工id,主键且自增长
ename VARCHAR(50) NOT NULL UNIQUE , -- 员工姓名,非空并且唯一
bonus DOUBLE(7,2) DEFAULT 1000-- 奖金,如果没有奖金默认为1000
);
1.6、外键约束
外键约束介绍
外键约束是关系数据库中的一种约束,用于确保一个表中的数据在另一个相关表中存在对应的数据。它定义了两个表之间的关系,其中一个表中的外键引用另一个表中的主键。
通过外键约束,可以实现数据的完整性和一致性。当在一个表中定义了外键约束后,插入、更新、删除操作都会受到限制,只有符合约束的操作才会被允许执行。如果违反了外键约束,数据库会拒绝执行该操作,并返回错误信息。
外键约束的使用
CTEATE TABLE 表名(
字段名 字段类型,
字段名 字段类型,
[CONSTRAINT 外键约束名] FOREIGN KEY(外键字段名) REFERENCES 主表(主键字段名)
);
-- 创建 employee 并添加外键约束
CREATE TABLE employee (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
dep_id INT,
CONSTRAINT fk_dep_id Foreign Key(dep_id) REFERENCES department(id)
);
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END