【MySQL 高级(进阶)SQL 语句】

news2024/11/25 2:54:12

目录

  • 一、命令操作
    • 1、select ----显示表格中一个或数个字段的所有数据记录
    • 2、select 指定字段的显示顺序
    • 3、select distinct 不显示重复的数据记录
    • 4、where 有条件的查询
    • 5、and和or 命令 ---- 且和或
    • 6、in 显示已知的值的数据记录
    • 7、between 显示两个值范围内的数据记录
    • 8、通配符---通常通配符都是跟 like 一起使用的
    • 9、like ----匹配一个模式来找出我们要的数据记录
    • 10、order by ----按关键字排序
  • 二、函数
    • 1、数学函数
    • 2、聚合函数
    • 3、字符串函数
  • 三、操作命令
    • 1、group by
    • 2、having
    • 3、别名--字段別名 表格別名
    • 4、子查询
    • 5、 EXISTS


一、命令操作

创建一个location 表格

create table location (Region char(20),Store_Name char(20));
insert into location values('East','Boston');
insert into location values('East','New York');
insert into location values('West','Los Angeles');
insert into location values('West','Houston');

在这里插入图片描述

创建一个Store_Info 表格

create table store_info (Store_Name char(20),Sales int(10),Date char(10));
insert into store_info values('Los Angeles','1500','2020-12-05');
insert into store_info values('Houston','250','2020-12-07');
insert into store_info values('Los Angeles','300','2020-12-08');
insert into store_info values('Boston','700','2020-12-08');

在这里插入图片描述

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

在这里插入图片描述

2、select 指定字段的显示顺序

select date,store_name,sales from store_info;

在这里插入图片描述

3、select distinct 不显示重复的数据记录

select distinct store_name from store_info;

只能对单个字段进行查重
在这里插入图片描述

4、where 有条件的查询

语法:select "字段"from "表名" where "条件";
select * from store_info where sales > 1000;

在这里插入图片描述

5、and和or 命令 ---- 且和或

语法:select "字段"from "表名" where "条件1"{[and|or]"条件2"};
select * from store_info where sales < 300 and sales >= 500 or sales <=1000;

在这里插入图片描述

select * from store_info where sales < 300 or (sales >= 500 and sales <=10000);

在这里插入图片描述

6、in 显示已知的值的数据记录

查看指定内容的行数据

select * from store_info where store_name in ('Houston','Boston');

查看不在指定内容的行数据

select * from store_info where store_name not in ('Houston','Boston');

在这里插入图片描述

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

语法:select "字段" from "表名" where "字段" between '值1' and '值2';
select * from store_info where sales between 500 and 1000;

在这里插入图片描述

8、通配符—通常通配符都是跟 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' 则不符合这个模式。

9、like ----匹配一个模式来找出我们要的数据记录

语法:select "字段" from "表名" where "字段" like {模式};

在这里插入图片描述

10、order by ----按关键字排序

语法:select "字段" from "表名" [where "条件"] order by "字段" [ASC, DESC];

#ASC 是按照升序进行排序的,是默认的排序方式。
#DESC 是按降序方式进行排序。

在这里插入图片描述

也可以使用指定行数据进行排序
在这里插入图片描述
在这里插入图片描述

二、函数

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…)返回集合中最小的值,也可以返回多个字段的最小的值

查看数据的最大值和最小值

在这里插入图片描述

使用rand命令来创建随机数

在这里插入图片描述

2、聚合函数

聚合函数解释
avg()返回指定列的平均值
count()返回指定列中非 NULL 值的个数
min()返回指定列的最小值
max()返回指定列的最大值
sum(x)返回指定列的所有值之和

求出所有值的和

select sum(id) from t2;

在这里插入图片描述

返回指定列中非 NULL 值的个数
在这里插入图片描述

返回指定列的平均值
在这里插入图片描述

count(*) 包括了所有的列的行数,在统计结果的时候,不会忽略列值为 NULL

count(列名) 只包括列名那一列的行数,在统计结果的时候,会忽略列值为 NULL 的行
在这里插入图片描述

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 和 y,返回的值可以为-1,0,1
reverse(x)将字符串 x 反转

进行替换
在这里插入图片描述

1、可以将字段拼接在一起,也可以在中间加上空格分割
在这里插入图片描述
在这里插入图片描述
如sql_mode开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似,这和Oracle数据库使用方法一样的

在这里插入图片描述

2、使用substr 命令进行数据的查询
在这里插入图片描述
在这里插入图片描述

3、返回去除指定格式的值 trim()

#[位置]:的值可以为 leading (起头), trailing (结尾),both(起头及结尾)。
#[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。

在这里插入图片描述

通过trim 命令进行删除指定的字符串 ,可以用select语句来进行删选出字符串,在执行命令前会先执行括号里的select语句,再去执行外面trim的命令
在这里插入图片描述

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

在这里插入图片描述

三、操作命令

1、group by

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

GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现;
凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后面

语法:SELECT "字段1", SUM("字段2") FROM "表名" GROUP BY "字段1";

在这里插入图片描述

查看汇总数据的倒序
在这里插入图片描述

2、having

用来过滤由 GROUP BY 语句返回的记录集,通常与 GROUP BY 语句联合使用

HAVING 语句的存在弥补了 WHERE 关键字不能与聚合函数联合使用的不足。

语法:SELECT "字段1", SUM("字段2") FROM "表格名" GROUP BY "字段1" HAVING (函数条件);

查出大于1500的
在这里插入图片描述
查出小于1500的
在这里插入图片描述

3、别名–字段別名 表格別名

语法:SELECT "表格別名"."字段1" [AS] "字段別名" FROM "表格名" [AS] "表格別名";

1、字段别名
在这里插入图片描述2、表别名

在这里插入图片描述

4、子查询

连接表格,在WHERE 子句或 HAVING 子句中插入另一个 SQL 语句

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

(SELECT "字段1" FROM "表格2" WHERE "条件");									
#内查询

在这里插入图片描述

5、 EXISTS

用来测试内查询有没有产生任何结果,类似布尔值是否为真

#如果有的话,系统就会执行外查询中的SQL语句。若是没有的话,那整个 SQL 语句就不会产生任何结果。

语法:SELECT "字段1" FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件");

在这里插入图片描述

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

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

相关文章

最短路径算法(Python数学建模)

0. 前言 最短路径算法是一种用于计算图中两个节点之间最短路径的算法。在图论中&#xff0c;最短路径通常指的是图中连接两个节点的路径中具有最小权重&#xff08;或成本&#xff09;的路径。 以下是两种常见的最短路径算法&#xff1a; Dijkstra算法&#xff1a;Dijkstra算…

Python对csv文件一键多值保存为json本地文件再读取加速效率(3)

最近发现做办公自动化表格匹配的时候还是csv格式的文件最快、效率是最高的 今天接到一个需求就是大致内容之这样的 1、给我一张表格直邮一列A列&#xff0c;内容是运单号 2、需要用相同的单号去另外一张表格匹配数据 3、其实就是Excel中的常见的vlookup 但是想要匹配的表格有几…

D351周赛复盘:美丽下标对数目(互质/数学运算)+数组划分若干子数组

文章目录 6466.美丽下标对数目思路互质的含义 python写法cpp写法 6910. 将数组划分成若干好子数组的方式思路完整版ans (ans * (ls[i 1] - ls[i]))含义重要问题1&#xff1a;为什么ls[i 1] - ls[i]能代表所有这两个1划分出来的子数组&#xff1f;重要问题2&#xff1a;为什么…

java 版本企业招标投标管理系统源码,多个行业+及时准确+全程电子化

计算机与网络技术的不断发展&#xff0c;推动了社会各行业信息化的步伐。时至今日&#xff0c;电子政务、电子商务已经非常普及&#xff0c;云计算、大数据、工业4.0、“互联网”等发展理念也逐步深入人心&#xff0c;如何将传统行业与互联网科技有效结合起来&#xff0c;产生1…

谷歌浏览器无法翻译成中文,谷歌翻译,最新(沉浸式翻译和划词翻译,chrome无法翻译,谷歌浏览器无法翻译此网页)

简介&#xff1a;谷歌浏览器自带的翻译功能&#xff0c;对我们来说用处很大&#xff0c;但有的时候突然就会变成“无法翻译此网页”&#xff0c;之前给大家提供过两种无法翻译此网页的解决方案&#xff0c;这次再给大家分享下两款别的翻译方法&#xff1b; 一、上次介绍&#x…

如何用ChatGPT使开发效率提高50%以上?

简介 ChatGPT是一个大型语言模型&#xff0c;由OpenAI开发。它被训练用于进行对话式交互&#xff0c;能够理解和生成自然语言文本。ChatGPT可以用于多种任务和场景&#xff0c;包括但不限于&#xff1a;智能助手、创意生成、语言学习、编程辅助等。ChatGPT的优势在于它的广泛知…

搭建个人音乐库-navidrome

文章目录 前言navidrome 服务搭建准备音乐材料客户端 前言 搭建个人音乐库。好玩而已。 没有做过多的筛选。在navidrome 和 koel 之间&#xff0c;选择了navidrome来搭建音乐库。 主要分为这几个步骤&#xff1a; 在服务器上搭建navidrome服务(web端)。准备音乐材料。手机上…

免费去除视频水印的几个方法!记得收藏好!

怎么去除视频水印&#xff1f;相信大家应该不难发现&#xff0c;现在很多网上的视频保存下来都会有水印&#xff0c;原本是想拿这些视频当作素材来使用&#xff0c;结果就是让人很苦恼&#xff0c;但其实我们可以借助记灵在线工具将它们的水印去掉&#xff0c;下面我给大家分享…

谷歌带走了我最爱的全文翻译,连夜找来1个复活方法和6个替代神器!

想必前段时间大家都被谷歌翻译退出中国的相关文章刷屏过了 虽然表面上谷歌官方给出的原因是中国用户太少、使用率太低了&#xff0c;所以才选择退出中国市场。但根据网上的猜测&#xff0c;更大的可能应该是因为给谷歌翻译接入的 googleapis.com 在9月28日因某种神秘力量而国内…

JVM原理简介

前言 JVM一直是java知识里面进阶阶段的重要部分&#xff0c;如果希望在java领域研究的更深入&#xff0c;则JVM则是如论如何也避开不了的话题&#xff0c;本系列试图通过简洁易读的方式&#xff0c;讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是&#xff1a;…

应急响应篇之Linux入侵排查

0x00 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时&#xff0c;急需第一时间进行处理&#xff0c;使企业的网络信息系 统在最短时间内恢复正常工作&#xff0c;进一步查找入侵来源&#xff0c;还原入侵事故过程&#xff0c;同时给出解决方案与防范措…

【CV】从分类到回归:常见算法评价指标,如ROC,MAP等

目录 分类问题准确率&#xff08;Accuracy&#xff09;精确率&#xff08;Precision&#xff09;召回率或真正率&#xff08;Recall&#xff09;假正率&#xff08;False Positive Rate, FPR&#xff09;特异性&#xff08;Specificity&#xff09;ROC曲线P-R曲线&#xff08;精…

AI换脸背后的产业链详解,往后神仙姐姐背后有可能是......

近期在各大平台都可以看到换脸新闻&#xff0c;和大家分享一下最近让我心痛的一张图片 那除了大家用来恶搞之外&#xff0c;AI诈骗的新闻层出不穷。我们国内目前今天最大的是下面这起事件&#xff1a; 而国外&#xff0c;因为技术更加成熟一点&#xff0c;所以被诈骗的金额高达…

PostgreSQL修炼之道之数据库优化(十八)

12.1 数据库优化准则和方法 12.1.1 数据库优化准则 数据库优化的思路有很多种。比较常用的是下面两种优化思路。 第一种思路&#xff1a;有人说过&#xff0c;“The fastest way to do something is dont do it”&#xff0c;意思是说&#xff0c;“做得最快的方法就是不做”…

mysql 集群实验~~双主双从搭建

这里写目录标题 搭建mysql集群实现双主双从的同步一、部署环境1.1 分别安装mysql服务并设置域名解析 二、 配置双主MySQL服务器2.1由于是双主&#xff0c;所以master2是master1的从&#xff0c;同时master1又是master2的从所以都要开启二进制和中继日志2.2 重启服务2.3 测试双主…

医院云HIS:运维运营分系统功能简介

一、运维运营分系统简介 一级菜单包括&#xff1a;系统运维、综合监管、系统运营 系统运维包括二级菜单&#xff1a;环境管理、应用管理、菜单管理、接口管理、任务管理、配置管理 综合监管包括二级菜单&#xff1a;综合监管 系统运营包括二级菜单&#xff1a;机构管理、药…

【海明码】一题学会海明码!

一、详细步骤 1、海明码&#xff0c;也称汉明码 2、海明码数据码校验码 3、假设数据码为1100&#xff0c;有4位&#xff0c;即n4 4、由公式2^k>nk1&#xff0c;解得k3&#xff0c;即需3个校验码 5、校验按2^i&#xff08;即2的i次幂&#xff0c;如1、2、4、8、16、32..…

2入门matlab图像处理图像的基本操作(matlab程序)

学习目标&#xff1a;学习关于图像的基本操作 代码及运行结果 %% 通过抖动来增强图像的色彩对比度 clear all; close all; Iimread(cameraman.tif); %读取灰度图像 BWdither(I); %通过抖动转换为二值图像来增强图像的色彩对比度 subplot(121); imshow(I); subplot(122);…

电气火灾监控系统行业技术应用现状

摘要&#xff1a;我国现有的电气火灾监控系统的应用效果不佳&#xff0c;为了让电气火灾监控系统的发展能满足现代化人们的需要&#xff0c;对此进行分析与研究。网络化时代的到来&#xff0c;电气火灾监控系统将顺应时代潮流&#xff0c;逐步实现系统的网络化、智能化、可视化…

神经网络原理(1)

眼下最热门的技术&#xff0c;绝对是人工智能。 人工智能的底层模型是"神经网络"&#xff08;neural network&#xff09;。许多复杂的应用&#xff08;比如模式识别、自动控制&#xff09;和高级模型&#xff08;比如深度学习&#xff09;都基于它。学习人工智能&a…