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

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

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/236572.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
酷盾叔
上一篇 2024-02-19 06:16
下一篇 2024-02-19 06:19

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入