【MySQL数据库】MySQL 高级SQL 语句一

news2024/12/24 8:49:31

@[TOC](MySQL 高级SQL 语句

  • 一、MySQL 高级SQL 语句
    • 1.1select -显示表格中一个或数个字段的所有数据记录
    • 1.2distinct不显示重复的数据记录
    • 1.3where有条件查询
    • 1.4and、or且 或
    • 1.5in 显示已知的值的数据记录
    • 1.6between 显示两个值范围内的数据记录
    • 1.7通配符,通常通配符都是跟 like 一起使用的
    • 1.8order by 按关键字排序
  • 二、函数
    • 2.1数学函数
    • 2.2、聚合函数
    • 2.3字符串函数
      • 2.3.1trim(),去除指定格式值
      • 2.3.2concat(x,y),将提供的参数 x 和 y 拼接成一个字符串
      • 2.3.3substr(x,y) 获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
      • 2.3.4length(x) 返回字符串 x 的长度
      • 2.3.5 II符号的用法
      • 2.3.6 replace(x,y,z) 将字符串 z 替代字符串 x 中的字符串 y
    • 2.4 sql语句执行的优先级
    • 2.4 GROUP BY,汇总分组
    • 2.5 HAVING用来过滤由 GROUP BY 语句返回的记录集
    • 2.6别名,字段别名,表格别名
    • 2.7子查询(连接表格)
    • 2.8 EXISTS(用来测试内查询有没有产生任何结果)

)

一、MySQL 高级SQL 语句

1.1select -显示表格中一个或数个字段的所有数据记录

语法:SELECT "字段" FROM "表名";
SELECT Store_Name FROM Store_Info;

在这里插入图片描述

1.2distinct不显示重复的数据记录

语法:SELECT DISTINCT "字段" FROM "表名";
SELECT DISTINCT Store_Name FROM Store_Info;

在这里插入图片描述

1.3where有条件查询

语法:SELECT "字段" FROM "表名" WHERE "条件";
SELECT Store_Name FROM Store_Info WHERE Sales > 1000;

在这里插入图片描述

1.4and、or且 或

语法:SELECT "字段" FROM "表名" WHERE "条件1" {[AND|OR] "条件2"}+ ;
SELECT Store_Name FROM Store_Info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);

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

1.5in 显示已知的值的数据记录

语法:SELECT "字段" FROM "表名" WHERE "字段" IN ('值1', '值2', ...);
SELECT * FROM Store_Info WHERE Store_Name IN ('Los Angeles', 'Houston');

在这里插入图片描述

1.6between 显示两个值范围内的数据记录

语法:SELECT "字段" FROM "表名" WHERE "字段" BETWEEN '值1' AND '值2';
SELECT * FROM Store_Info WHERE Date BETWEEN '2020-12-06' AND '2020-12-10';

在这里插入图片描述

1.7通配符,通常通配符都是跟 like 一起使用的

  • % :百分号表示零个、一个或多个字符
  • _ :下划线表示单个字符
  • ‘A_Z’:所有以 ‘A’ 起头,另一个任何值的字符,且以 ‘Z’ 为结尾的字符串。例如,‘ABZ’ 和 ‘A2Z’ 都符合这一个模式,而 ‘AKKZ’ 并不符合 (因为在 A 和 Z 之间有两个字符,而不是一个字符)。
  • ‘ABC%’: 所有以 ‘ABC’ 起头的字符串。例如,‘ABCD’ 和 ‘ABCABC’ 都符合这个模式。
  • ‘%XYZ’: 所有以 ‘XYZ’ 结尾的字符串。例如,‘WXYZ’ 和 ‘ZZXYZ’ 都符合这个模式。
  • ‘%AN%’: 所有含有 'AN’这个模式的字符串。例如,‘LOS ANGELES’ 和 ‘SAN FRANCISCO’ 都符合这个模式。
  • ‘_AN%’:所有第二个字母为 ‘A’ 和第三个字母为 ‘N’ 的字符串。例如,‘SAN FRANCISCO’ 符合这个模式,而 ‘LOS ANGELES’ 则不符合这个模式。
  • LIKE 匹配一个模式来找出我们要的数据记录
语法:SELECT "字段" FROM "表名" WHERE "字段" LIKE {模式};
SELECT * FROM Store_Info WHERE Store_Name like '%os%';

在这里插入图片描述

1.8order by 按关键字排序

语法:SELECT "字段" FROM "表名" [WHERE "条件"] ORDER BY "字段" [ASC, DESC];
#ASC 是按照升序进行排序的,是默认的排序方式。
#DESC 是按降序方式进行排序。
SELECT Store_Name,Sales,Date FROM Store_Info ORDER BY Sales DESC;

在这里插入图片描述

二、函数

2.1数学函数

函数解释
abs(x)返回 x 的绝对值
rand()返回 0 到 1 的随机数
mod(x,y)返回 x 除以 y 以后的余数
power(x,y)返回 x 的 y 次方
round(x)返回离 x 最近的整数
round(x,y)保留 x 的 y 位小数四舍五入后的值
sqrt(x)返回 x 的平方根
truncate(x,y)返回数字 x 截断为 y 位小数的值
ceil(x)返回大于或等于 x 的最小整数
floor(x)返回小于或等于 x 的最大整数
greatest(x1,x2…)返回集合中最大的值,也可以返回多个字段的最大的值
least(x1,x2…)返回集合中最小的值,也可以返回多个字段的最小的值

在这里插入图片描述

在这里插入图片描述

2.2、聚合函数

函数解释
avg()返回指定列的平均值
count()返回指定列中非 NULL 值的个数
min()返回指定列的最小值
max()返回指定列的最大值
sum(x)返回指定列的所有值之和
  • #count(*) 包括了所有的列的行数,在统计结果的时候,不会忽略列值为 NULL
  • #count(列名) 只包括列名那一列的行数,在统计结果的时候,会忽略列值为 NULL 的行

在这里插入图片描述

2.3字符串函数

函数解释
trim()返回去除指定格式的值
concat(x,y)将提供的参数 x 和 y 拼接成一个字符串
substr(x,y)获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z)获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x)返回字符串 x 的长度
replace(x,y,z)将字符串 z 替代字符串 x 中的字符串 y
upper(x)将字符串 x 的所有字母变成大写字母
lower(x)将字符串 x 的所有字母变成小写字母
left(x,y)返回字符串 x 的前 y 个字符
right(x,y)返回字符串 x 的后 y 个字符
repeat(x,y)将字符串 x 重复 y 次
space(x)返回 x 个空格
strcmp(x,y)将字符串 x 反转

2.3.1trim(),去除指定格式值

SELECT TRIM ([ [位置] [要移除的字符串] FROM ] 字符串);
#[位置]:的值可以为 LEADING (起头), TRAILING (结尾), BOTH (起头及结尾)。 
#[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。

在这里插入图片描述

2.3.2concat(x,y),将提供的参数 x 和 y 拼接成一个字符串

SELECT concat(Region, Store_Name) FROM location WHERE Store_Name = 'Boston';

在这里插入图片描述

2.3.3substr(x,y) 获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同

  • substr(x,y,z) 获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串

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

2.3.4length(x) 返回字符串 x 的长度

SELECT Region,length(Store_Name) FROM location;

在这里插入图片描述

2.3.5 II符号的用法

#如sql_mode开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似。

SELECT Region || ' ' || Store_Name FROM location WHERE Store_Name = 'Boston';

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

2.3.6 replace(x,y,z) 将字符串 z 替代字符串 x 中的字符串 y

在这里插入图片描述

2.4 sql语句执行的优先级

FROM
<left table>
ON
<join_condition>
<join_type>
JOIN
<right_table>
WHERE
<where condition>
GROUP BY
<group_by_list>
HAVING
<having_condition>
SELECT
DISTINCT
<select list>
ORDER BY
<order_by_condition>
LIMIT
<limit number

2.4 GROUP BY,汇总分组

  • 对GROUP BY后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

  • GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现;

  • 凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后面

在这里插入图片描述

2.5 HAVING用来过滤由 GROUP BY 语句返回的记录集

  • HAVING ----用来过滤由 GROUP BY 语句返回的记录集,通常与 GROUP BY 语句联合使用
    HAVING 语句的存在弥补了 WHERE 关键字不能与聚合函数联合使用的不足。
  • where执行优先级在group by前面所有不能对group by语句返回的记录做过滤所以需要having
语法:SELECT "字段1", SUM("字段2") FROM "表格名" GROUP BY "字段1" HAVING (函数条件);
SELECT Store_Name, SUM(Sales) FROM Store_Info GROUP BY Store_Name HAVING SUM(Sales) > 1500;

在这里插入图片描述

2.6别名,字段别名,表格别名

语法:SELECT "表格別名"."字段1" [AS] "字段別名" FROM "表格名" [AS] "表格別名";
SELECT A.Store_Name Store, SUM(A.Sales) "Total Sales" FROM Store_Info A GROUP BY A.Store_Name;

在这里插入图片描述

2.7子查询(连接表格)

语法:SELECT "字段1" FROM "表格1" WHERE "字段2" [比较运算符] 				#外查询
(SELECT "字段1" FROM "表格2" WHERE "条件");	 #内查询

#可以是符号的运算符,例如 =、>、<、>=、<= ;也可以是文字的运算符,例如 LIKE、IN、BETWEEN
SELECT SUM(Sales) FROM Store_Info WHERE Store_Name IN 
(SELECT Store_Name FROM location WHERE Region = 'West');

SELECT SUM(A.Sales) FROM Store_Info A WHERE A.Store_Name IN 
(SELECT Store_Name FROM location B WHERE B.Store_Name = A.Store_Name);

在这里插入图片描述

2.8 EXISTS(用来测试内查询有没有产生任何结果)

#如果有的话,系统就会执行外查询中的SQL语句。若是没有的话,那整个 SQL 语句就不会产生任何结果。
语法:SELECT "字段1" FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件");
SELECT SUM(Sales) FROM Store_Info WHERE EXISTS (SELECT * FROM location WHERE Region = 'West');

在这里插入图片描述

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

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

相关文章

都2023年了,JavaScript ES6后的新(lao)特性,你用起来了吗?

前言 JavaScript ES6 指的是 ECMAScript 6&#xff0c;它是 JavaScript 语言第六版的规范。ES6 包含了很多新特性和语法糖&#xff0c;涵盖了从 ES6 开始至今所增加的所有特性。 因此&#xff0c;ES6 新特性是指从 ES6 开始新增到当前时刻所有的新特性&#xff0c;包括但不限…

FPGA XDMA 中断模式实现 PCIE X8 HDMI视频采集 提供工程源码和QT上位机源码

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案视频采集和缓存XDMA简介XDMA中断模式QT上位机及其源码 5、vivado工程详解6、上板调试验证7、福利&#xff1a;工程代码的获取 1、前言 PCIE&#xff08;PCI Express&#xff09;采用了目前业内流行的点对点串…

四肽-21——改善皮肤紧实感、光滑感和弹性

简介 四肽-21是一种来源于皮肤自身的四胜肽&#xff0c;它结构独特、能高效的促进细胞外基质合成&#xff0c;从而减少各种皱纹和改善皮肤衰老现象。与市场上非常受欢迎的基肽(Matrixyl&#xff09;相比&#xff0c;四肽-21效果更为突出。 Tetrapeptide-21 is a type of tetra…

LeetCode - #85 最大矩形(Top 100)

文章目录 前言1. 描述2. 示例3. 答案题解 1题解 2 关于我们 前言 本题为 LeetCode 前 100 高频题 本题由于没有合适答案为以往遗留问题&#xff0c;最近有时间将以往遗留问题一一完善。 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&am…

解密后无法加载到指定模版,且模版名为空

问题如图&#xff1a; 原因&#xff1a;因为改变了项目的集成管理&#xff0c;导致变量丢失

Redis原理 - 五种数据类型的底层结构关系

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis原理 - 五种数据类型的底层结构关系 | CoderMast编程桅杆https://www.codermast.com/database/redis/base-datatype-implement.html #字符串对象String String 是 Redis 中最常见的数据存储类型。 其基本编码方式是 …

安卓蓝牙SDP协议数据包

1. SDP概念 我们想一想&#xff0c;两个陌生的设备&#xff08;之前未有过交互&#xff09;如何去发现对方支持什么服务呢&#xff1f;比如Host端的Controller怎么知道远程蓝牙设备是蓝牙耳机还是HID遥控器呢&#xff1f;我们需要一种协议&#xff0c;这种协议在蓝牙设备配对成…

Git-Desktop【使用说明】

仓库操作 简单的创建仓库、删除仓库 删除点击 Remove 即可 文件操作 1、提交文件到本地仓库 2、修改文件 Git没有修改文件这一说&#xff0c;它只会再次提交一个新的版本到仓库中&#xff0c;提交修改后的文件其实是在仓库创建了一个新的文件&#xff0c;只不过是一个不同的…

Optano.Modeling 简单教程

前言 在工作中遇到两个需求&#xff0c;将两个数学公式用 .NET 的数学库找到数学公式中某个未知数的最优解&#xff0c;我尝试了几个数学库都没有办法完美解决我的需求&#xff0c;直到找到 Optano.Modeling Optano.Modeling 官网&#xff1a;Optano.Modeling 官网 Optano.Mo…

AI操作视频的工具最新最强集合

AI的进化日新月异&#xff0c;很多之前只是在想象中的操作&#xff0c;已经有很多可以使用AI来完成了。最新的Stable Diffusion,ControlNet,EBsynth有哪些神奇的应用&#xff0c;如何一键替换视频中人物和场景&#xff0c;如何根据文字描述即可生成梦幻视频&#xff1f;我们整理…

DFS/回溯/动态规划算法的融会贯通

学算法认准 labuladong 后台回复课程查看精品课 点击卡片可搜索文章&#x1f447; 在线学习网站&#xff1a; https://labuladong.gitee.io/algo/ 经常有读者后台问我&#xff0c;DFS算法/回溯算法/动态规划算法之间的区别和联系是什么&#xff1f; 对于这个问题&#xff0c;我…

私有化部署的无忧·企业文档2.1.7新版本核心功能介绍

无忧企业文档是一款针对企业用户提供在线文档、协同编辑、知识管理的基础化办公工具&#xff0c;产品采用B/S构架。功能覆盖场景包括&#xff1a;在线文档的私有化部署、团队协同、知识管理、在线文档识别的扩展、文档权限化管理等等场景。本次2.1.7版本更新了以下几个核心功能…

【机器学习】十大算法之一 “线性回归”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

什么是事件委托

文章目录 导文文章重点具体而言&#xff0c;事件委托包含两个主要角色&#xff1a;通过使用事件委托&#xff0c;可以实现以下优势&#xff1a; 代码示例 导文 事件委托是一种在软件开发中常用的设计模式&#xff0c;用于处理事件和回调函数。它允许一个对象&#xff08;委托对…

数据帧转发过程中IP地址及MAC地址的变化

数据帧在交换机间转发 帧经过交换机时&#xff0c;其源、目标MAC是不会变的。 交换机内部的CPU会在每个端口成功连接时&#xff0c;通过将MAC地址和端口对应&#xff0c;形成一张MAC表。在今后的通讯中&#xff0c;发往该MAC地址的数据包将仅送往其对应的端口&#xff0c;而不…

odoo字段加密以及模糊显示

在信息时代&#xff0c;信息本身是把双刃剑&#xff0c;一方面它服务于我们的生产、生活、使我们受益&#xff1b; 一方面,信息的泄露可能对我们构成巨大的威胁。因此&#xff0c;客观上就需要一种有力的安全措施来保护机密数据不被窃取或篡改 。 数据加密与解密从宏观上讲是非…

[2022]DyOb-SLAM : Dynamic Object Tracking SLAM System

1.作者 Rushmian Annoy Wadud、Wei Sun 2.时间 2022 3.整体架构 DyOb-SLAM是DynaSLAM和VDO-SLAM的结合: 基于先验信息使用Mask RCNN分割出动态目标通过基于光流和场景流的算法对运动目标进行跟踪对静态点进行BA优化 输出&#xff1a; 当前帧显示ORB特征以及Masj信息和对…

探索Zabbix API:企业监控管理工具

新钛云服已累计为您分享754篇技术干货 Zabbix是一种流行的开源监控解决方案&#xff0c;其强大的API功能为用户提供了灵活且可扩展的监控管理能力。本文将介绍Zabbix API的基本概念和用法&#xff0c;以及如何利用API来简化监控配置、数据获取和自动化任务等方面的工作。 在现代…

数据结构 树

树的基本概念 树是一种非线性的数据结构&#xff0c;它由节点&#xff08;node&#xff09;和边&#xff08;edge&#xff09;组成。树的基本概念包括以下要点&#xff1a; 树由一个根节点&#xff08;root&#xff09;开始&#xff0c;根节点没有父节点&#xff0c;它可以有…

华为OD机试之阿里巴巴找黄金(III)(Java源码)

文章目录 阿里巴巴找黄金&#xff08;III&#xff09; 阿里巴巴找黄金&#xff08;III&#xff09; 题目描述 一贫如洗的椎夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0~N的箱子&#xff0c;每个箱子上面贴有一个数字。阿里…