c语言编程笔录

首页 >   > 笔记大全

笔记大全

MySQL六种约束是什么

更新时间:2023-09-10

MySQL数据库约束的介绍

约束是在表上施加的规则,告诉MySQL如何处理表中的数据在表中的添加、删除、更新或查询。MySQL支持六种约束,包括主键、唯一、非空、默认、外键和检查。

MySQL主键约束

主键约束是一个列或一组列,可唯一地标识表中的每一行数据。主键可以包含数字、字符和符号,不能有重复值。主键约束在数据库设计中起着重要的作用,因为它们可以确保每个行数据都能唯一地被识别。以下是一个简单的主键约束示例:

CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  first_name VARCHAR(30) NOT NULL,
  last_name VARCHAR(30) NOT NULL,
  email VARCHAR(50)
);

MySQL唯一约束

唯一约束是一个列或一组列,确保在表中不存在重复值。唯一约束可以包含数字、字符和符号。唯一约束与主键约束类似,区别在于唯一约束允许NULL值。以下是一个简单的唯一约束示例:

CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(50) UNIQUE,
  first_name VARCHAR(30) NOT NULL,
  last_name VARCHAR(30) NOT NULL
);

MySQL非空约束

非空约束在表中强制列不允许空值。如果您试图将NULL值插入非空列,则会触发错误。以下是一个简单的非空约束示例:

CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(50) NOT NULL,
  first_name VARCHAR(30) NOT NULL,
  last_name VARCHAR(30) NOT NULL
);

MySQL默认约束

默认约束用于指定如果未指定值,则使用默认值。默认约束可以被用于任何数据类型,包括数字、日期和字符。以下是一个简单的默认约束示例:

CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(50) NOT NULL DEFAULT 'john.doe@example.com',
  first_name VARCHAR(30) NOT NULL,
  last_name VARCHAR(30) NOT NULL
);

MySQL外键约束

外键约束用于链接两个表,并将一个表中的列与另一个表中的主键相关联。外键约束确保了数据完整性,因为您不能删除已链接到另一个表的行。以下是一个简单的外键约束示例:

CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  department_id INT(6),
  first_name VARCHAR(30) NOT NULL,
  last_name VARCHAR(30) NOT NULL
);

CREATE TABLE departments (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  manager VARCHAR(30)
);

ALTER TABLE employees ADD CONSTRAINT fk_department
  FOREIGN KEY (department_id) REFERENCES departments(id);

MySQL检查约束

检查约束用于确保列中的值符合指定条件。如果一个值不满足指定条件,则MySQL拒绝添加、更新或删除表中的行。以下是一个简单的检查约束示例:

CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  salary DECIMAL(10, 2) NOT NULL,
  age INT NOT NULL CHECK (age >= 18),
  first_name VARCHAR(30) NOT NULL,
  last_name VARCHAR(30) NOT NULL
);

总结

MySQL提供了六种约束,它们是主键、唯一、非空、默认、外键和检查。这些约束可以确保数据的完整性和一致性,并提供了一些增强数据表的功能。主键和唯一约束由于其独特性而经常被用来链接表,而非空约束确保每个行数据的完整性。默认约束是确保数据的一致性和减少输入错误的有效方式。外键约束链接两个表,并保证数据一致性,而检查约束用于确保数据符合规定约束。程序员应该根据应用场景选择适当的约束,以确保数据表的正确性和稳定性。