MySQL#3(约束,数据库设计,多表查询,事务)

news2025/2/2 8:43:03

目录

一.约束

二.数据库设计

1.数据库设计的概念

2.数据库设计的步骤

3.表关系

三.多表查询

        1.内连接和外连接

        2.子查询

四.事务

1.简介

2.事务语法

3.事务四大特征


一.约束

1.约束的概念
约束是作用于表中列上的规则,用于限制加入表的数据约束的存在保证了数据库中数据的正确性有效性和完整性

2.约束的分类

约束名称                                        描述                                                                关键字
非空约束                保证列中所有数据不能有null值                                           NOT NULL
唯一约束                   保证列中所有数据各不相同                                                UNIQUE
主键约束        主键是一行数据的唯一标识,要求非空且唯一                        PRIMARY KEY
检查约束                   保证列中的值满足某一条件                                                CHECK
默认约束           保存数据时,未指定值则采用默认值                                        DEFAULT
外键约束  外键用来让两个表的数据之建立链接,保证数据的一致性和完整性  FOREIGN KEY
注意: MySQL不支持检查约束

外键约束演示: 

二.数据库设计

1.数据库设计的概念

数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型
建立数据库中的表结构以及表与表之间的关联关系的过程

2.数据库设计的步骤

(1)需求分析(数据是什么?数据具有哪些属性?数据与属性的特点是什么)

(2)逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)

(3)物理设计 (根据数据库自身的特点把逻辑设计转换为物理设计)
(4)维护设计 (1.对新的需求进行建表;2.表优化)

3.表关系

一对一:

如: 人 和 身份证

实现方式: 在任意一方建立外键,关联对方主键,并设置外键唯一

一对多(多对一):

如: 部门 和 员工

一个部门对应多个员工, 一个员工对应一个部门

实现方式: 在多的一方建立外键关联一的一方主键

多对多:

如: 商品 和 买家

一个商品对应多个买家, 一个买家对应多个商品

实现方式: 建立第三张中间表中间表至少包含2个外键,分别关联双方主键

三.多表查询

笛卡尔积:取A,B集合所有组合情况
多表查询:从多张表查询数据
1.连接查询
(1)内连接: 相当于查询AB交集数据
(2)外连接:左外连接:相当于查询A表所有数据和交集部分数据右外连接:相当于查询B表所有                    数据和交集部分数据
2.子查询

        1.内连接和外连接

内连接

内连接查询语法:

隐式内连接

SELECT 字段列表 FROM 表1, 表2 ... WHERE 条件;

显式内连接

SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;

外连接
外连接查询语法
左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件:
右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;
左外连接:相当于查询A表所有数据和交集部分数据
右外连接:相当于查询B表所有数据和交集部分数据

        2.子查询

子查询

子查询概念: 查询中嵌套查询,称嵌套查询为子查询

1.子查询根据查询结果不同,作用不同

单行单列:  作为条件值,使用 =! = >< 等进行条件判断
SELECT 字段列表 FROM 表 WHERE字段名 = (子查询);
多行单列:  作为条件值,使用 in 等关键字进行条件判断

SELECT 字段列表 FROM 表 WHERE 字段名 in (子查询);
多行多列:  作为虚拟表
SELECT 字段列表 FROM (子查询) WHERE 条件;

四.事务

1.简介

(1)数据库的事务 (Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令

(2)事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
(3)事务是一个不可分割的工作逻辑单元

2.事务语法

开启事务(开启事务后数据的变化是临时的变化,只在当前查询中可以看到)

START TRANSACTION;

或者 BEGIN;

提交事务(提交事务后临时数据的变化会变成永久的数据变化)

COMMIT;
回滚事务(撤回临时数据的变化的操作)
ROLLBACK;

3.事务四大特征

(1)原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败

(2)一致性(Consistency): 事务完成时,必须使所有的数据都保持一致状态
(3)隔离性 (lsolation): 多个事务之间,操作的可见性
(4)持久性 (Durability): 事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java-线程池

1、线程池的自我介绍&#xff1a; ● 线程的数量过多会反复的创建并销毁 ● 为什么使用线程池&#xff1f; ○ 第一&#xff1a;反复创建线程开销大 ○ 第二&#xff1a;过多的线程会占用太多内存 解决以上两个问题的思路&#xff1a; ○ 用少量的线程-避免内存占用过多 ○ 让这…

重磅干货!一文读懂「企业级架构」

本文来自&#xff1a; 刘剑桥 极狐(GitLab) 高级解决方案架构师 首先来看两个真实的小故事&#xff1a; 1 小 A 公司有 50 人&#xff0c;作为运维人员&#xff0c;小 A 为公司搭建了一个私有化 GitLab 社区版。 某日&#xff0c;开发同学发现不能够访问 GitLab 了。小 A 查…

Web3中文|随着世界杯结束,web3体育可能达到800亿美元

随着卡塔尔世界杯的结束&#xff0c;Web3 Studios发布了一份对web3体育的深度报道。它声称该行业正处于发展拐点&#xff0c;到2030年其规模有可能达到800亿美元。 该报告数据贡献者来自Animoca Brands、FaceIt、ConsenSys、The Football Company、Apex Capital、Upland、Loot…

在Windows端使用XShell、WinSCP连接WSL2(win10的linux子系统/Ubuntu)

一、安装SSH服务 1、在ubuntu中输入: sudo apt-get install openssh-server 2、开启ssh服务 sudo service ssh start二、在Windows Subsystem for Linux &#xff08;WSL2&#xff09;中自动启动ssh服务 WSL2是Windows 10中提供的Linux子系统&#xff0c;基于Ubuntu内核。…

技术开发103

技术开发103 业务内容&#xff1a; 汽车音响等汽车电子部件试制、电子设备部件试制、精密钣金试制精密钣金试制 公司简介&#xff1a; 代表&#xff1a;中山尚美 成立时间&#xff1a;1950年6月 资本金&#xff1a;1000万日元 员工数&#xff1a;15名 资格认证/ S140001…

Python 实现将文本中数据批量写到Excel

欢迎小伙伴的点评✨✨&#xff0c;Python 常规应该开发系列&#xff0c;会渐进更新&#xff0c;如有需求&#xff0c;可留言&#x1f6d2;&#x1f6d2;&#x1f6d2;&#xff0c; 博主定当以每秒120赫兹的速度✈✈&#x1f685;&#x1f685;&#xff0c;写好博客。 文章目录前…

【408篇】C语言笔记-第十五章( 考研必会的查找算法考研真题实战)

文章目录第一节&#xff1a;顺序查找原理及实战1. 顺序查找原理解析2. 顺序查找代码实战第二节&#xff1a;折半查找原理及实战1. 折半查找原理解析2. 折半查找代码实战第三节&#xff1a;二叉排序树原理及建树实战1. 二叉排序树原理解析2. 二叉排序树代码实战第四节&#xff1…

Docker应用部署迁移备份DockerFile

文章标题一、应用部署1&#xff09;MySQL部署2&#xff09;Redis部署3&#xff09;Nginx部署二、迁移与备份1&#xff09;容器做成镜像2&#xff09;把镜像被分成压缩包三、DockerFile1&#xff09;基于Centos创建镜像自带Vim软件2&#xff09;制作Django项目镜像一、应用部署 …

计算机毕设Python+Vue学生学科竞赛管理系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【第十三章 MySQL管理(mysqladmin,mysqlbinlog,mysqlshow,mysqldump,mysqlimport/source)】

第十三章 MySQL管理&#xff08;mysqladmin,mysqlbinlog,mysqlshow,mysqldump,mysqlimport/source&#xff09; 1.系统数据库&#xff1a; Mysql数据库安装完成后&#xff0c;自带了以下四个数据库&#xff0c;具体作用如下&#xff1a; 2.mysql&#xff1a; 该mysql不是指mys…

计算机毕设Python+Vue学院校友信息管理系统的(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Promise(二) 关键问题+async+await

目录 1.几个关键问题 2. async函数 3. await表达式 4.async与await实践结合 5.async与await实践结合——发送Ajax请求获取信息 1.几个关键问题 在promise封装之前做准备 <script>let p new Promise((resolve, reject) > {//三种方式promise状态最开始是pending/…

【LeetCode】1760. 袋子里最少数目的球

袋子里最少数目的球 给你一个整数数组 nums &#xff0c;其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次&#xff1a; 选择任意一个袋子&#xff0c;并将袋子里的球分到 2 个新的袋子中&#xff0c;每…

媒体查询。

媒体查询( Media Query )是CSS3新语法 使用media查询&#xff0c;可以针对不同的媒体类型定义不同的样式 media 可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中&#xff0c;页面也会根据浏览的宽度和高度重新渲染页面 目前针对很多苹果手机、Android手机&am…

【算法】【字符串模块】字符串数组中两个字符之间的最短距离以及对hashcode以及equals的理解

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介绍 …

来聊一聊|ConcurrentModificationException异常的解决

一. 前言 最近耀哥的一个学生&#xff0c;在使用使用ArrayList的subList的时候&#xff0c;发生了ConcurrentModificationException的异常。耀哥觉得这个现象非常具有代表性&#xff0c;估计有不少同学都会在同样的问题上犯迷糊&#xff0c;所以今天耀哥特意把这个问题记录下来…

设备台账管理系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 模块划分&#xff1a;公告类型、公告信息、员工信息、仓库信息、设备类型、设备信息、供应商信息、采购信息、设备调拨、…

8个Spring事务失效的场景,你碰到过几种?

前言 作为Java开发工程师&#xff0c;相信大家对Spring种事务的使用并不陌生。但是你可能只是停留在基础的使用层面上&#xff0c;在遇到一些比较特殊的场景&#xff0c;事务可能没有生效&#xff0c;直接在生产上暴露了&#xff0c;这可能就会导致比较严重的生产事故。今天&a…

基于Android7 的msm8953芯片的nfc调试

目录 报错日志 NFC芯片重要的5个引脚 时序图分析 报错日志 01-01 19:05:22.570 0000 2341 2532 D NxpFwDnld: phDnldNfc_InitImgInfo:SUCCESS 01-01 19:05:22.570 0000 2341 2532 D NxpFwDnld: Processing Normal Sequence.. 01-01 19:05:22.570 0000 2341 2532 D NxpFwD…

干货|PCB电路板的组成、设计、工艺、流程及元器摆放和布线原则

大家对PCB电路板电路这个词很熟&#xff0c;有的了解PCB电路板的组成&#xff0c;有的了解PCB电路板的设计步骤&#xff0c;有的了解PCB电路板的制作工艺......但是对整个PCB电路板的组成、设计、工艺、流程及元器摆放和布线原则&#xff0c;及后期的注意事项没有一个综合的了解…