高级SQL语句

news2024/11/24 1:53:19

高级SQL语句

  • 建立实验环境
  • 高级语句
    • 1.---- SELECT ----显示表格中一个或数个字段的所有数据记录
    • 2.---- DISTINCT ----不显示重复的数据记录
    • 3.---- WHERE ----有条件查询
    • 4.---- AND OR ----且 或 (一般配合where使用)
    • 5.---- IN ----显示已知的值的数据记录(一般配合where使用)
    • 6.---- BETWEEN -----AND----显示两个值范围内的数据记录(一般配合where使用)
    • 7.---- 通配符 ----通常通配符都是跟 LIKE 一起使用的
    • 8.---- LIKE ----匹配一个模式来找出我们要的数据记录
    • 9.---- ORDER BY ----按关键字排序
    • 10.---- 函数 ----
      • 1.数学函数:
      • 2.聚合函数:
      • 3.字符串函数:
    • 11.---- GROUP BY ----对GROUP BY后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的
    • 12.sql语句的执行顺序
    • 13.---- HAVING ----用来过滤由 GROUP BY 语句返回的记录集,通常与 GROUP BY 语句联合使用
    • 14.---- 别名 ----字段別名 表格別名
    • 15.---- 子查询 ----连接表格,在WHERE 子句或 HAVING 子句中插入另一个 SQL 语句
    • 16.---- EXISTS ----用来测试内查询有没有产生任何结果,类似布尔值是否为真

建立实验环境

use kfc;
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');

在这里插入图片描述

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');

在这里插入图片描述

高级语句

注意,库名,表名区分大小写,字段名不区分大小写,SQL语句不区分大小写

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

语法:SELECT “字段” FROM “表名”;

SELECT Store_Name FROM store_Info;

在这里插入图片描述

2.---- DISTINCT ----不显示重复的数据记录

语法:SELECT DISTINCT “字段” FROM “表名”;

SELECT DISTINCT Store_Name FROM store_Info;

在这里插入图片描述

3.---- WHERE ----有条件查询

语法:SELECT “字段” FROM “表名” WHERE “条件”;

SELECT Store_Name FROM Store_Info WHERE Sales > 1000;

在这里插入图片描述

4.---- AND OR ----且 或 (一般配合where使用)

语法:SELECT “字段” FROM “表名” WHERE “条件1” {[AND|OR] “条件2”}+ ;

SELECT Store_Name FROM Store_Info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);

在这里插入图片描述

5.---- IN ----显示已知的值的数据记录(一般配合where使用)

语法:SELECT “字段” FROM “表名” WHERE “字段” IN (‘值1’, ‘值2’, …);

SELECT * FROM Store_Info WHERE Store_Name IN ('Los Angeles', 'Houston');

在这里插入图片描述

6.---- BETWEEN -----AND----显示两个值范围内的数据记录(一般配合where使用)

语法:SELECT “字段” FROM “表名” WHERE “字段” BETWEEN ‘值1’ AND ‘值2’;

SELECT * FROM Store_Info WHERE Date BETWEEN '2020-12-06' AND '2020-12-10';

在这里插入图片描述

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’ 则不符合这个模式。

8.---- LIKE ----匹配一个模式来找出我们要的数据记录

语法:SELECT “字段” FROM “表名” WHERE “字段” LIKE {模式};

SELECT * FROM Store_Info WHERE Store_Name like '%os%';

在这里插入图片描述

9.---- ORDER BY ----按关键字排序

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

SELECT Store_Name,Sales,Date FROM Store_Info ORDER BY Sales DESC;

在这里插入图片描述

10.---- 函数 ----

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…)返回集合中最小的值,也可以返回多个字段的最小的值
SELECT abs(-1), rand(), mod(5,3), power(2,3), round(1.89);

在这里插入图片描述

SELECT round(1.8937,3), truncate(1.235,2), ceil(5.2), floor(2.1), least(1.89,3,6.1,2.1);

在这里插入图片描述

SELECT sqrt(4);

在这里插入图片描述

2.聚合函数:

函数含义
avg()返回指定列的平均值
count()返回指定列中非 NULL 值的个数
min()返回指定列的最小值
max()返回指定列的最大值
sum(x)返回指定列的所有值之和
SELECT avg(Sales) FROM Store_Info;

在这里插入图片描述

SELECT count(Store_Name) FROM Store_Info;
SELECT count(DISTINCT Store_Name) FROM Store_Info;

在这里插入图片描述

SELECT max(Sales) FROM Store_Info;
SELECT min(Sales) FROM Store_Info;

在这里插入图片描述

SELECT sum(Sales) FROM Store_Info;

在这里插入图片描述

新建t1 表格
在这里插入图片描述

SELECT count(name) FROM t1;
SELECT count(*) FROM t1;

#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 反转
SELECT concat(Region, Store_Name) FROM location WHERE Store_Name = 'Boston';

在这里插入图片描述

#在/etc/my.cnf配置文件中如sql_mode开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似,这和Oracle数据库使用方法一样的
在这里插入图片描述

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

在这里插入图片描述

SELECT substr(Store_Name,3) FROM location WHERE Store_Name = 'Los Angeles';
SELECT substr(Store_Name,2,4) FROM location WHERE Store_Name = 'New York';

在这里插入图片描述

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

SELECT TRIM(LEADING 'Ne' FROM 'New York');

在这里插入图片描述

SELECT Region,length(Store_Name) FROM location;

在这里插入图片描述

SELECT REPLACE(Region,'ast','astern')FROM location;

在这里插入图片描述

select upper(region) from location;
select lower(region) from location;

在这里插入图片描述

select left(region,2) from location;
select right(region,2) from location;

在这里插入图片描述

select repeat(region,2) from location;
select space(2) from location;

在这里插入图片描述

select strcmp(region,store_name) from location;
select reverse(region) from location;

在这里插入图片描述

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

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

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

SELECT Store_Name, SUM(Sales) FROM Store_Info GROUP BY Store_Name ORDER BY sales desc;

在这里插入图片描述

12.sql语句的执行顺序

在这里插入图片描述

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

HAVING 语句的存在弥补了 WHERE 关键字不能与聚合函数联合使用的不足。
语法: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;

在这里插入图片描述

14.---- 别名 ----字段別名 表格別名

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

SELECT A.Store_Name Store, SUM(A.Sales) "Total Sales" FROM Store_Info A GROUP BY A.Store_Name;

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

在这里插入图片描述

15.---- 子查询 ----连接表格,在WHERE 子句或 HAVING 子句中插入另一个 SQL 语句

语法: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);

在这里插入图片描述

16.---- 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/667507.html

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

相关文章

【人工智能技术专题】「入门到精通系列教程」零基础带你掌握人工智能全流程技术体系和实战指南(人工智能理论知识概论)

零基础带你掌握人工智能全流程技术体系和实战指南 前言专栏介绍专栏说明学习大纲前提条件面向读者学习目标人工智能背景介绍概念说明定义 目标方向目标人工智能的主要目标人工智能的应用领域 人工智能学科领域人工智能分类基于应用的人工智能弱AI&#xff08;弱人工智能&#x…

【干货】Android系统定制基础篇:第二部分(Launcher3支持键盘切换焦点、开发者模式密码确认、禁止非预装应用安装、配置时间)

1、Android Launcher3支持键盘切换焦点 Android Launcher3 默认并不支持键盘操作&#xff0c;无法切换焦点&#xff0c;在一些需要支持键盘或遥控操作的设备中无法使用&#xff0c;因些对 Launcher3 做简单修改&#xff0c;使其支持键盘切换焦点。 diff --git a/packages/app…

在字节跳动做了5年软件测试,无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是5年的工作经验吧。 这5年之间完成了一次…

JS-快速入门

目录 变量原生数据类型模板字符串字符串的内置属性、方法数组数组创建方式数组值操作获取值添加值删除值判断是否是数组获取值的索引 对象创建对象&#xff0c;为对象创建新属性对象值存到同名常(变)量中 对象数组和JSON创建对象数组对象数组取值对象数组转JSON数据 if条件语句…

ELK技术堆栈(yum安装部署)

ELK技术堆栈&#xff08;yum安装部署&#xff09; 目录 ELK技术堆栈可以应用于各种场景 ELK的工作原理如下&#xff1a; 它由三个核心组件组成&#xff1a; 部署步骤&#xff1a;&#xff08;单台部署&#xff09; 环境部署&#xff1a; 安装JAVA环境&#xff1a;&#…

数据库系统概述——第十章 数据库恢复技术(知识点复习+练习题)

&#x1f31f;博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;离散数学考前复习&#xff08;知识点题&#xff09; &#x1f353;专栏&#xff1a;概率论期末速成&#xff08;一套卷&#xff09; &#x1f433;专栏&#xff1a;数字电路考前复习 &#x1f99a;专栏&am…

单页面应用是什么?优缺点?如何弥补缺点

文章目录 导文单页面应用是什么&#xff1f;优点&#xff1a;缺点&#xff1a;弥补缺点的方法&#xff1a; 导文 Web单页应用就是指只有一个Web页面作为入口的应用 在浏览器中运行期间不会重新加载页面。也就是说浏览器一开始会加载它必需的thml、css和js 之后所有的交互操作都…

Godot 4 源码分析 - 命令行参数

粗看Godot 4的源码&#xff0c;稍微调试一下&#xff0c;发现一大堆的命令行参数。在widechar_main中 Error err Main::setup(argv_utf8[0], argc - 1, &argv_utf8[1]); Main::setup中&#xff0c;各命令行参数加入到List<Stirng> args中&#xff0c;并通过OS::get…

技术引领 踏浪而行 2023 A+CLUB 北京峰会 | 活动回顾

6月10日&#xff0c;“技术引领 踏浪而行”2023 ACLUB 北京峰会活动圆满举办&#xff0c;近70家机构超百人参会&#xff0c;其中北京及周边地区优秀私募占比八成。私募、券商、专家学者、业内先进解决方案&#xff08;包括算力、存储、网络、软件&#xff09;供应商从不同角度分…

【2023unity游戏制作-mango的冒险】-7.玩法实现

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

0805曲面及其方程-向量代数与空间解析几何

文章目录 1 曲面研究的基本问题2 旋转曲面3 柱面4 二次曲面4.1 定义4.2 研究方法4.3 九种二次曲面 结语 1 曲面研究的基本问题 曲面研究的两个基本问题&#xff1a; 已知一曲面作为点的几何轨迹时&#xff0c;建立这曲面的方程&#xff1b;已知x,y和z直接的一个方程时&#x…

如何在 Ubuntu 上实现 Nuxeo 与 ONLYOFFICE 文档集成

1. 概览 我们持续提供一系列易于使用的教程&#xff0c;向大家介绍如何将开源办公套件 ONLYOFFICE 文档集成到第三方 Web 服务中。ONLYOFFICE 文档根据 AGPLv.3 许可分发&#xff0c;包含处理文本文档、电子表格和演示文稿的编辑器&#xff0c;提供全套编辑及格式设置工具&…

Linux之进程间通信之管道

进程间通信的目的: 1、数据传输&#xff1a;一个进程需要将它的数据发售那个给另外一个进程。 2、资源共享&#xff1a;多个进程之间需要共享同样的资源。 3、通知事件&#xff1a;一个进程需要向另外一个或者一组进程发送消息&#xff0c;通知它们发生了某种事件(比如&…

java中避免使用“isSuccess“作为变量名的原因和解决方法

阿里巴巴Java开发手册的说法 在阿里巴巴Java开发手册中关于这一点&#xff0c;有过一个『强制性』规定&#xff1a; 其他原因 另外根据Java命名约定&#xff0c;方法名应该以动词开头&#xff0c;而变量名应该以名词或形容词开头。使用"isSuccess"作为变量名可能…

AAAI 2023 | 语言模型如何增强视觉模型的零样本能力 ?

文章链接&#xff1a;https://arxiv.org/abs/2207.01328 项目地址&#xff1a;https://github.com/zjukg/DUET 该论文设计了一种新的零样本学习范式&#xff0c;通过迁移语言模型中的先验语义知识&#xff0c;与视觉模型的特征感知能力进行对齐&#xff0c;以增强后者对于未见过…

nacos集成springcloud实现配置中心功能

1. 在nacos控制台创建namespace 2. 创建SpringCloud项目 大家注意springboot和springcloud的版本对应&#xff0c;可以去官网查看。 https://spring.io/projects/spring-cloud#learn <properties><java.version>11</java.version><poi.version>5.2.…

VSCode使用CodeWhisperer(AI编程)

安装AWS Toolkit插件&#xff0c;点击侧边插件搜索并安装 2.点击aws ->CodeWhisperer ->Start 3.在下拉菜单中点击Use a personal email to sign up and sign in with AWS Builder ID 4.点Copy Code and Proceed&#xff0c;这会自动复制一些东西 5. 收到提示打开外部网…

高德API JS 地图获取多个坐标点的中心点

高德API JS 地图获取多个坐标点的中心点 一、需求 我需要&#xff1a; 在地图上展示多个地点地图缩放到合适的大小&#xff0c;要求刚好能显示全部点位边缘留有一部分间隔。 做成如图所示这样。 二、需要用到的 AMap 类库 经过一下午的研究&#xff0c;弄出来了。 需要以…

【计算机网络自顶向下】简答题习题总结(一)

计算机网络是什么 两个及以上具有独立操作系统的计算机通过某些介质连接成的相互共享软硬件资源的集合体。 计算机网络两大功能 连通性和共享 如何描述Internet 分为两方面 具体构成 计算机互连设备、通信链路、分组交换设备 提供服务&#xff1a; 提供网络应用基础架构为分布式…

计网第二章实验2:DNS

DNS实验pdf下载地址(科学上网)&#xff1a;Wireshark_DNS_v7.0 (umass.edu) 实验前置知识 nslookup命令 nslookup –option1 –option2 host-to-find dns-server 如果dns-server不指定的话那么就是默认的&#xff1a;本地DNS服务器 选项其一 -typeNS or -typeA 所代表的意思不…