返回顶部
首页 > 资讯 > 数据库 >MySQL数据库如何给表设置约束详解
  • 270
分享到

MySQL数据库如何给表设置约束详解

2024-04-02 19:04:59 270人浏览 安东尼
摘要

目录一、PK(主键约束)1、什么是主键?2、怎么设置主键?二、FK(外键约束)1、什么是外键2、怎么设置外键三、unique(唯一约束)1、什么是唯一约束?2、如何设置唯一约束四、n

一、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数据库如何给表设置约束详解的文章就介绍到这了,更多相关mysql 设置约束内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库如何给表设置约束详解

本文链接: https://lsjlt.com/news/141942.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL数据库如何给表设置约束详解
    目录一、PK(主键约束)1、什么是主键?2、怎么设置主键?二、FK(外键约束)1、什么是外键2、怎么设置外键三、unique(唯一约束)1、什么是唯一约束?2、如何设置唯一约束四、n...
    99+
    2024-04-02
  • MySQL数据库怎么给表设置约束
    今天小编给大家分享一下MySQL数据库怎么给表设置约束的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、PK(主键约束)1、...
    99+
    2023-06-29
  • MySQL数据库表中的约束详解
    目录mysql表中的约束(constraint)约束分类非空约束唯一性约束复合约束主键约束自增列-AUTO_INCREMENT外键约束FOREIGN KEY约束CHECK约束DEFAULT约束MySQL表中的约束(con...
    99+
    2023-03-02
    MySQL表中的约束 MySQL数据库约束 MySQL约束的使用
  • MySQL数据库约束详解
    目录基本介绍1.primary key(主键)细节说明2.not null(非空)3.unique(唯一)unique细节4.foreign key(外键)foreign key(外键)语法外键细节说明5.checkch...
    99+
    2024-04-02
  • MySQL数据库约束,表的设计
    ❤️Author: 老九 ☕️个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏:MySQL通关系列 文章目录 数据库约束no...
    99+
    2023-09-17
    数据库 mysql database
  • MySQL数据库表约束讲解
    目录mysql数据库表约束一、主键约束二、外键约束三、非空约束四、唯一约束五、默认约束六、自增约束数据库建表的约束条件常用约束条件及简单介绍MySQL数据库表约束 为了防止往数据表中插入错误的数据,在MySQL中,定义了...
    99+
    2022-06-20
    MySQL数据库 数据库表约束 MySQL表约束
  • MySQL总结(七)数据库表的约束-详解
    数据库表的约束 1. 数据库约束的概述 1.1 约束的作用: 对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。 1.2 约束种类: 约束...
    99+
    2017-04-03
    MySQL总结(七)数据库表的约束-详解
  • sql数据库唯一约束如何设置
    在SQL数据库中,可以通过以下方式设置唯一约束:1. 在创建表时设置唯一约束:   ```sql   CREAT...
    99+
    2023-09-05
    sql数据库
  • MySQL数据库的约束限制详解
    目录一、介绍二、操作添加删除外键联级操作一、介绍 数据库的约束是对表中数据进行的一种限制,为了保证数据的正确性、有效性、完整性。 无论是在添加数据还是在删除数据的时候,都能提供帮助。...
    99+
    2022-11-13
    MySQL数据库 MySQL约束
  • Django项目如何给数据库添加约束
    只要你的Web开发知识不是语文老师教的,那么你应该已经知道一个合格的开发者应该永远抱着怀疑的眼光看用户提交的数据。你不仅需要在前端通过表单或其它方式进行验证,还需要在后台视图拿到用户...
    99+
    2024-04-02
  • MySQL数据库中的外键约束详解
    外键是关系数据库中一种重要的数据完整性约束,它用于建立表与表之间的关联关系。外键约束指定了一个表的列或一组列必须存在于另一个表的主键...
    99+
    2023-09-22
    MySQL
  • MySQL示例讲解数据库约束以及表的设计
    目录数据库约束not nulluniquedefaultprimary key 主键foreign key 外键check表的设计一对一一对多多对多数据库约束 not null 指定某列的存储不能为null值 creat...
    99+
    2022-06-16
    MySQL数据库约束 MySQL表的设计
  • 一文理解MySQL数据库的约束与表的设计
    目录1.数据库约束1.1 约束类型1.2 null 约束1.3 unique 唯一的约束1.4 default 默认值约束1.5 primary key 主键约束1.6 primary key auto_incremen...
    99+
    2024-04-02
  • MySQL 数据库的约束及数据表的设计原理
    目录1. 数据库的约束1.1 介绍1.2 约束类型1.3 not null1.4 unique1.5 default1.6 primary key1.7 foreign key1.8...
    99+
    2024-04-02
  • 如何理解数据库设计的完整性约束表现
    这篇文章将为大家详细讲解有关如何理解数据库设计的完整性约束表现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。数据完整性是指数据的正确性、完备性和一致性,是衡...
    99+
    2024-04-02
  • 从 MySQL 数据库获取约束列表?
    要从 MySQL 数据库获取约束列表,请使用以下语法 -select *from information_schema.table_constraints where constraint_schema = 'y...
    99+
    2023-10-22
  • MySQL学习之数据库表五大约束详解小白篇
    目录1.约束概念和分类2.五大约束的添加和删除2.1添加约束的六种方法2.2三种删除约束的方式2.3五大约束分别对应的添加删除方式(序号对应2.1和2.2)2.4对于创建约束的总结2...
    99+
    2024-04-02
  • MySQL数据库约束及表的设计实例分析
    这篇“MySQL数据库约束及表的设计实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL数据库约束及表的设计实例...
    99+
    2023-07-02
  • MySQL数据库表中的约束有哪些
    这篇文章主要讲解了“MySQL数据库表中的约束有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库表中的约束有哪些”吧!MySQL表中的约束(constraint)为了保证数...
    99+
    2023-07-05
  • mysql唯一性约束如何设置
    在MySQL中,可以通过使用UNIQUE关键字来设置唯一性约束。唯一性约束可以用于确保表中的某个列或一组列的值是唯一的。 以下是在M...
    99+
    2024-04-09
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作