MySQL中,主键保证唯一性,外键实现表间关联,非空确保字段有值,唯一限制字段值不重复,默认约束提供未指定时的默认值。创建表时需定义这些约束。

详解MySQL中的主键、外键、非空、唯一、默认约束及其在创建表中的应用

MySQL作为一种广泛使用的关系型数据库管理系统,其强大的数据管理功能依赖于各种约束和索引,本文将详细介绍MySQL中的主键、外键、非空、唯一和默认约束,以及如何在创建表时应用这些约束。

mysql主键,外键,非空,唯一,默认约束及创建表的方法

主键约束

主键(Primary Key)是表中每一行数据的唯一标识,在MySQL中,主键具有以下特点:

1、唯一性:表中任意两行数据的主键值不能相同。

2、非空性:主键不能为空。

3、不可更改性:一旦创建,主键值不能被修改。

创建表时,可以使用以下方法定义主键:

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    ...
);

也可以在定义完所有列之后指定主键:

mysql主键,外键,非空,唯一,默认约束及创建表的方法

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
    PRIMARY KEY (column1)
);

外键约束

外键(Foreign Key)用于建立表与表之间的关联关系,外键约束要求外键列的值必须在关联表的主键列中存在,外键具有以下特点:

1、引用完整性:外键列的值必须在关联表的主键列中有对应的值。

2、可空性:外键可以为空,但若设置为非空,则必须引用关联表的主键值。

3、删除和更新行为:当删除或更新关联表的主键值时,外键约束会影响与之关联的外键值。

创建表时,可以使用以下方法定义外键:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
    FOREIGN KEY (column1) REFERENCES other_table(other_column)
);

非空约束

非空(NOT NULL)约束要求列的值不能为空,这意味着在插入或更新数据时,该列必须有具体的值,创建表时,可以在列定义后添加NOT NULL关键字来设置非空约束:

mysql主键,外键,非空,唯一,默认约束及创建表的方法

CREATE TABLE table_name (
    column1 datatype NOT NULL,
    column2 datatype,
    ...
);

唯一约束

唯一(UNIQUE)约束要求列的值在表中唯一,但允许有空值,创建表时,可以在列定义后添加UNIQUE关键字来设置唯一约束:

CREATE TABLE table_name (
    column1 datatype UNIQUE,
    column2 datatype,
    ...
);

也可以在定义完所有列之后指定唯一约束:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
    UNIQUE (column1)
);

默认约束

默认(DEFAULT)约束用于为列设置默认值,当插入数据时,如果没有为该列指定值,则会使用默认值,创建表时,可以在列定义后添加DEFAULT关键字来设置默认约束:

CREATE TABLE table_name (
    column1 datatype DEFAULT 'default_value',
    column2 datatype,
    ...
);

综合应用示例

以下是一个创建学生表和成绩表的示例,展示了主键、外键、非空、唯一和默认约束的应用:

-- 创建学生表
CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    gender ENUM('男', '女') DEFAULT '男'
);
-- 创建成绩表
CREATE TABLE scores (
    id INT PRIMARY KEY,
    student_id INT NOT NULL,
    subject VARCHAR(50) NOT NULL,
    score INT NOT NULL,
    UNIQUE (student_id, subject),
    FOREIGN KEY (student_id) REFERENCES students(id)
);

MySQL中的主键、外键、非空、唯一和默认约束是保证数据完整性和一致性的重要手段,在实际开发中,合理使用这些约束可以避免数据冗余、错误和异常,提高数据库性能。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。