沃梦达 / IT编程 / 数据库 / 正文

MySQL六种约束的示例详解(全网最全)

第一步,先介绍约束的概念以及常见的六种约束:

第一步,先介绍约束的概念以及常见的六种约束:

在MySQL中,约束是对表中数据的限制,可以在创建表的过程中定义或者在表创建完成之后添加。六种常见数据库约束包括:

  1. PRIMARY KEY (主键)
  2. FOREIGN KEY(外键)
  3. UNIQUE(唯一)
  4. NOT NULL(非空)
  5. CHECK(检查)
  6. DEFAULT(默认)

主键的作用是唯一标识每张表内每一行数据,一个表只能有一个主键。外键是用来建立表之间关联的,从一张表中创建一个对应另一张表中主键的列即可。唯一约束是保证表中的某个列的值是唯一的,不与其他行重复。非空约束是保证表中某个列不为空。检查约束是保证表中某个列的值符合一定的条件。默认约束是当表中某个列的值未指定时,默认给这一列赋值。

第二步,分别对六种约束进行一一讲解:

主键约束的示例:可以创建一个students表,然后给这个表创建一个id列,然后使用PRIMARY KEY关键词将这个列设置为主键。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  PRIMARY KEY (id)
);

外键约束的示例:可以创建一个students和一个grades表来演示外键的示例。students表中的id列作为主键,grades表中有一个student_id列来与students表中的id列建立关联关系。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE grades (
  id INT NOT NULL AUTO_INCREMENT,
  class varchar(255) NOT NULL,
  grade INT DEFAULT NULL,
  student_id INT NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (student_id) REFERENCES students(id)
);

唯一约束的示例:可以为students表添加一个unique索引,保证name列的值唯一。示例代码:

CREATE UNIQUE INDEX idx_unique_name ON students (name);

非空约束的示例:在students表中,可以让name列不允许为空。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  PRIMARY KEY (id)
);

检查约束的示例:在students表中,可以设置age列的值只允许为正整数。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  CHECK (age > 0),
  PRIMARY KEY (id)
);

默认约束的示例:在students表中,如果不指定age列的值,则将age列的值设置为20。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT 20,
  PRIMARY KEY (id)
);

第三步,总结:

MySQL的六种约束各有不同的作用和应用场景,这些约束可以保证表中的数据存储的合法性和有效性,也可以使得表与表之间的关系更加紧密。实际开发中,我们根据需求选择合适的约束,并将其应用在相应的列上,以达到更好的数据约束和存储效果。

本文标题为:MySQL六种约束的示例详解(全网最全)