【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值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java SSM框架实现母婴儿用品网站系统项目【项目源码+论文说明】

基于java的SSM框架实现母婴儿用品网站系统演示 摘要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 母婴用品网站&#xff0c;主要的模块包括管理员&#xff1b;主页、个人中心、用户管理、商品分…

架构图是什么,该怎么制作?

架构图是指可视化展示软件、系统、应用程序、网络等各种体系结构的一类图表或图形&#xff0c;它能够形象地展示体系结构中各个组成部分和它们之间的关系。 架构图的类型 架构图的种类比较多&#xff0c;逐一列举不太合适&#xff0c;这里只列举一些常见的架构图类型&#…

Oracle E-Business Suite软件 任意文件上传漏洞(CVE-2022-21587)

0x01 产品简介 Oracle E-Business Suite&#xff08;电子商务套件&#xff09;是美国甲骨文&#xff08;Oracle&#xff09;公司的一套全面集成式的全球业务管理软件。该软件提供了客户关系管理、服务管理、财务管理等功能。 0x02 漏洞概述 Oracle E-Business Suite 的 Oracle…

LeetCode刷题---斐波那契数列模型

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、第N个泰波那契数 题目链接&#xff1a;1137. 第 N 个泰波那契数 题目描述 泰波那契序列Tn定义如下: T00,T11,T2 1,且在n&g…

2023.11.30 homework

兴趣最重要了&#xff0c;没兴趣不喜欢勉强带来的苦楚&#xff0c;并不能促使变好变优秀。 虽然我们的社会环境依旧很残酷&#xff0c;各种各样的硬性要求。

Docker + Jenkins + Nginx实现前端自动化部署

目录 前言一、前期准备工作1、示例环境2、安装docker3、安装Docker Compose4、安装Git5、安装Nginx和Jenkinsnginx.confdocker-compose.yml 6、启动环境7、验证Nginx8、验证Jenkins 二、Jenkins 自动化部署配置1、设置中文2、安装Publish Over SSH、NodeJS&#xff08;1&#x…

PC端数据列表有头像显示头像,没有头像显示名字的第一个字

PC端数据列表有头像显示头像&#xff0c;没有头像显示名字的第一个字 .charAt(0) 是 JavaScript 字符串对象的方法&#xff0c;用于获取字符串的第一个字符。 字符串中的字符位置是从 0 开始的&#xff0c;所以.charAt(0) 就表示获取字符串的第一个字符。 <el-table ref&qu…

Android Studio Giraffe-2022.3.1-Patch-3安装注意事项

准备工作&#xff1a; android studio下载地址&#xff1a;https://developer.android.google.cn/studio/releases?hlzh-cn gradle下载地址&#xff1a;https://services.gradle.org/distributions/ 比较稳定的网络环境&#xff08;比较android studio相关的依赖需要从谷歌那边…

PlantUML语法(全)及使用教程-类图

目录 1. 类图1.1、什么是类图1.2、元素声明1.3、类之间的关系1.4、关系上的标签1.5、在元素名称和关系标签中使用非字母1.6、添加方法 1. 类图 类图的设计语法与编程语言的传统语法相似。这种相似性为开发人员提供了一个熟悉的环境&#xff0c;从而使创建图表的过程更简单、更直…

智慧公厕为城市智慧管理提供强力有的数据支持

在当今科技飞速发展的时代&#xff0c;城市管理正面临着前所未有的挑战与机遇。而在这个城市发展的脚步日新月异的同时&#xff0c;一项看似不起眼的技术却正在默默地为城市的智慧管理提供着强有力的支持——那就是智慧公厕。这些不起眼的公共设施不仅仅是人们日常生活的一部分…

PHP+ajax+layui实现双重列表的动态绑定

需求&#xff1a;商户下面有若干个门店&#xff0c;每个门店都需要绑定上收款账户 方案一&#xff1a;每个门店下面添加页面&#xff0c;可以选择账户去绑定。&#xff08;难度&#xff1a;简单&#xff09; 方案二&#xff1a;从商户进入&#xff0c;可以自由选择门店&#…

【网络奇缘】- 计算机网络|分层结构|深入学习ISO模型

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 回顾链接&#xff1a;http://t.csdnimg.cn/nRRzR 这篇文章是关于深入学习OSI模型七层结构&#xff0c; “书山…

高项备考葵花宝典-项目范围管理输入、输出、工具和技术

项目范围管理包括确保项目“做”且“只做”所需的全部工作&#xff08;即不能少做&#xff0c;也不能多做&#xff0c;如果多做&#xff0c;就要消耗团队额外的时间和资源&#xff0c;并且无法被认可&#xff09;&#xff0c;以成功完成项目。项目范围管理主要在于定义和控制哪…

vue3跟vue2的区别?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3和vue2的区别 目录 一、Vue3介绍 哪些变化 速度更快 体积更小 更易维护 compositon Api …

SparkSQL远程调试(IDEA)

启动Intellij IDEA&#xff0c;打开spark源码项目&#xff0c;配置远程调试 Run->Edit Configuration 启动远程spark-sql spark-sql --verbose --driver-java-options "-Xdebug -Xrunjdwp:transportdt_socket,servery,suspendy,address5005"运行远程调试&#xf…

详解—[C++ 数据结构]—AVL树

目录 一.AVL树的概念 二、AVL树节点的定义 三、AVL树的插入 3.1插入方法 四、AVL树的旋转 1. 新节点插入较高左子树的左侧---左左&#xff1a;右单旋 2. 新节点插入较高右子树的右侧---右右&#xff1a;左单旋 3.新节点插入较高左子树的右侧---左右&#xff1a;先左单旋…

论文笔记:Confidential Assets

Confidential Assets 描述了一种称为“保密交易”的方案&#xff0c;该方案模糊了所有UTXO的金额&#xff0c;同时保持了不创建或销毁硬币的公共可验证性。进一步将此方案扩展到“保密资产”&#xff0c;一种单一的基于区块链的分类帐可以跟踪多种资产类型的方案。将保密交易扩…

1.3 排序算法

1.1 冒泡排序 public class BubbleSort {public static void main(String[] args) {int[] arr {133,322,13,444,54,621,174,18,19,2};System.out.println(Arrays.toString(arr));BubSort(arr);System.out.println(Arrays.toString(arr));}//冒泡排序public static void BubSo…

详解API开发【电商平台API封装商品详情SKU数据接口开发】

1、电商API开发 RESTful API的设计 RESTful API是一种通过HTTP协议发送和接收数据的API设计风格。它基于一些简单的原则&#xff0c;如使用HTTP动词来操作资源、使用URI来标识资源、使用HTTP状态码来表示操作结果等等。在本文中&#xff0c;我们将探讨如何设计一个符合RESTfu…

J2EE征程——第一个纯servletCURD

第一个纯servletCURD 前言在此之前 一&#xff0c;概述二、CURD1介绍2查询并列表显示准备实体类country编写 CountryListServlet配置web.xml为web应用导入mysql-jdbc的jar包 3增加准备增加的页面addc.html编写 CAddServlet配置web.xml测试 4删除修改CountryListServlet&#xf…