【技术干货】作为测试,你必须知道的MySQL知识(二)

【技术干货】作为测试,你必须知道的MySQL知识(二),第1张

        在上一文章 《 【技术干货】作为测试,你必须知道的MySQL知识(一) 》 中我们已经学了MySQL基础知识。对于 最常用、最重要 的select语句将会在本文与大家分享,带你轻松搞定查询语句。

    学习select之前,需先知道查询语句 逻辑执行顺序 ,了解了逻辑执行顺序,对我们写select语句有帮助,但是需要注意的是,逻辑顺序并不是真正执行的顺序,因为MySQL 优化器 会将SQL子句按最优的路径执行。如果想要查看实际执行顺序,可使用Explain关键字进行分析,获取对应的执行计划。

查询语句的使用都离不开以下的格式:

需要记住,这是学好查询语句的基础~

以上select的逻辑执行顺序如下(前面的序号):

 查询语句中where后面支持多种运算符,进行条件的处理,其中常见运算符包括:比较运算、逻辑运算、模糊查询、范围查询、空判断。

① 等于: =

② 大于: >

③ 大于等于: >=

④ 小于: <

⑤ 小于等于: <=

⑥ 不等于: != 或 <>

① and

② or

③ not

【模糊查询语法】:字段名 like <匹配字段字符串>

【常见的匹配字段字符串】:%、_、[] 、[^]

① in:表示在一个非连续的范围内

② between ... and ...:表示在一个连续的范围内

① 判断为空:is null

② 判断非空:is not null

【注意】:null与''是不同的。

使用JOIN 来联合多表查询,JOIN 按照功能大致分为如下三类:

① INNER JOIN(内连接) : 获取两个表中字段匹配关系的记录。

② LEFT JOIN(左连接) : 获取左表所有记录,即使右表没有对应匹配的记录。

③ RIGHT JOIN(右连接) : 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

->【举个栗子】:对表t_user与表t_order进行内连接

->【举个栗子】:对表t_user与表t_order进行左连接

->【举个栗子】:对表t_user与表t_order进行右连接

① 内连接: 保留两表中交集的记录;

② 左连接: 左表全部保留,右表关联不上用null表示;

③ 右连接: 右表全部保留,左表关联不上的用null表示。

group by语句是根据一个或多个列对结果集进行分组。在分组的列上我们经常会使用到 聚合函数 ,因此,先了解 常用的聚合函数 :

① sum():求和

② avg():求平均数

③ count():统计记录条数

④ max():求最大值

⑤ min():求最小值

【group by语法】:

可以根据某个字段(column_name)进行分组。如果不指定分组字段,默认将所有记录作为一组。

->【举个栗子】: 在emp表中,有3个字段,一个是员工id(id),一个是部门id(dept_id),一个是员工薪水(salary)

【注意】:

①  使用group by的select语句中的字段,应该 出现在 聚合函数 中,或者 出现在 group by 中;

②  having 子句可以使用聚合函数,而 where 子句不能使用。

③从逻辑执行过程可知: where 是没有分组前对所有数据进行过滤, having 是对分组后的数据进行过滤。

子查询是指一个查询语句嵌套在另一个查询语句内部的查询。

->【举个栗子】: 一张user表,有2个字段,一个是名称(name),一个是年龄(age),查询出比小李年龄高的人有哪些?

- >【举个栗子】: 获取员工工资低于所在部门的平均工资的员工信息

    要对某个字段进行降序,可以在查询语句后可使用:order by <排序的字段名>desc

     要对某个字段进行升序,可以在查询语句后可使用:order by <排序的字段名>asc

【注意】:order by默认情况下是升序,asc可省略不写。

     有2个维度的排序时,使用逗号隔开2个排序,优先使用前者进行排序,再使用后者进行排序。

    limit:限制查询数据条数,经常在分页的场景中应用。LIMIT子句接受一个或两个参数。参数值都必须为零或正整数。limit的使用格式:

【参数解释】:

limit N :  返回 N 条记录

offset M :  跳过 M 条记录, 默认 M=0

limit N,M :  从第 N 条记录开始, 返回 M 条记录。

->【举个栗子】:

【注意】:limit的两个参数中:

① 第1个参数:指要返回的第一行的偏移量。第一行的偏移量为0,而不是1;

② 第2个参数:指要返回的记录行数。

  如上面"检索6-15行记录"例子中,第1个参数为5,其实指的是第6行;第2个参数为10,指的是从第6行开始,取10条记录,所以是获取到6-15的记录。

    当需要查询出某个字段不重复的记录时,可以使用distinct来过滤重复的记录,格式如下:

使用distinct可以进行单字段去重、多字段去重、所有字段去重、以及与聚合函数的综合使用。

-->【举个栗子】: student表中有name、age、weight3个字段字段。

    使用distinct之后,只能返回去重的字段,而不能返回其他的字段,可以使用group by进行去重查询,

【注意】:

①  distinct 只能在select语句中使用;

②   distinct 必须在所有字段的最前面;

③ 多个字段去重时,多个字段组合后一样时才会被去重;

④ 列中有null值,当对该列使用distinct子句,将保留一个null值(所有null值被视为相同的值)。

MySQL是一个功能齐全的关系数据库管理系统(RDBMS),可以与Oracle DB和Microsoft的SQL Server竞争。MySQL由瑞典公司MySQL AB赞助,该公司由Oracle公司拥有。

MySQL 是一个功能齐全的关系数据库管理系统(RDBMS),可以与 Oracle DB 和 Microsoft 的 SQL Server 竞争。MySQL 由瑞典公司 MySQL AB 赞助,该公司由 Oracle 公司拥有。但是,MySQL 源代码是免费提供的,因为它最初是作为免费软件开发的。MySQL 是用 C 和 C ++编写的,与所有主流 *** 作系统兼容。

MySQL 是一个最初开发并于 1995 年首次发布的自由软件数据库引擎.MySQL 以其产品创始人之一的 My,女儿 Michael Widenius 命名。它最初是在 GNU 通用公共许可证下生成的,其中源代码可以免费获得。

MySQL 在 Web 托管应用程序中非常流行,因为它具有大量的 Web 优化功能,如 HTML 数据类型,并且因为它是免费提供的。它是 Linux,Apache,MySQL,PHP(LAMP)架构的一部分,这是一种经常用于交付和支持高级 Web 应用程序的平台组合。MySQL 运行着一些着名网站的后端数据库,包括维基百科,谷歌和 Facebook–尽管它具有分散的,免费的哲学,但它的稳定性和稳健性的证明。

MySQL 最初由 Sun Microsystems 拥有当该公司于 2010 年被甲骨文公司收购时,MySQL 就是该软件包的一部分。虽然 MySQL 在技术上被认为是 Oracle DB 的竞争对手,但 Oracle DB 主要用于大型企业,而 MySQL 则被更小,更面向 Web 的数据库使用。此外,MySQL 与 Oracle 的产品不同,因为它属于公共领域。

如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;

如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;

如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。

随着计算机和信息技术的迅猛发展和普及,行业应用系统的规模迅速扩大,行业应用所产生的数据量量呈爆炸式增长,类似于MySQL集群这样的技术得到了广泛的运用,MySQL集群原理的运用就显得尤其重要。

动力节点的MySQL集群教程 ,对于MySQL集群技术的应用场景有着详细的介绍,能够有效帮助我们学以致用, 教程主要从MySQL集群架构解析到架构部署再到集群架构测试,一步步带你部署企业级的MySQL数据库集群项目,熟悉各个环节技术点,提升数据库架构设计能力。

https://www.bilibili.com/video/BV1Rg4y1i7VR

http://www.bjpowernode.com/?toutiao

•001.MySQL集群视频教程:主从复制介绍

•002.MySQL集群视频教程:主从复制结构

•003.MySQL集群视频教程:主从复制流程原理

•004.MySQL集群视频教程:多实例安装

•005.MySQL集群视频教程:多实例链接

•006.MySQL集群视频教程:一主多从-配置

•007.MySQL集群视频教程:-一主多从测试

•008.MySQL集群视频教程:双主双从配置

•009.MySQL集群视频教程:双主双从测试

•010.MySQL集群视频教程:多数据源-环境搭建

•011.MySQL集群视频教程:多算数据源实现

•012.MySQL集群视频教程:修复MySLQ主从复制

•013.MySQL集群视频教程:多数据源的问题

•014.MySQL集群视频教程:动态数据源

•015.MySQL集群视频教程:动态数据源执行流程

•016.MySQL集群视频教程:SpringBoot集成多数据源

•017.MySQL集群视频教程:SpringBoot集成多数据源问题

•018.MySQL集群视频教程:SpringBoot集成动态数据源


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5908639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存