面试题------>MySQL!!!

一、连接查询

        ①:左连接left join (小表在左,大表在右)

        ②:右连接right join(小表在右,大表在左)

二、聚合函数

SQL 中提供的聚合函数可以用来统计、求和、求最值等等

COUNT:统计行数量

SUM:获取单个列的合计值

AVG:计算某个列的平均值

MAX:计算列的最大值

MIN:计算列的最小值

三、SQL 关键字

①分页:limit

SELECT * FROM student3 LIMIT 100,6; 查询学生表中数据,跳过100条,从第101条开始显示,取6 条

②倒序:order by  ... desc

select * from user order by id desc limit 0 6

③分组:group by

SELECT sex , count(*) FROM student GROUP BY sex

④去重:distinct

select DISTINCT NAME FROM student3;

四、 SQL Select 语句完整的执行顺序

查询中用到的关键词主要包含如下展示,并且他们的顺序依次为

form...left join...on...where...group by...having..select...avg()/sum()...order by...asc/desc...limit...

from: 需要从哪个数据表检索数据

where: 过滤表中数据的条件

group by: 如何将上面过滤出的数据分组算结果

order by : 按照什么样的顺序来查看返回的数据

五、 数据库三范式(掌握)

第一范式:

1NF 原子性,列或者字段不能再分,要求属性具有原子性不可再分解;

第二范式:

2NF主要是解决的冗余。

1.每一行数据有唯一的主键

2. 非主键字段必须依赖于主键字段

第三范式:

3NF主要是解决 的冗余。

非主字段不依赖于其它非主键字段

我们有时候并不会严格的遵守第三范式,例如我们在设计订单明细表的时候,我们冗余了商品的名称和图片,因为我们通过商品id再去查询商品表会给基础表造成压力,所以我们冗余了两个字段。

六、存储引擎 :MyISAM 存储引擎 与 InnoDB 引擎区别

①. 事务支持:MyLISAM不支持事务,InnoDB支持事务。

②. 锁定机制(锁的粒度):MyISAM 表级锁 InnoDB 支持行级锁

③. 外键支持:MyISAM 不支持外键约束;而 InnoDB 支持外键约束。(一般不用外键,我们在使用外键过程中,删除的时候需要)

④. 并发性能: InnoDB 支持行级锁定和事务处理,InnoDB 的并发性能更高

七、数据库事务(必会)

1.事务特性ACID

原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。

一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态,即一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还是5000,这就是事务的一致性。

隔离性:即一个事务执行之前和执行之后都必须处于一致性状态。

持久性:事务一旦结束,数据就持久到数据库

如何保持事务特性:

  • redo log持久性,当数据库对数据做修改的时候,需要把数据页从磁盘读到buffer pool中,然后在buffer pool中进行修改,那么这个时候buffer pool中的数据页就与磁盘上的数据页内容不一致,称buffer pool的数据页为dirty page脏数据,如果这个时候发生非正常的DB服务重启,那么这些数据还在内存,并没有同步到磁盘文件中,也就是会发生数据丢失,如果这个时候,能够在有一个文件,当buffer pool中的data page变更结束后,把相应修改记录记录到这个文件(注意,记录日志是顺序IO),那么当DB服务发生crash的情况,恢复DB的时候,也可以根据这个文件的记录内容,重新写到到磁盘文件,这样数据就保持一致。

  • undo log一致性原子性。 undo日志用于存放数据被修改前的值,如果修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。另外InnoDB MVCC事务特性也是基于undo日志实现的。undo日志分为insert undo log(insert语句产生的日志,事务提交后直接删除)和update undo log(delete和update语句产生的日志,由于该undo log可能提供MVVC机制使用,所以不能再事务提交时删除)

2.隔离级别

读未提交:脏读

脏读:所谓的脏读,其实就是读到了别的事务回滚前的脏数据。当前事务读到的数据是别的事务想要修改但是没有修改成功的数据。

A读了B回滚前的数据。

读已提交:不可重复读,针对updatedelete

可重复读:幻读,针对insert

解决方法:采用多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。·

串行化:一个一个来,有效解决脏读,不可重复读,幻读,就是效率很低。

八、索引的优点和缺点(空间换时间)

优点:加快查询效率

缺点:占用内存空间,增删改的效率较低(删除数据的时候还需要删索引的相关数据,故效率低)

九、索引的分类

①:普通索引:值可以重复

②:唯一索引:唯一,允许有一个空值

③:主键索引:不为空,只能有一个

④:联合索引:(手机号和密码),(订单id和status)

⑤:全文索引:虽然MySQL支持全文索引但我们并没有采用,我们采用ES做搜索引擎。

十、B树与B+树的主要区别

存储数据的位置:

        B树: 数据既存储在所有节点中(叶子节点和非叶子节点都有数据)

        B+树: 所有的数据记录都存储在叶子节点中,非叶子节点仅包含索引信息。叶子节点包含了完整的数据和索引键。

叶子节点之间的链接:

        B树: 叶子节点之间没有链接。

        B+树: 叶子节点之间通过指针相互链接,形成一个链表或循环链表,这使得范围查询和遍历变得高效。

十一、MySql Explain优化命令使用

truncate table student // 自增id 从 0 开始

delete from student // 自增id 会保留 , 108

区别:

1:自增id

2:delete 可以恢复

truncate 无法恢复

2.4 type 列(重点)

"type"列用于表示访问表时所采用的访问类型。

下面是常见的"type"值及其含义:

  1. system: 表示只有一行的表,通常是系统表。

  2. const: 表示通过索引只能匹配到一行数据。 explain select * from student where id = 1688

  3. eq_ref: 表示使用了等值连接(例如,使用主键或唯一索引连接表)。explain SELECT * FROM student s1 JOIN student s2 ON s1.id = s2.id WHERE s1.age = 25;

  4. ref: 表示使用了非唯一索引进行查找,并返回匹配的多行或一行数据。 explain select * from student where name = '张68'

  5. range: 表示使用了索引进行范围查找,例如使用比较符(>, <, BETWEEN)或IN操作符。 explain select * from student where age < 1688

  6. index: 表示全索引扫描,也就是说用了某一个索引的全部, 通常发生在查询使用索引覆盖的情况下。explain select count(*) from student ;explain select sum(age) from student

  7. all: 表示全表扫描,即没有使用索引,需要遍历整个表进行查询。 explain select * from student

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

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

相关文章

Python连接数据库进行数据查询

Python连接数据库进行数据查询 mysql数据库&#xff08;mariadb&#xff09;连接数据库创建Cursor对象模块安装代码 Oracle数据库连接数据库模块安装代码 SQL server数据库连接数据库模块安装代码 mysql数据库&#xff08;mariadb&#xff09; 连接数据库 首先&#xff0c;你…

AI论文工具推荐

AI 在学术界的使用情况也比较疯狂&#xff0c;特别是一些美国大学&#xff0c;用 AI 来辅助阅读文献以及辅助写论文的越来越多&#xff0c;毕竟确实可以提高写作效率&#xff0c;特别是在文献综述和初稿生成方面。 但在科研界其实&#xff0c;发现看论文的速度已经赶不上发论文…

发现 Laravel 中的 api 响应时间明显过长

背景 近期在排查网站后台页面功能时 发现&#xff0c;部分查询页面&#xff0c;明显响应时间过长&#xff08;12秒&#xff09;&#xff0c;不合理 优先排查 接口运行时长 经过打印&#xff0c;发现代码是正常的&#xff0c;且时间仅需不到一秒 进一步怀疑是 VUE框架的渲染加载…

“粘土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图

阿里云函数计算 FC 一键部署火爆全球工作流 AI 生图平台—— ComfyUI &#xff0c;实现更高质量的图像生成&#xff0c;三步轻松完成“黏土”创意AI画作&#xff0c;晒图赢眼部按摩器等好礼&#xff01; 活动地址&#xff1a; https://developer.aliyun.com/topic/june/fcspma…

编写备份MySQL 脚本

目录 环境准备 增量备份 增量备份和差异备份 完整代码如下 测试脚本是否正常 星期天运行脚本&#xff08;完全备份&#xff09; 星期一运备份脚本&#xff08;增量备份&#xff09; 星期二备份数据&#xff08;其他天--增量备份&#xff09; 星期三备份数据&#xff08;差异备…

最大连续1 的个数Ⅲ(滑动窗口)

题目&#xff1a; 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 首先&#xff0c;我们需要了解题干的意思&#xff1a;我们需要将给定的一个只有 0 和 1 的数组&#xff0c;最多将其中 k 个0改变…

EVASH vs. ATMEL vs. ST EEPROM 对比型号

EVASH vs. ATMEL vs. ST EEPROM 对比 型号对比 益华世ATMELSTEV24C128AAT24C128M24128EV24C256AAT24C256M24256EV24C512AAT24C512M24512 优势和劣势对比 品牌优势劣势EVASH- 供应链稳定性: 新兴品牌&#xff0c;可能在芯片市场紧缺的情况下提供较为稳定的供应。<br>- …

【强烈推荐】四元数与三维旋转

目录 1 强烈推荐讲解四元数与三维旋转的这篇文章&#xff0c;深入浅出2 笔记2.1 复数2.1.1 复数的定义2.1.2 复数的乘法与二维旋转 2.2 三维空间中的旋转2.2.1 角轴2.2.2 旋转的分解 2.3 四元数2.3.1 四元数的定义2.3.2 四元数的乘法2.3.3 四元数与三维旋转2.3.4 三维旋转的矩阵…

selenium自动化测试入门:下拉框元素定位

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 选择获取反选下拉框元素首先要实例化select元素 from selenium.webdriver.support.ui import S…

数字影像产业园的三大赋能:科技、创新与无限可能

数字影像产业园作为文创产业的重要载体&#xff0c;以科技为核心驱动力&#xff0c;不断推动产业的技术革新和升级。 园区内汇聚了最前沿的数字技术资源&#xff0c;高清摄影设备、虚拟现实技术、人工智能应用等尖端科技在这里得到广泛应用&#xff0c;不仅提升了生产效率&…

能源SCI期刊,中科院4区,审稿快,IF=3.858

一、期刊名称 Frontiers in Energy Research 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;能源 影响因子&#xff1a;3.858 中科院分区&#xff1a;4区 三、期刊征稿范围 能源研究前沿出版了整个领域的严格同行评审研究&#xff0c;重点是可持续和环境…

java多线程原理

1.线程创建与启动&#xff1a;通过继承Thread类或实现Runnable接口创建线程&#xff0c;并调用start()方法启动线程。 1.线程状态&#xff1a;线程在其生命周期中有多种状态&#xff0c;包括新建、运行、阻塞、死亡等。了解这些状态以及如何在它们之间转换对于管理线程至关重要…

ICLR 2024 BACKDOOR FEDERATED LEARNING BY POISONING BACKDOOR-CRITICAL LAYERS

寻找后门攻击最有效的网络层。现有的 FL 攻击和防御方法通常关注整个模型。 他们都没有认识到后门关键&#xff08;BC&#xff09;层的存在——控制模型漏洞的一小部分层。 攻击 BC 层可达到与攻击整个模型相同的效果&#xff0c;但被最先进 (SOTA) 防御检测到的机会要小得多。…

如何卸载360安全卫士

不用像其他教程那么复杂 这篇教程比较友好 1.打开桌面&#xff0c;右键单击快捷方式 选择“打开文件位置” 2.然后&#xff0c;搜uninst.exe 3.运行 4.选择“继续卸载” 5.选择“下一步” 6.选择 “继续卸载” 7.选择“继续卸载” 8.选择“是” 9.静等卸载 10.把卸载程序关…

【因果推断python】16_工具变量2

目录 出生季度和教育对工资的影响 第一阶段 出生季度和教育对工资的影响 到目前为止&#xff0c;我们一直将这些工具视为一些神奇的变量 Z&#xff0c;它们具有仅通过干预变量影响结果的神奇特性。老实说&#xff0c;好的工具变量来之不易&#xff0c;我们不妨将它们视为奇迹…

Windows11系统 和Android 调试桥(Android Debug Bridge,ADB)工具安装,app抓取日志内容

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 Android调试桥&#xff08;ADB&#xff09;是一种多功能命令行工具&#xff0c;它允许开发者与连接到计算机上的Android设备进行通信和控制。ADB工具的作用包括但不限于&#xff1a; 安装和卸载应用程序&…

2024年先进材料与清洁能源国际会议(ICAMCE 2024)

2024 International Conference on Advanced Materials and Clean Energy 【1】大会信息 大会时间&#xff1a;2024-07-15 大会地点&#xff1a;中国三亚 截稿时间&#xff1a;2024-07-01(以官网为准&#xff09; 审稿通知&#xff1a;投稿后2-3日内通知 投稿邮箱&#xff1a…

揭秘相似矩阵:机器学习算法中的隐形“纽带”

在机器学习领域&#xff0c;数据的处理和分析至关重要。如何有效地从复杂的数据集中提取有价值的信息&#xff0c;是每一个机器学习研究者都在努力探索的问题。相似矩阵&#xff0c;作为衡量数据之间相似性的数学工具&#xff0c;在机器学习算法中扮演着不可或缺的角色。 相似矩…

Docker之路(三)docker安装nginx实现对springboot项目的负载均衡

Docker之路&#xff08;三&#xff09;dockernginxspringboot负载均衡 前言&#xff1a;一、安装docker二、安装nginx三、准备好我们的springboot项目四、将springboot项目分别build成docker镜像五、配置nginx并且启动六、nginx的负载均衡策略七、nginx的常用属性八、总结 前言…

SpringBoot高手之路02-全局异常处理器

RestControllerAdvice 可以将响应数据返回json格式然后响应 那么开始做全局异常处理器 首先先定义一个类 package com.healer.exception;import com.healer.common.Result; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.we…