C05S14-MySQL高级语句

devtools/2024/12/27 5:37:21/

一、MySQL高级语句

MySQL的高级语句主要是高级查询语句,实现复杂条件下的数据查询。

1. 单表查询

1.1 ORDER BY排序查询

要对数据进行排序可以使用ORDER BY子句。MySQL的ORDER BY子句可以按照一个或多个列的值进行升序排序(ASC)或降序排序(DESC),默认是顺序排序。

mysql">SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC | DESC];
  • 当根据多个字段排序,会先按照指定的第一个字段排序,然后再在第一个字段相同的数据内进行排序。

1.2 WHERE条件查询

MySQL的WHERE子句可以按照一个或多个条件进行数据的查询,使用AND或者OR分隔多个条件,AND表示指定的条件要同时成立,OR表示只用满足其中的一个。

mysql">SELECT 字段名 FROM 表名 WHERE 过滤条件;

1.3 GROUP BY分组查询

GROUP BY子句可以根据一个或多个列对数据进行分组,但是需要结合聚合函数一起使用。

常见的聚合函数包括:

  • COUNT():计数。
  • SUM():求和。
  • AVG():求平均值。
  • MAX():求最大值。
  • MIN():求最小值。
mysql">SELECT 字段名1, 聚合函数(字段名2)
FROM 表名
GROUP BY 字段名1;
  • 聚合函数的字段要和分组的字段不相同。
  • 查询多个字段时,要按照非统计(非聚合)的字段进行分组。

1.4 HAVING过滤语句

HAVING子句是用于分组后的数据进行过滤,因此需要结合GROUP BY子句使用。

mysql">SELECT 字段名1, 聚合函数(字段名2)
FROM 表名
GROUP BY 字段名1;
HAVING 过滤条件;
  • 聚合函数不是只能写在SELECT里面,HAVING语句中也可以使用。如果SELECT语句中没有聚合函数,HAVING执行语句中有函数,SQL语句也能够正常执行。

1.5 AS设置别名

AS语句可以设置数据表或者字段的别名。

mysql"># 设置表的别名
SELECT 字段名 FROM 表名 AS 别名;# 设置字段的别名
SELECT 字段名 AS 别名 FROM 表名;

1.6 通配符

MySQL中的通配符通常和LIKE子句搭配使用,用于设置查询条件时的模糊匹配。常见的通配符包括:%、_,%表示0个或多个字符,_表示单个字符。

1.7 子查询

子查询又称为嵌套查询,在SELECT语句中嵌套其他的SELECT语句。执行顺序是先执行子语句,再执行父语句。

  • IN操作符

    用于检查指定列的值是否匹配列表中的值或子查询中的任何值。

    mysql">SELECT 字段名 FROM 表名 WHERE 字段名 IN (子查询语句); 
    
  • EXISTS操作符

    用于检查子查询是否有符合条件的数据行,如果有一条或多条符合就返回True,否则返回False。

    mysql">SELECT 字段名 FROM 表名 WHERE EXISTS (子查询语句); 
    

    外查询依赖于子查询的返回结果,如果子查询返回True,外部查询才会执行。

2. 连接查询

连接查询是一种将多张数据表中的数据行组合在一起的查询操作,这些行基于表的共同字段或条件匹配。

2.1 INNER JOIN内连接

mysql">SELECT 字段名
FROM 表名1 INNER [OUTER] JOIN 表名2 ON 表名1.字段名 = 表名2.字段名;
  • 在内连接全表中,只显示两个表相匹配的部分,也就是两张数据表的交集。

2.2 LEFT JOIN左连接

mysql">SELECT 字段名
FROM 表名1 LEFT [OUTER] JOIN 表名2 ON 表名1.字段名 = 表名2.字段名;
  • 在左连接的全表中,左表的数据都会显示,右表的数据只显示匹配部分,不匹配的部分为空。

2.3 RIGHT JOIN右连接

mysql">SELECT 字段名
FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 表名1.字段名 = 表名2.字段名;
  • 在右连接的全表中,右表的数据都会显示,左表的数据只显示匹配部分,不匹配的部分为空。

二、视图

视图(View)是一种虚拟的表,视图的内容并不是存储在数据库中的实际数据,而是根据定义视图的查询语句而动态生成的。也就是说,视图和定义时指定的数据表相关联,如果该数据表中的数据发生变化,那么视图查询到的结果也会相对应改变。

mysql"># 创建视图
CREATE VIEW 视图名 AS 子查询语句;
# 删除视图
DROP VIEW 视图名;

视图(View)和表(Table)的区别:

  • 存储方式:数据表保存的是真实数据,存储在硬盘当中;视图存储的是查询结果集合。
  • 数据更新:更新表可以更新视图,更新视图也可以更新表。一般情况下,视图仅用于展示数据。
  • 存储空间:数据表占用数据库的实际空间,而视图不占用数据库的空间。

http://www.ppmy.cn/devtools/145727.html

相关文章

Mimicking-Bench:首个通过模仿大规模人类动作数据学习通用人形机器人场景交互技能的综合基准(具有 11K 对象形状和 23K 人机交互动作)

2024-12-24,由清华大学、Galbot、上海启智研究所和上海人工智能实验室联合创建了Mimicking-Bench数据集,这个数据集首次为通过模仿人类动作学习通用人形机器人场景交互技能提供了大规模的参考,对于机器人学和现实世界应用具有重要意义。 一、…

HUB、交换机、路由器和串口服务器

HUB:HUB是集线器,支持半双工的工作模式,就像对讲机那样。工作在物理层,收到数据后,会向其他端口转发,只是起到“中转站的作用”;而且对带宽是共享的,像河流一样,分的支流…

关于uni-forms组件的bug【提交的字段[‘*‘]在数据库中并不存在】

问题:在使用 uni-forms校验的时候,出来的一个问题,这个字段都没有设置校验的规则,不知道什么原因就出现了下图的问题: 解决办法: 在uni-forms-item 添加key 值就解决了 原因不知道,有大佬发现…

webauthn介绍及应用

1、webauthn概念介绍 官网:https://webauthn.io/ 1.1、什么是webauthn? webauthn即Web Authentication,是一个符合W3C标准的Web认证规范。它通过公私钥加密技术,实现无密码认证,用户仅需通过pin码、指纹、面部识别、…

CI/CD是什么?

CI/CD 定义 CI/CD 代表持续集成和持续部署(或持续交付)。它是一套实践和工具,旨在通过自动化构建、测试和部署来改进软件开发流程,使您能够更快、更可靠地交付代码更改。 持续集成 (CI):在共享存储库中自动构建、测试…

什么,不用 Tomcat 也能运行 Java web?

在 Java web 开发领域,传统的 Tomcat 服务器一直占据着重要地位。但如今,Blade 框架的出现为我们提供了一种全新的开发体验,它无需依赖 Tomcat 便可运行 Java web 应用。 一、Blade 框架简介 是一款轻量级且高性能的 Java web 框架。其设计理…

PPT画图——如何设置导致图片为600dpi

winr,输入regedit打开注册表 按路径找,HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\PowerPoint\Options(xx为版本号,16.0 or 15.0或则其他)。名称命名:ExportBitmapResolution 保存即可,…

【Kafka基础】10个Kafka基础知识,面试经常会问到

前几天面试一个测试开发,问了Kafka的基础性知识,受试者没有回答出来,在项目中介绍有使用Kafka但是对kafka的基础知识掌握的却不牢固不全面,今天列出Kafka经常会问到的10个基础知识,供大家参考学习 一、你会在哪些场景选…