mysql数据库约束有哪些

1、约束

什么是约束

  • 对表中的数据进行限定,保证数据的正确性、有效性、完整性
  • 约束通常是在创建表的时候进行约束
图片[1]-mysql数据库约束有哪些-不念博客

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