DQL的原理:一篇文章让你豁然开朗

简介: DQL的原理:一篇文章让你豁然开朗

DQL查询语句


DQL是一种用于查询数据库中数据的语言。它是SQL(Structured Query Language)的一部分,用于从数据库中检索所需的数据。


FROM子句

别名

SELECT kname,sal*12 sal FROM K

别名本身不区分大小写,而且不能含有空格。如果希望别名区分大小写或者含有空格,在别名使用时用双引号括起来就行。

写别名时,AS 可写可不写,默认。在别名与本来字段名中,中间不能写逗号。

最好写上别名。

WHERE子句

WHERE 子句用于提取那些满足指定条件的记录。(过滤条件)

SELECT  id,kname FROM  K WHERE id=9;

下面的运算符可以在 WHERE 子句中使用

=

等于

<>

不等于

!=

不等于

>

大于

<

小于

>=

大于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

IN

指定针对某个列的多个可能值

SELECT name,id,age,FROM K where id>2
SELECT name,id,age,FROM K where id<>2

between ...and...

between... and ...判断是否在某一个区间内,

SELECT name,id,age FROM K WHERE id BETWEEN 1 AND 4

LIKE(模糊查询)

通配符可用于替代字符串中的任何其他字符。

通配符

描述

%

替代 0 个或多个字符

_

替代一个字符

select kname,id FROM K where name LIKE '_o%'
//查询第二个字符为o的名称。

IN 和NOT IN

in / not in 判断值是否在列表中或者不在列表中。

SELECT name,id FROM K WHERE id IN(1,2)//等于1或者2
SELECT name,id FROM K
WHERE id NOT IN(1,5)//不能等于1,和5

关键字AND ,OR

SELECT kname,id FROM K WHERE id>1 AND kname='bob'

AND 优先级高于 OR,通常使用括号来提高or的优先级,

SELECT kname,id ,depino FROM K WHERE sal>1500 AND id>5 OR depino=20

SELECT kname,id ,depino FROM K WHERE sal>1500 AND (id>5 OR depino=20)

上面理解为,sal>1500 并且 id>5 这个作为一个条件,或者 depino=20.

可以改为,sal>1500 AND (id>5 or depino=20),这样就可以表示为 sal>1500,并且id>5,或者sal>1500,depino=20

IS NULL 和IS NOT NULL

判断是否为空。

SELECT id,kname FROM K WHERE pid  IS NULL

ANY 和 ALL

ANY和ALL 常用于子查询。

SELECT id,kname,sal FROM K WHERE sal>ANY(1000,1500,2000)

distinct关键字

distinct  对结果中的指定字段值重复记录。(去重)

对于多字段去重,只要组合不同即可。但是distinct,需要放在所有属性名前面。

SELECT DISTINCT id FROM K 
SELECT DISTINCT id,age FROM K

排序---order by 子句

order by 子句,可以根据其后指定的字段对结果集按照该字段的值进行升序或者降序排列。

ASC:升序,不写默认是升序。

DESC:降序

order by 子句必须放在sql语句后面。

select sal,kname from K order by sal DESC

order by 多字段排序

首先先按照第一个字段的排序方式对结果集进行排序,当第一个字段有重复值时才会按照第二个字段排序方式进行排序,一次类推,每个字段都可以单独指定排序方式。

select id,depino,sal from k order by depino,sal DESC

排序字段中含有null 值,null被认作为最大值。

select id,kname,pid from k order by pid DESC

聚合函数

聚合函数(多行函数,分组函数),用来对结果集某些字段的  值进行统计。

MAX,MIN

max,min求给定字段的最大值和最小值。

select max(sal) FROM k
select min(sal) FROM k

AVG,SUM

avg求平均值,sum求总和

select avg(sal),sum(sal) from k

count()函数

count 函数不是对给定的字段值进行统计,而是对给定字段不为null的记录数进行统计。

实际上所有聚合函数都忽略null值统计。

通常查看表的记录数可以使用count(*)

select count(pid) from k
select count(nvl(pid,0)) from k
select count(*) from k

分组

group by 子句

group by 可以将结果集按照其后指定的字段相同的记录看做一组,然后配合聚合函数进行更细分的统计工作。

select avg(sal),depino from k group by depino

group by 也可以根据多个字段进行分组,分组原则为这几个字段值都相同的记录看做一组。

select kname,sal ,depino from k group by sal,depino

在查询select子句中,出现了聚合函数,那么凡是不在聚合函数中的其他的字段必须出现在group by子句中。反过来并不是必须的。

where 中不能使用聚合函数作为过滤条件,原因是过滤时机不对。

where在数据库检索表中数据时,对数据逐条过滤以决定是否查询出该数据时使用的,所以where 用来确定结果集的数据。

使用聚合函数的结果作为过滤条件,那么一定是数据从表中查询完毕(where在查询过程中发挥作用)得到的结果集,并且分组完毕才能进行聚合函数统计结果,得到后才可以对分组进行过滤,由此可见这个过滤时机在where之后进行的。

聚合函数的过滤条件要在having子句中,使用HAVING必须跟在group by子句之后。HAVING是用来过滤分组的。

select avg(sal),depino
from k
group by depino
Having avg(sal)>1000

查询语句的顺序

目录
相关文章
|
7月前
|
人工智能 缓存 自然语言处理
全球首款开源通用型AI智能体上线!Suna:自动处理Excel/爬数据/写报告等复杂任务一句话搞定
Suna是由Kortix推出的开源通用型AI智能体项目,通过自然语言交互实现浏览器自动化、文件管理、数据分析等复杂任务处理,支持自托管部署,为研究分析和日常工作提供智能辅助。
1741 55
全球首款开源通用型AI智能体上线!Suna:自动处理Excel/爬数据/写报告等复杂任务一句话搞定
|
2月前
|
数据采集 Web App开发 人工智能
如何让AI“看懂”网页?拆解 Browser-Use 的三大核心技术模块
Browser-Use 是一种基于大语言模型(LLM)的浏览器自动化技术,通过融合视觉理解、DOM解析和动作预测等模块,实现对复杂网页任务的自主操作。它突破了传统固定选择器和流程编排的限制,具备任务规划与语义理解能力,可完成注册、比价、填报等多步骤操作。其核心功能包括视觉与HTML融合解析、多标签管理、元素追踪、自定义动作、自纠错机制,并支持任意LLM模型。Browser-Use标志着浏览器自动化从“规则驱动”向“认知驱动”的跃迁,大幅降低维护成本,提升复杂任务的处理效率与适应性。
1793 29
|
7月前
|
人工智能 自然语言处理 安全
90.9K star!一键部署AI聊天界面,这个开源项目让大模型交互更简单!
"像使用微信一样操作大模型!Open WebUI 让AI对话从未如此简单"
712 0
|
7月前
|
人工智能 自然语言处理 监控
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
Cooragent 是清华大学 LeapLab 团队推出的开源 AI Agent 协作框架,支持基于简单描述快速创建 Agent 并实现多 Agent 协作,具备 Prompt-Free 设计和本地部署能力。
863 6
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
|
5月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
8月前
|
数据采集 人工智能 JavaScript
Browser Use:40.7K Star!一句话让AI完全接管浏览器!自动规划完成任务,多标签页同时管理
Browser Use 是一款专为大语言模型设计的智能浏览器自动化工具,支持多标签页管理、视觉识别、内容提取等功能,并能记录和重复执行特定动作,适用于多种应用场景。
2266 21
Browser Use:40.7K Star!一句话让AI完全接管浏览器!自动规划完成任务,多标签页同时管理
|
7月前
|
存储 自然语言处理 前端开发
2025年大模型发展脉络:深入分析与技术细节
本文深入剖析2025年大模型发展脉络,涵盖裸模型与手工指令工程、向量检索、文本处理与知识图谱构建、自动化提示生成、ReAct多步推理及AI Agent崛起六大模块。从技术细节到未来趋势,结合最新进展探讨核心算法、工具栈与挑战,强调模块化、自动化、多模态等关键方向,同时指出计算资源、数据质量和安全伦理等问题。适合关注大模型前沿动态的技术从业者与研究者。
2550 9
|
8月前
|
人工智能 自然语言处理 Java
对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手
本文介绍了如何通过Model Context Protocol (MCP) 协议将传统Spring Boot服务改造为支持AI交互的智能系统。MCP作为“万能适配器”,让AI以统一方式与多种服务和数据源交互,降低开发复杂度。文章以图书管理服务为例,详细说明了引入依赖、配置MCP服务器、改造服务方法(注解方式或函数Bean方式)及接口测试的全流程。最终实现用户通过自然语言查询数据库的功能,展示了MCP在简化AI集成、提升系统易用性方面的价值。未来,“对话即服务”有望成为主流开发范式。
6109 7
|
测试技术 API 微服务
性能测试并发量评估新思考
性能测试并发量评估新思考
501 20
性能测试并发量评估新思考
|
移动开发 数据可视化 搜索推荐
深入探索:主流低代码开发平台的应用场景及开发流程
低代码虽然强大,但并非万能。假如一家企业引进了低代码,就让其开发团队“下课”,把开发控制权完全交给业务团队,那他们在达成目标上就会困难重重。但对于某些特定的场景,低代码绝对是一项强大的技术。它能迅速补齐能力短板,为部分用户群体的核心软件构建创造新的可能,还能让业务团队按需自助搭建应用。
下一篇
oss云网关配置