【MySQL数据库】SQL查询语句总结

目录

一、查询数据

1.1 基本查询语句

1.2 表单查询

1.3 WHERE子句

1.3.1 IN关键字查询

1.3.2 Between查询范围

1.3.3 Like匹配查询

1.3.4 AND多条件查询(等同于&&)

1.3.5 OR多条件查询(等同于||)

1.3.6 LIMIT子句

1.3.7 对查询结果排序

1.3.8 分组查询

二、集合函数

三、正则表达式查询

四、查询函数

4.1 联合查询 : UNION

4.2 组合查询

4.3 嵌套查询

4.4 其它相关函数


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

一、查询数据

1.1 基本查询语句

MySQL中SELECT的基本语法形式如下:
SELECT 属性列表
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 字段名1]
[ORDER BY 属性名2 [ASC|DESC]]
  • SELECT 关键字用于指定要查询的属性列表,可以是单个属性或多个属性,用逗号分隔。
  • FROM 关键字用于指定要查询的表名。
  • WHERE 子句用于筛选满足特定条件的记录。条件表达式可以是比较运算符(如 =, <, >)和逻辑运算符(如 AND, OR)的组合。
  • GROUP BY 子句用于按照指定字段对结果进行分组。通常与聚合函数(如 COUNT, SUM)一起使用。
  • ORDER BY 子句用于按照指定属性对结果进行排序。默认按照升序排序,可以使用 ASC 表示升序,DESC 表示降序。
从students表中查询出id,name,age 3个字段的索引记录:
select id,name,age from students;

从students表中查询age大于16的记录,按照age字段降序进行排序:

select id,name,age from students where age>16 order by age desc;

1.2 表单查询

使用“*”查询所有字段(*可以表示所有字段,但不能改变字段的排列顺序 ):
select * from students;

查看数据库中的表结构:
desc 表名;

查询指定字段
select 字段名1,字段名2 from 表名;

去除重复数值(字段名就是要去除重复数值的列 ) 
select distinct 字段名 from 表名;

1.3 WHERE子句

查询指定记录(Where 条件表达式):
select id,name,age from students where id=1;

1.3.1 IN关键字查询

IN关键字可以判断某个字段的值是否在指定的整合中。 如果字段的值在集合中,则满足查询条件,该记录将被查询出来;如果不在集合中,则不满足查询条件。其语法规则如下 :
[NOT] IN (元素1,元素2....元素n)
集合中的元素为字符时必须加上引号

1.3.2 Between查询范围

判读字段的值是否在指定范围,语法规则如下:
[NOT] BETWEEN 取值1 AND 取值2
取值1:大于等于这个值
取值2:小于等于这个值

1.3.3 Like匹配查询

匹配字符串是否相等,语法规则如下:
[NOT] like ‘字符串’
此处LIKE与等于号(=)是等价的

使用like匹配带有通配符‘%’的字符串‘王%’,字符串中包含通配符时,‘=’不能代替like。

使用like匹配带有通配符‘_’匹配单个字符,下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。

1.3.4 AND多条件查询(等同于&&)

联合多个条件进行查询,语法规则如下:
条件表达式1 AND 条件表达式2

1.3.5 OR多条件查询(等同于||)

只要满足几个查询条件中的其中一个,记录就会被查询出来,语法规则如下:
条件表达式1 OR 条件表达式2

当AND与OR一起使用时,AND要比OR先运算。

1.3.6 LIMIT子句

LIMIT限制查询结果的数量。LIMIT不指定初始位置,从第一条记录开始显示。语法规则如下:
LIMIT 记录数
limit n,m 
n:开始位置
m:要检索的行数
limit检索出来的第一行为行0,而不是行1,因此,limit 1,1将检索出第二行而不是第一行。

1.3.7 对查询结果排序

ORDER BY 对记录进行排序。语法规则如下:
ORDER BY 属性名 [ASC | DESC]
ASC:升序(默认升序)
DESC:降序
可以给多个列排序,只需要指定列名,列名之间用逗号分开即可。

ORDER BY 和 LIMIT组合:能够找出一个列中最高或最低的值。
select 字段名 from 表名
order by 字段名 DESC|ASC
LIMIT 1;

1.3.8 分组查询

GROUP BY 将查询结果按某个字段或多个字段进行分组。字段中的值相等的为一组。
语法规则如下:
GROUP BY 属性名 [having 条件表达式]

二、集合函数

包括COUNT()、SUM()、AVG()、MAX()和MIN()。
当需要对表中的记录求和、求平均值、查询最大值和查询最小值等操作时,可以使用集合函数。GROUP BY关键字通常需要与集合函数起使用。
COUNT()用来统计记录的条数;
SUM()用来计算字段的值的总和;
AVG()用来计算字段的值的平均值;
MAX() 用来查询字段的最大值;
MIN()用来查询字段的最小值。

三、正则表达式查询

正则表达式是用某种模式去匹配一类字符串的一一个方式。例如,使用正则表达式可以查询出包含A、B和C其中任一字母的字符串。正则表达式的查询能力比通配字符的查询能力更强大,而且更加的灵活。正则表达式可以应用于非常复杂查询。 使用REGEXP关键字来匹配查询正则表达式。其基本形式如下:
属性名 REGEXP '匹配方式'

“属性名”参数表示需要查询的字段的名称;
“匹配方式” 参数表示以哪种方式来进行匹配查询。

"^"查询以特定字符或者字符串开头的记录。
"$"查询以特定字符或者字符串结尾的记录。
"."匹配字符串中的任意一个字符。

注:“.”和“_”的区别
两个都可以代替任意一个字符进行查询, 但“.”只能用于regexp关键字进行匹配。
"[字符集合]"匹配所包含的任意一个字符。
"[^字符集合]"匹配指定字符以外的字符。

匹配指定字符串
正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用符号“|”隔开。只要匹配这些字符串中的任意一个即可。
“*”和“+”
匹配多个字符,*和+都可以匹配多个该符号之前的字符。
“+”:至少表示一个字符
“*”:可以表示0个字符
‘{m}’或者’{m,n}’来指定字符串 连续出现的次数
{m}:m是一个非负整数。匹配确定的 m 次。
{m,n}:m 和 n 均为非负整数,其中m <= n。

四、查询函数

4.1 联合查询 : UNION

并操作 union、交操作 intersect、差操作 except

UNION用于合并具有相同字段结构的两个表的内容,主要用在一个结果中集中显示不同表的内容,语法:

select * from venus1
union
select * from venus2
union查询默认不返回重复记录
union查询的表的字段必须一样
union查询的数据类型必须能兼容

#union查询结果只增加了行数而列数不变

4.2 组合查询

id = 1 order by 4 -- + 正常
id = 1 order by 5 -- + 异常
结论:当前语句查询了四列

4.3 嵌套查询

[NOT]IN、ANY、ALL、[NOT]EXISTS
1. 子查询
2. 子查询可以继续嵌套
3. 子查询中不可以使用order by子句,只对最后结果排序
4. 子查询要用括号括起来
子查询结果为集合时可用如下关键字判断:
[NOT]IN                               [不]包含其中
ANY//ALL                             任何一个//所有的
[NOT]EXISTS                      [不]存在

4.4 其它相关函数

left(s,n)
#返回字符串s最左边的字符( n是个数)。
right(s,n)
#返回字符串s最右边的字符。
substr(s,n,len) mid(s,n,len)
#截取字符串s的第n个字符,且截取长度为len。
lpad(string,length,’str2’) rpad(string,length,’str’)
#string:需要填充的字符串。length:填充之后的总长度 str:填充字符串,默认空格。
LOCATE(‘str’,’str1’) LOCATE(str,str1,pos) locate(‘a’,’locala’,5)
#返回str在str1中第一次出现的位置 pos--从pos位置开始检索。
insert(str1,pos,len,str2)
#str1:指定字符串 pos:开始被替换的位置 len:被替换字符串长度 str2:新字符串。
instr(field, str)
#返回field字符串中出现str字符串的位置。
position(str1 in str2)
#返回字符串中第一次出现的子字符串的位置,若没有返回0。
concat(str1, str2,...) select concat(“abc”,NULL,”fg”) NULL
#返回结果为连接参数产生的字符串。
concat_ws(separator, str1, str2, ...) select concat_ws(“+”,”123”,”345”) 123+345
#用第一个参数作为连接符号将字符串连接。
group_concat(str1)
#将group by产生的同一个分组中的值连接起来,返回一个字符串。
if(expr,v1,v2) select if(1<2,1,0);
#expr:条件 满足条件返回V1,不满足条件返回V2。
case when expr then v1 else v2 end
#满足expr,则返回V1,不满足则返回V2。
sleep(N)
#执行select sleep(N)可以让此语句运行N秒。
oct()
#转换为8进制。
ord()
#返回第一个字符串的第一个字符的ascii值。
hex()
#转换为16进制。
char()
#转换为字符串。
ascii()
#ASCII值。

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

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

相关文章

【Node.js】笔记整理4 - 版本管理工具nvm

写在最前&#xff1a;跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识&#xff0c;需要格外注重实战和官方技术文档&#xff0c;文档建议作为手册使用 系列文章 【Node.js】笔记整理 1 - 基础知识【Node.js】笔记整理 2 - 常用模块【Node.js】笔记整理 3 - n…

【docker】docker安装与优化

目录 一、安装Docker 1、关闭防火墙 2、安装依赖包 3、设置阿里云镜像源 4、安装Docker-CE社区版并设置为开机自启动 5、查看Docker信息 二、设置镜像加速 1、申请加速地址 2、实现加速操作 三、网络优化 1、如何网络优化 2、具体操作 四、docker-server端配置文件…

前端:实现二级菜单(点击实现二级菜单展开)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

【Excel】WPS快速按行筛选过滤

用的筛选都是进行列数据过滤&#xff0c;那么遇到一个情况需要行数据过滤查看数据 行过滤 选中行&#xff0c;然后右键菜单&#xff0c;行筛选。 列过滤

7Docker搭建es和kibana

一、安装es 1.拉取镜像 sudo docker pull elasticsearch:7.12.0 elasticsearch:7.12.0:我安装的版本是7.12.0&#xff0c;可以根据实际的情况安装 创建docker容器挂在的目录&#xff1a; sudo mkdir -p /opt/elasticsearch/config sudo mkdir -p /opt/elasticsearch/data s…

使用Python爬取快手视频与评论(App与Web端分析)

文章目录 1. APP端抓包配置2. APP端抓包分析3. Web端抓包分析4. 爬虫代码实现 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a…

13:kotlin类和对象 -- 属性(Properties)

定义属性 类属性可使用var和val定义 class Address {var name: String "Holmes, Sherlock"var street: String "Baker"var city: String "London"var state: String? nullvar zip: String "123456" }属性使用 fun copyAddres…

【虚拟机】Docker基础 【一】

1.1.部署MySQL 首先&#xff0c;我们利用Docker来安装一个MySQL软件&#xff0c;大家可以对比一下之前传统的安装方式&#xff0c;看看哪个效率更高一些。 如果是利用传统方式部署MySQL&#xff0c;大概的步骤有&#xff1a; 搜索并下载MySQL安装包上传至Linux环境编译和配置…

低调使用。推荐一个 GPT4 Turbo、Vision、GPTs、DELL·E3 等所有最新功能同步可用国内网站

在 11 月 6 日&#xff0c;万众期待的 OpenAI DevDay&#xff0c;ChatGPT 发布了一系列新的产品&#xff0c;其中推出了 GPT4 Turbo&#xff0c;并且将GPT4 Vision&#xff0c;DELLE3 等等能力全部集合到一起&#xff0c;不需要再分开使用&#xff0c;原来的局限的文本聊天也进…

php订单发起退款(余额和微信支付)

index.html <a class"btn btn-danger btn-change btn-tuikuan btn-disabled" href"javascript:;"><i class"fa fa-tuikuan"></i> 订单退款</a>-->order.js // 为表格绑定事件Table.api.bindevent(table);//退款按钮…

【经验分享】openGauss 客户端(Data Studio / DBeaver)连接方式

前言 本篇介绍了openGauss常用的客户端连接工具Data Studio和DBeaver 01 客户端工具 openGauss部署之后&#xff0c;在服务器上提供了在命令行下运行的数据库连接工具gsql。此工具除了具备操作数据库的基本功能&#xff0c;还提供了若干高级特性&#xff0c;便于用户使用。…

建设“参与城市”大学--SMU在2023年绿色金融全球论坛上分享观点

2023年11月21日&#xff0c;由新加坡管理大学&#xff08;SMU&#xff0c;简称新大&#xff09;和中国人民大学&#xff08;RUC&#xff0c;简称人大&#xff09;联合主办的“绿色金融与治理&#xff1a;从承诺到行动”全球论坛在北京召开。论坛汇集了来自新加坡、中国及世界各…

【C++高阶(六)】哈希的应用--位图布隆过滤器

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; 哈希的应用 1. 前言2. 位图的概念以及定义3. 位…

记一篇Centos7安装innodb_ruby

安装innodb_ruby过程非常坎坷&#xff0c;这里记录下安装过程&#xff0c;有些坑当时没有记录下来&#xff0c;主要把完成安装过程就记录下来 yum安装ruby默认的会安装ruby2.0.0版本&#xff0c;但是在安装innodb_ruby时&#xff0c;会报错&#xff0c;提示至少需要2.4版本以上…

探索 Rollup:简化你的前端构建流程

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 这是一个系列博文&#xff0c;本文是第四篇&#xff0c;前三篇链接&#xff1a; 1、Rust UI开发&#xff08;一&#xff09;&#xff1a;使用iced构建UI时…

Amazon CodeWhisperer 使用体验

文章作者&#xff1a;STRIVE Amazon CodeWhisperer 是最新的代码生成工具&#xff0c;支持多种编程语言&#xff0c;如 java,js,Python 等&#xff0c;能减少开发人员手敲代码时间&#xff0c;提升工作效率。PS:本人是一名 CodeWhisperer 业余爱好者 亚马逊云科技开发者社区为开…

模块的学习

模块合包的基本概念&#xff1a; 模块&#xff08;module&#xff09;&#xff1a;在python中&#xff0c;xx.py文件&#xff0c;就可以被看作模块 包&#xff08;package&#xff09;: 用来管理和存放模块的文件夹&#xff0c;就被称为包&…

如何集成一个TypeScript开发环境?

首先要安装个node.js。Node.js (nodejs.org) 然后我们随便建一个文件夹&#xff0c;并且打开它运行到终端 然后再运行命令&#xff1a; npm install typescript -g 成功后 尝试使用 tsc -v 查看版本 接下来再使用命令&#xff1a; tsc --init 我们在.ts文件中尝试输出一些…

解决uview中uni-popup弹出层不能设置高度问题

开发场景&#xff1a;点击条件筛选按钮&#xff0c;在弹出的popup框中让用户选择条件进行筛选 但是在iphone12/13pro展示是正常&#xff0c;但是切换至其他手机型号就填充满了整个屏幕&#xff0c;需要给这个弹窗设置一个固定的高度 iphone12/13pro与其他型号手机对比 一开始…