⑩⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗

简介: ⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗

6.1 一般数据查询功能扩展

考点1 使用TOP限制结果集

(1)适用情况

当使用SELECT语句进行查询时,有时只希望列出结果集中的前几行数据,而不是全部数据,这时就可以使用TOP谓词来限制输出的结果。


(2)语法格式


TOP n [percent] [WITH TIES]


其中,n为非负整数。


①TOP n:取查询结果的前n行数据;


②TOP n percent:取查询结果的前n%行数据;


③WITH TIES:表示包括最后一行取值并列的结果。


TOP谓词写在SELECT单词的后边(如果有DISTINCT的话,则TOP写在DISTINCT的后边)、查询列表的前边。


注意:在使用TOP谓词时,应该与ORDER BY子句一起使用,这样的前几名才有意义。当使用WITH TIES选项时,则要求必须使用ORDER BY子句。


目前MySQL并不支持top n的语法,limit n 需要的更加的频繁



考点2 使用CASE函数

(1)适用情况


可以在查询语句中使用CASE函数,以达到分情况显示不同类型的数据的目的。CASE函数是一种多分支表达式,它计算条件列表并返回多个可能的结果表达式中的一个。


(2)类型


简单CASE函数和搜索CASE函数。


(3)简单CASE函数


①语法格式

CASE测试表达式
WHEN简单表达式1 THEN结果表达式1
WHEN简单表达式2 THEN结果表达式2
WHEN简单表达式n THEN结果表达式n
[EISE结果表达式n+1]
END

②执行过程


a.计算测试表达式,然后按从上到下的顺序对每个WHEN子句的简单表达式进行计算。


b.如果某个简单表达式的值与测试表达式的值相匹配,则返回与第一个取值为True的WHEN对应的结果表达式的值。


c.如果所有的简单表达式的值都不与测试表达式的值相匹配,则当指定了ELSE子句时,将返回ELSE子句中指定的结果表达式的值;若没有指定ELSE子句,则返回NULL值。


(4)搜索CASE函数


①语法格式


搜索CASE函数的各个WHEN子句的布尔表达式可以使用比较运算符,也可以使用逻辑运算符。


②执行过程


搜索CASE函数的执行过程同简单CASE函数。


③例题


【例1】查询每种商品的销售次数,如果销售次数超过10次,则显示“热门商品”,如果销售次数在5~10次之间,则显示“一般商品”,如果销售次数低于5次,则显示“难销商品”,如果商品没有被销售过,则显示“滞销商品”。


分析:由于要查询的是全部商品的销售情况,包括有销售记录的和没有销售记录的,因此,应该用外连接实现。另外,在统计每种商品的销售次数时,应该使用COUNT(列名)函数,不能使用COUNT(*)函数,而且应该对外连接后的销售记录表中的商品编号列进行统计。


【真题演练】


设SC表中记录成绩的列为:Grade,类型为int。若在查询成绩时,希望将成绩按“优”、“良”、“中”、“及格”和“不及格”形式显示,正确的Case函数是(    )。


A.image.png



B.image.png




C.image.png



D.image.png



【答案】C


考点3 将查询结果保存到新表中

(1)适用情况


当使用SELECT语句查询数据时,产生的结果是保存在内存中的。如果希望将查询结果永久保存下来,比如保存在一个表中,则可以通过在SELECT语句中使用INTO子句实现。


(2)INTO子句的语法格式


SELECT查询列表序列 INTO<新表名>


FROM数据源


…          - -其他行过滤、分组等子句


其中“新表名”是要存放查询结果的表名。这个语句将查询的结果保存在“新表名”所指定的表中。实际上这个语句包含如下三个功能:


①根据查询语句列出的列以及其类型创建一个新表;


②执行查询语句;


③将查询的结果插入到新表中。


(3)INTO语句创建新表的分类


用INTO子句创建的新表可以是永久表(在执行这个语句时所使用的数据库中被物理的创建,并且是存储在磁盘上的表),也可以是临时表(在tempdb数据库中创建此表,其生存期是有限的)。临时表又根据其使用范围分为局部临时表和全局临时表两种。


①局部临时表


局部临时表通过在表名前加一个“#”来标识,比如:#T1,表示“#T1”是一个局部临时表。局部临时表的生存期与创建此局部临时表的用户的连接生存期相同,它只能在创建此局部临时表的当前连接中使用。


②全局临时表


全局临时表通过在表名前加两个“#”来标识,比如:##T1,表示“##T1”是一个全局临时表。全局临时表的生存期与创建全局临时表的用户的连接生存期相同,并且在生存期内可以被所有的连接使用。


可以对局部临时表和全局临时表中的数据进行查询,其方法同永久表一样。


相关文章
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
25天前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
157 61
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
135 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
23天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
53 3
|
1月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
37 1
|
11天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
80 15
|
4天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
11天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。