当前位置: 首页 > article >正文

oracl:数据查询语言DQL

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。

sql分类: 

基本查询语法

数据查询语言(DQL - Data Query Language)

查询的关键词 select

where对查询结果进行过滤

别名

只有列名和表名可以起别名别名是一种临时的名称,用于在查询中为表名或列名提供一个简短、易于理解的替代名称。别名在查询过程中被使用,不会影响数据库中实际的表名或列名

作用范围: 仅限于当前select语句

示例

d_name是 列名department_name的别名; e 是 employees 这个表名的别名, 列名和别名之间可以使用as ,表名和别名之间不能

SELECT department_name  d_name
FROM employees  e
SELECT department_name as d_name
FROM employees  e;

order by 排序

对查询结果进行排序 

可以按单列或多列进行升序(ASC)或降序(DESC)排序。默认是升序,升序时可以不写ASC

排序规则: 排序时有多个字段时, 先按照第一个字段的排序方式进行排序,再按照第二个字段的排序方式进行排序,以此类推

示例

注意: NULL在oracle排序中是最大值, 即使使用了nvl函数进行处理后NULL还是被当成最大值, 可以使用nulls first和nulls last控制空值出现的位置

任何值和NULL做数学计算(+-*/)结果为NULL

group by 分组/去重

对查询结果进行分组或去重

使用group by 时,select后面的列名必须出现在group by 后面或者属于聚合函数

 

分组示例:

补充: 

聚合函数: 

count(*) : 统计表中的所有行数,包括包含 NULL 值的行

count(1): 几乎等于count(*), 在oarcle中 COUNT(1) 可能被优化得更好,因为它只需要检查是否存在行,而不需要检查列值。

count(字段) : 统计指定字段中非 NULL 值的行数

 listagg() : 用于将多行数据合并成一行,并用指定的分隔符连接这些数据

示例 

 

去重: group by和 distinct 和 row_number

GROUP BY 可以间接地用于去重,因为它会将具有相同分组列值的行合并为一组,并返回每组的一条记录

distinct 

distinct 后面跟多个字段时,是对字段的组合进行去重

ROW_NUMBER() 

是一个窗口函数,用于为每一行分配一个唯一的序号。它通常与 PARTITION BYORDER BY 一起使用,用于在分组内对行进行排序

示例

 

 

group by 和 order by 

order by 是对数据进行排序,排序方式: ASC升序(默认) ; DESC降序

示例

sql执行顺序

group by 和 having

HAVING 用于对分组后的结果进行过滤

sql的执行顺序

条件过滤: where和having

相同点: 都是对数据进行过滤

不同点:

示例

sql的执行顺序

WHERE amount > 100:在分组之前,筛选出销售金额大于 100 的记录

GROUP BY region:按 region 列对where过滤后的数据进行分组,计算每个地区的销售总额。

HAVING SUM(amount) > 300:对分组后的结果进行过滤,只保留销售总额大于 300 的地区

书写顺序

执行顺序

查询条件: where/having子句的基础

比较运算符

 > , < ,= , <= , >= , != ,<> (最后2个表示不等于)

用于在SQL查询中比较两个表达式的值,并返回布尔值(TRUE、FALSE或NULL)

示例 

逻辑运算符

示例

空值判断

示例

范围查询

示例: 范围查询

示例: 范围查询和比较运算符的结合

模糊查询 like

也称模糊判断 ,格式: 字段 like ' 匹配内容 ' 

示例


http://www.kler.cn/a/525807.html

相关文章:

  • CMAKE工程编译好后自动把可执行文件传输到远程开发板
  • Edge-TTS在广电系统中的语音合成技术的创新应用
  • Baklib引领企业内容中台建设的新思路与应用案例
  • 准备知识——旋转机械的频率和振动基础
  • 支持selenium的chrome driver更新到132.0.6834.110
  • 从替代到覆盖:暴雨信创服务器打开市场新局面
  • 密码强度验证代码解析:C语言实现与细节剖析
  • ChatGPT与GPT的区别与联系
  • cubemx配置ETH(以太网)
  • (java) IO流
  • 利用Edu邮箱解锁Notion Pro,提升学习与工作效率
  • 【Envi遥感图像处理】008:波段(批量)分离与波段合成
  • 【Prometheus】jmx_prometheus_javaagent监控java应用
  • 网站快速收录:提高页面加载速度的重要性
  • 使用DeepSeek批量生成文章,对搜索引擎产生一定影响。
  • 12.udp
  • 完整解读:从DeepSeek Janus到Janus-Pro!
  • 天融信 NGFW2.3 mibs
  • 书生大模型实战营4
  • SpringBoot 基础(Spring)
  • AI 计算的未来:Deepseek从中心化到去中心化的变革
  • c++:vector
  • 【Linux系统】进程间通信:认识命名管道
  • windows10 配置使用json server作为图片服务器
  • 笔记:使用ST-LINK烧录STM32程序怎么样最方便?
  • 设计模式Python版 适配器模式