千家信息网

MySQL数据库怎么给表设置约束

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天小编给大家分享一下MySQL数据库怎么给表设置约束的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一
千家信息网最后更新 2026年11月02日MySQL数据库怎么给表设置约束

今天小编给大家分享一下MySQL数据库怎么给表设置约束的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    一、PK(主键约束)

    1、什么是主键?

    • 在了解主键之前,先了解一下什么是关键字

    • 关键字:在表中具有唯一性的字段,比如一个人的身份证号,学号。一个表中可以有多个关键字。

    • 主键也叫主关键字,就是由一个或多个关键字组成的,并且可以通过主键获得整个表的信息。比如订单表,通过订单编号可以获取到订单中的姓名,商品,价格等信息。

    注意:关键字不一定是主键,主键一定是关键字

    特点:主键不能为空,具有唯一性不能重复。一个表要么只有一个主键,要么没有主键,不可以有多个主键。

    2、怎么设置主键?

    方法一:在创建表时设置主键

    -- 建立User表CREATE TABLE User(User_id int NOT NULL,User_name VARCHAR(20),User_pwd VARCHAR(18),-- 在这里设置id为主键PRIMARY KEY(User_id))
    CREATE TABLE Users(-- 也可以在字段中直接设置主键User_id int NOT NULL PRIMARY KEY,User_name VARCHAR(20),User_pwd VARCHAR(18))

    以上两种方式都可以创建主键,效果一样。

    方法二:创建表时没有设置主键,后续在表中设置主键

    • 首先建一个没有设置主键的表

    CREATE TABLE User(User_id int NOT NULL,User_name VARCHAR(20),User_pwd VARCHAR(18))
    • 然后再设置主键

    原理是向创建表时的代码中添加 PRIMARY KEY(User_id)
    跟方法一中的第一个原理一样

    ALTER TABLE user ADD PRIMARY KEY(User_id)

    原理是向User_id 字段中添加 PRIMARY KEY
    跟方法一中的第二个原理一样

    ALTER TABLE users MODIFY User_id INT PRIMARY KEY;

    二、FK(外键约束)

    1、什么是外键

    • 外键又叫外关键字,代表两个表直接的联系。一张表的外键一定是另一张表的主键,以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。

    • 比如订单表中包含了商品ID,用户ID两个外键。其中商品ID是商品信息表的主键,用户ID是用户表的主键。

    注意:一个表中的外键可以有多个,也可以没有。

    2、怎么设置外键

    方法一:创建表时设置外键约束

    在前面设置主键的基础上来举例,前面创建了一个用户表,那么现在创建一个订单表。

    CREATE TABLE dingdan(DDid INT PRIMARY KEY NOT NULL,User_id INT NOT null,DDname VARCHAR(20) NOT NULL,-- 设置约束关系,dingdan表中的User_id 与 user表中的User_id表示的是同一个数据constraint fk FOREIGN KEY(User_id) REFERENCES user(User_id))

    方法二:创建表时没有设置主键,后续在表中设置主键

    alter table student add constraint stfk foreign key(stid) references teacher(tid)

    注意:建立了主外键关系后,主表中的数据不能随意删除。比如订单中有一条数据包含了某个用户,那么用户表中就不能把该用户的信息删除,否则会报错。

    三、unique(唯一约束)

    1、什么是唯一约束?

    某个字段如果设置了唯一约束,那么该字段要么不写,要写就不能重复。

    2、如何设置唯一约束

    还是创建一个用户表,这次表中多了邮箱字段。设置邮箱不能重复

    CREATE TABLE User(User_id int NOT NULL,User_name VARCHAR(20),User_pwd VARCHAR(18),User_Email VARCHAR(40) UNIQUE)

    四、not null(非空)

    意思就是这个字段不能为空

    接着上面唯一约束来写,这里规定邮箱不仅不能重复而且不能为空

    CREATE TABLE User(User_id int NOT NULL,User_name VARCHAR(20),User_pwd VARCHAR(18),User_Email VARCHAR(40) UNIQUE not null)

    五、default(默认值)

    意思就是这个字段如果你不写,那么会默认给你一个值继续上面的User表来写,在这里添加一个性别字段,如果你不写性别那么默认为男

    CREATE TABLE User(User_id int NOT NULL,User_name VARCHAR(20),User_pwd VARCHAR(18),User_gender enum('男','女') default '男')

    六、auto_increment(自增)

    自增就是自动递增,也就是说如果你在这个字段没有填写数据,系统会自动根据上一条数据加1

    一般用在ID,编号

    将用户表中的ID设为自增

    CREATE TABLE User(User_id int auto_increment,User_name VARCHAR(20),User_pwd VARCHAR(18),User_gender enum('男','女') default '男')

    注意:第一个数据如果不填,默认会给一个值。所以即便ID是主键,也可以不填数据

    以上就是"MySQL数据库怎么给表设置约束"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

    字段 数据 关键 用户 关键字 方法 订单 用户表 信息 原理 商品 多个 就是 知识 篇文章 要么 邮箱 数据库 两个 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 互联网科技公司经营范围 互联网电商科技 互联网金融 科技金融 中国 科技 互联网 浩特互联网科技 美国互联网黑科技 中盈科技互联网信息有限公司 央行互联网金融科技公司 成都铂石互联网科技做什么的 南平创想时代互联网科技有限公司 本届互联网博览会上的黑科技 科技赋能视角下互联网保险发展 山东子淼互联网科技有限公司 浙南科技城互联网大厦招聘 易企秀互联网科技是做什么的 科技互联网行业投资研究 上海旺乐尼互联网科技有限公司 互联网大会出现的黑科技 广州全民伙伴互联网科技有限公司 科技制造互联网公司 北京互联网科技有限公司 互联网科技公司怎么样 亿人帮互联网科技 广州优美互联网科技 互联网对科技的发展 怎样加入科技互联网 互联网科技手机排行榜 科技互联网专业工作会议发言稿 知域互联网科技有限公司官网
    0