MySQL____表约束和表设计

【MySQL】数据库约束和多表查询 我们上一次介绍了MySQL数据库关于表的增删改查,在平时是用的过程还需要对数据库进行约束以及多表查询,因此今天跟大家分享并介绍数据库约束和多表查询的内容。SQL查询中各个关键字的执行先后顺序:我们在编写SQL语句时要按照上面的执行顺序去编写,才能成功运行获取到想要查询的数据,以上就是本次所介绍的内容,我们下次再跟继续大家分享MySQL数据库中的索引与事务! 阅读详情

一 . 表约束

1.约束类型

NOT NULL非空约束 ,指定某列不能存在NULL值
UNIQUE唯一约束,保证某列的每行只能有唯一的值
PRIMARY KEY主键约束,一张表只能创建一个主键,但主键可以是一列(一个字段)也可以是多列(多个字段) 优点:快速查找表中的特定数据
FOREIGN KEY外键约束,和主键相对应,保证一个表中的数据匹配另一个表中的值的参照完整性
CHECK检查约束,保证列中的值符合指定的条件
AUTO_INCREMENT自增约束,此字段会自己增加存储数值,默认值从1开始 ,每次递增1.
DEAFAULT默认值约束,规定没有给列赋值时的默认值

1.1非空约束

create table table_name(id int not null,  ,);


字段名 字段类型 约束…

1.2 唯一约束(不重复)

字段名 字段类型 unique;

在这里插入图片描述
一张表中可以有多个唯一约束
在这里插入图片描述
问题:
给某个字段设置了唯一约束,没有指定非空约束
1.这个字段能否插入null值?
可以 也可以重复插入null在这里插入图片描述
在这里插入图片描述
null和’null’不一样
2.这个字段能否插入空值?
可以
MYSQL中需要注意null 和空(’’)和’null’ 完全不一样
查看唯一约束
在这里插入图片描述

1.3 主键约束

主键可以用来表示一张表中某一条数据的代表凭证
主键特征:
1.非空且唯一
2.主键可以由多个字段或单个字段组成

单字段主键

字段 字段类型 primary key;

多个字段或单个字段

create table table_name(
id int,
name varchar(250),
primary key(id,name)
);

在这里插入图片描述
多个字段联合起来形成的主键,因此要多个字段不重复,那么插入数据就可以成功。
注意事项:
即使主键是字符类型,依然不能插入空值,和 not null约束不同。
在这里插入图片描述

1.4 外键约束

foreign key (字段名) references 主表 (列);

在这里插入图片描述
在这里插入图片描述

主表(有主键) 次表(有外键,关联到主表的主键上)
外键可以插入null并且可以插入多个null,但是如果指定了数据(指定了具体的值),那么这个值一定得是有效才行!

1.5 检查约束

保证列中的值符合指定的条件

check(约束内容);

1.6 auto_increment

1.6.1 注意事项

1.auto_increment必须配合Key使用,primary key,foreign key和unique都是可以的
2.auto_increment自增约束必须配合整数数值使用
3.在一张表中不允许有多个auto_increment
4.手动指定自增值
在这里插入图片描述
5.手动修改修改子增值:(新增)

1.6 insert… select…

二 . 表设计

1. 数据库设计三范式

1.1 第一范式:

表的列要保证是最小的不可分割的原子值

1.1.1符合第一范式的好处:
  1. 减少了数据冗余
  2. 更利于数据的维护和更新

1.2 第二范式:

一个表中的所有数据都必须和主键有关联

1.2.1符合第二范式的好处:
  1. 利于维护和修改
  2. 利于展示

1.3第三范式:

确保表中的每列都和主键直接相关 而不是间接相关

1.3.1符合第三范式的好处:
  1. 实现列和非主键的解耦。(一个字段不会影响其他字段)

三. 表关系

一对一

一对多

一个班有多个学生

多对多

一个学生可以选修多个课程
一门课程也可以被多个学生选择
要有三个表 其中一个是中间表
在这里插入图片描述

在这里插入图片描述

mysql/mariadb 进阶知识之表设计和查询 进阶知识之表设计和查询 一、表设计之数据类型选择 1.1、表设计步骤 第一步,确定大类型:数字、字符串、日期等级等; 第二步,确定具体的类型:如整数类型,tinyint/smallint/mediumit/int/bigint 1.2、数据类型 1.2.1、数字类型(整数/小数) 整数类型 整数类型说明: 存储值的范围越大,所需要的存储空间也会越大 可以添加AUTO_INCREMENT自增约束条件 UNSIGNED属性(无符号显示):默认是SIGNED(有符号显示),正数的上限提示约1倍 INT(1 阅读详情

相关推荐

【020】基于51单片机智能路灯系统Proteus仿真与实物设计

【020】基于51单片机智能路灯系统Proteus仿真与实物设计

小邓子分享官的博客 1881

【MySQL】表约束和表设计

MySQL的CRUD操作数据库约束表约束非空约束 NOT NULL唯一约束 UNIQUE主键约束PRIMARY KEFOREIGN KEYCHECK三级约束类型 数据库约束 表约束 表约束是在创建表的时候,设计一些表的约束条件,用来保证数据的合法性和数据的正确性。 常见表约束: 约束 说明 NOT NULL ⾮空约束,指示某列不能存储 NULL 值 UNIQUE 唯⼀约束,保证某列的每⾏必须有唯⼀的值 PRIMARY KEY 主键约束,确保某列(或两个列多个列的结合)有唯⼀标识,有助

weixin_51143430的博客 2814

2026年ERP选型实战:按规模分档,避开成本与实施陷阱

企业资源计划(ERP)是现代企业数字化转型的核心系统,它将财务、供应链、制造、人力等业务整合到统一平台。随着云计算和人工智能技术的发展,ERP已从传统本地部署的记录工具演变为SaaS订阅制、具备AI辅助决策能力的智能运营平台。不同规模企业在选型时的关注点差异巨大:小微企业追求轻量化和快速出报表,中型企业需要在流程标准化与业务灵活性间取得平衡,大型集团则注重多法人管控和数据治理。此外,制造、电商、工程等行业对ERP的模块要求也各有侧重,成本核算数据跑不通更是普遍痛点。如何结合企业规模与行业特征,制定合理的选型

weixin_34320724的博客 381

MySQL表约束和表设计

1. 数据库约束 1.1 什么是表约束 表约束是在创建表的时候,设计⼀些表的约束条件,⽤来保证数据的合法性和数据的正确性。 例如⼀个账号只能绑定⼀个⼿机号,那么⼿机号就不能重复,不能被多个账号绑定使⽤,所以它应该设置唯⼀约束。⽽主键是⽤来标识数据的,因此它不能为 NULL,也不能为空,所以他需要设置⾮空约束或(主键约束,主键约束也不能为 NULL)。 1.2 为什么需要表约束 就像法律是⽤来规范⼈们的正确⾏为的⼀样,表约束也是为了规范程序员正确使⽤表的,但表约束是预先...

澄白易的博客 790

Python爬虫实战:基于最新技术爬取国家企业信用信息公示系统数据

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的国家企业信用信息公示系统爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、数据解析与存储等高级话题,最终实现一个完整的爬虫系统。文章包含大量实战代码示例,适合中高级Python开发者学习参考。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和商业情报收集等领域。通用爬虫:如搜索引擎爬虫,广泛抓取互联网公开信息聚焦爬虫:针对特定领域或网站的数据采集增量式爬虫:只抓取更新内容,减少资源消耗。

2201_76125261的博客 2410

【Yolo12改进策略】MRFA 小核协同,构建巨大的感受野,同时保持高斯型分布|即插即用|ICCV2025

本文将介绍如何将 UniConvNet 论文中的核心模块——感受野聚合器集成到 Yolo12中,通过一种新颖的“小核协同”范式,在不显著增加计算开销的前提下,显著提升模型的感受野质量和检测精度。在目标检测中,模型要识别一个物体,不仅需要看到物体的局部特征,更需要理解其周围的上下文信息。传统卷积网络通过堆叠小卷积核(如 3x3)来扩大“感受野”,但这个过程缓慢且效率低下。而近期流行的大核卷积,虽然感受野大,但会破坏“距离越近、影响越大”的自然分布,且带来巨大的计算负担。MRFA 找到了一条“中间道路”:它通过

m0_47867638的博客 933

Mysql数据库的表约束、表设计、以及多表查询

详细介绍Mysql数据库的表约束、表设计、以及多表查询。

m0_63475488的博客 899

解决微信小程序长页面滚动到底部点击底部的输入框后输入框漂浮且页面滚动到顶部

一、问题描述 项目中有一个长页面上部展示部分信息下部为信息录入,页面长度为三屏幕(不同手机屏幕大小略有差异),当滚动到第二屏或者第三屏去填写信息时点击输入框后输入框漂浮起来了并且页面向上滚动了一段距离,回到了第一屏中展示的内容。效果如图。 滚动到第二屏,证件号输入。 点击输入框 可以看到证件号输入框漂浮了起来并且页面滚动到了第一屏展示的内容。 注意:小程序是2018年上线,在2020年4月份之前该页面从未出现过这种现象。推测:微信的后续更新中对微信小程序基础库进行了重构,导致点击输入框后页

仰望星空的代码 3262

【MySQL进阶之路】表的约束——非空约束,默认值,列描述, zerofill

表约束的空属性🔥默认值🔥非空约束和默认值🔥列描述🔥zerofill

2301_79796701的博客 1307

YOLOv8 更换损失函数DIoU、EIoU、GIoU...Inner-IoU...

介绍了一些损失函数,并将其应用到yolov8训练中

分享一些自己改进代码的实例 888

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1291

【MYSQL中数据库的约束以及表的设计】

MYSQL中数据库的约束以及表的设计

2303_77535762的博客 1544

【嵌入式DIY实例-ESP32篇】-智能花园助手

本文介绍了一个基于ESP32的智能花园监控系统。系统使用ESP-EYE摄像头开发板,集成了土壤湿度传感器、DHT22温湿度传感器和电磁阀等模块,实现植物生长环境监测与自动灌溉功能。硬件部分详细说明了各传感器的接线方式,软件部分展示了如何通过Firebase实现数据存储和远程监控。系统可实时采集土壤湿度、空气温湿度等数据,并通过摄像头监控植物状态,当检测到环境参数异常时,可自动控制水泵进行灌溉,为植物提供最佳生长环境。

视觉与物联智能 264

MySQL——约束

约束 1、什么是约束? 在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性、有效性!!! 约束的作用就是为了保证:表中的数据有效!! 2、约束包括哪些? 非空约束:not null 唯一性约束: unique 主键约束: primary key (简称PK) 外键约束:foreign key(简称FK) 检查约束:check(mysql不支持,oracle支持) 2.1、非空约束:not null 非空约束 not null 约束的字段不能为 NULL。 drop table

前尘忆梦的博客 479

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MySQL初阶:数据库约束和表的设计

数据库约束是针对数据库中的表中的数据进行施加规则和条件,用于确保数据的准确性和可靠性。

credif的博客 488

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JavaWeb——MySQL-多表设计(5/5):案例-表结构(分类表(category)、菜品表(dish)、套餐表(set_meal)、套餐菜品关系表(set_meal_dish))

多表关系明晰分类 - 菜品一对多关系,菜品表外键连分类表id,实现分类与菜品层级关联,助快速查询分类下菜品及追溯菜品分类源头,优化数据检索与业务逻辑处理效率,提升外卖业务数据管理粒度与精度。分类 - 套餐一对多架构,套餐表外键指向分类表id,精准构建分类套餐映射,确保套餐在分类体系中精准定位与高效管理,支撑按分类筛选套餐等业务操作,强化外卖业务分类导航与套餐组织效能。菜品 - 套餐多对多纽带,套餐菜品关系表凭借与dish_id。

li13437542099的博客 1545

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据库-MySQL约束-笔记

MySQL约束 回顾 MySQL管理数据库 创建数据库 CREATE DATABASE IF NOT EXISTS 数据库名; 删除数据库 DROP DATABASE 数据库名; 表的管理 查看所有表 use 数据库名; 选中一个数据库 show tables; 创建表:student(整数id,字符串name,整数age) CREATE TABLE sutdent (id int, nam...

weixin_45156610的博客 2592

MySQL(二):MySQL约束和表设计

MySQL约束和表设计 文章目录MySQL约束和表设计1. 数据库建表的三大范式2. 约束概述2.1 主键约束2.2 唯一约束2.3 非空约束2.4 默认值2.5 外键约束3.3 表关系3.4 表的设计 1. 数据库建表的三大范式 第一范式 : 表的每一列的不可再分。 第二范式 : 表的每一列都完全依赖主键,不产生局部依赖 第三范式 : 不产生传递依赖,表中每列都直接依赖于主键 2. 约束概述 约...

zmysn_a的博客 588

MySQL表的增删改查---多表查询和联合查询

ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ ა本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 优快云 如需转载还请通知˶⍤⃝˶。

xiaoxie8023的博客 6560

mysql 建表 phonenumber nickname

查询语句,可以查看刚插入的用户信息数据。这个示例代码可以在实际开发中用于创建用户信息表,并对用户信息进行插入和查询操作。在真实的应用场景中,可以根据需要逐步扩展和完善表结构,同时结合其他功能和业务逻辑,实现更加复杂和实用的数据库操作。在MySQL数据库中,创建一张表需要指定表名以及表中各列的字段名和数据类型。在使用MySQL的CREATE TABLE语句创建表时,有一些重要的注意事项需要考虑,以确保表结构的正确性和合理性。在上面的示例代码中,我们首先创建了一个名为。是用于创建表的关键字,

牛肉胡辣汤 1537

MySQL数据库 ---MySQL表的增删改查(进阶)

MySQL表的增删改查(进阶) 1. 数据库约束 约束类型 说明 示例 NULL约束 使用NOT NULL指定列不为空 name varchar(20) not null, UNIQUE唯一约束 指定列为唯一的、不重复的 name varchar(20) unique, DEFAULT默认值约束 指定列为空时的默认值 age int default 20, 主键约束 NOT NULL 和 UNIQUE 的结合 id int primary key, 外键约束 关联其他表的主键

wwzzzzzzzzzzzzz的博客 2万+

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

MySQL对表操作进阶(1),数据库约束,表的设计,新增

不能再留遗憾了的博客 3928

MySQL(多表设计、多表查询)

连接查询:内连接:相当于查询A、B交集部分数据外连接:左外连接:查询左表所有数据(包括两张表交集部分数据)右外连接:查询右表所有数据(包括两张表交集部分数据)子查询索引是帮助数据库高效获取数据的 数据结构。优点:提高数据库查询的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗。缺点:索引会占用存储空间。索引大大提高了查询效率,同时却也降低了insert、update、delete的效率。

2401_88455976的博客 836

MySQL链接表设计_MySQL多表&外键&数据库设计

来自拉钩教育-JAVA就业集训营1. 多表2. 多表关系设计3. 多表查询4. 子查询 (SubQuery)----------------------------------------------------------1. 多表1.1 多表简述实际开发中,一个项目通常需要很多张表才能完成。例如一个商城项目的数据库,需要有很多张表:用户表、分类表、商品表、订单表....1.2 单表的缺点1.2...

weixin_36180515的博客 366

MySQL表增删改查(进阶)

本篇文章是MySQL表里增删改查的进一步应用,相较之前简单的增删改查会难上一些。本篇主要围绕数据库约束、表的设计、新增、查询来学习。提示:以下是本篇文章正文内容本篇学习了 约束、表的设计、新增、查询,其中查询包括聚合查询以及联合查询。其中,有很多内核知识,是需要我们掌握的。在实际开发中,其实更常用的SQL语句,是最基础的增删改查。但是在面试的时候,面试官会喜欢考察联合查询的知识。所以,也需我们耐下心来学习以上知识。

C96949689的博客 1020
上一篇: MySQL_____数据操作之增删改查
下一篇: MySQL____高级查询、联合查询
漫天 星辰
博客等级 码龄6年 13粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值