Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >oracle基础|oracle排序用法|order by用法|where用法

oracle基础|oracle排序用法|order by用法|where用法

作者头像
小小鱼儿小小林
发布于 2021-10-09 03:03:15
发布于 2021-10-09 03:03:15
3.9K00
代码可运行
举报
文章被收录于专栏:灵儿的笔记灵儿的笔记
运行总次数:0
代码可运行

目录

前言

1、Order by 子句的使用

2、Where子句的使用


前言

前面给大家讲解了oracle的基础用法,大家可以点击这里回顾一下:oracle基础|oracle的认知|Select用法详解

然后在文末,也顺便给大家简单的提及了order by和where的用法,这篇文章就给大家详细的介绍一下order by 和 where的用法

1、Order by 子句的使用

select column....

from ....

order by ...

代码语言:txt
AI代码解释
复制
1) Order by子句在整个
代码语言:txt
AI代码解释
复制
select语句中的位置:
代码语言:txt
AI代码解释
复制
始终位于最后
代码语言:txt
AI代码解释
复制
2) order by后可以跟什么:
代码语言:txt
AI代码解释
复制
列名,列的别名,表达式,
代码语言:txt
AI代码解释
复制
列出现在select关键字后的
代码语言:txt
AI代码解释
复制
顺序(列号);
代码语言:txt
AI代码解释
复制
3) order by后可以跟多列,
代码语言:txt
AI代码解释
复制
表示先按第一列排序,
代码语言:txt
AI代码解释
复制
如第一列有相同值再按
代码语言:txt
AI代码解释
复制
第二列进行排序,如前二列
代码语言:txt
AI代码解释
复制
均有相同值,则按第三列进行排序...
代码语言:txt
AI代码解释
复制
4) ASC表升序,可以省略.
代码语言:txt
AI代码解释
复制
DESC表降序。
代码语言:txt
AI代码解释
复制
5)空值永远是最大的。
代码语言:txt
AI代码解释
复制
升序排序的时候,空值放在最后

降序排序的时候,空值放在最前面的

如果降序的时候,null在全前面,你不想要null在前面,可以加上null last

eg:order by column null last

note: 出现在order by子句之后的列,不一定出现在select子句中。

2、Where子句的使用

语法:

select col_name,...

from tb_name

where col_name 比较操作表达式

逻辑操作符

col_name 比较操作表达式

代码语言:txt
AI代码解释
复制
1) 作用:对SQL语句返回的数据集进行筛选;
代码语言:txt
AI代码解释
复制
2) 位置:紧跟在from子句后
代码语言:txt
AI代码解释
复制
3) 内容:由一至多个限定条件组成,限定条件由表达式, 比较符, 字面值组成。
代码语言:txt
AI代码解释
复制
4) 所有字符串和日期要用单引号括起来,数值不需要单引号。
代码语言:txt
AI代码解释
复制
日期在Oracle里有特定的格式,’DD-MON-YY’(具体看日期的显示格式),
代码语言:txt
AI代码解释
复制
否则作为一个字符串。
代码语言:txt
AI代码解释
复制
5) 几种常见的操作符:

1》逻辑比较操作符

= > < >= <= != <> ^=

需求:查找工资大于1000的所有员工的last_name和工资。

需求:查找不在45号部门工作的所有员工的id,last_name和dept_id,并且按照dept_id 升序进行排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,last_name,dept_id

from s_emp

where dept_id<>45

order by dept_id;

2》sql比较操作符

between and:在什么范围之内

in(list):在一个列表中

like:模糊查询,即值不是精确的值的时候使用

通配符,即可以代替任何内容的符号

%:通配0到多个字符

_: 当且仅当通配一个字符

转义字符:

默认为\,可以指定 指定的时候用escape 符号指明即可,转义字符只能转义后面的一个字符

代码语言:txt
AI代码解释
复制
between 1 and 4: 包括起止值。限定内容为1到4。

in (1,2,4): 限定内容为1,2,4。

is null:对null值操作特定义的操作符,不能使用=

3》逻辑操作符

当条件有多个的时候使用

and:且逻辑

or:或逻辑

注意:and逻辑比or逻辑要高

not:非逻辑

4)

需求:

1.查找员工id在5,20之间的所有员工的id和last_name

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,last_name

 from s_emp

 where id between 5 and 20;

or  

select id,last_name

from s_emp

where id >=5 and id<=20;

2.查找员工id不在5,20之间的所有员工的id和last_name

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 select id,last_name

 from s_emp

 where id not between 5 and 20;

or

select id,last_name

from s_emp

where id <5 or id > 20;

3.查找在43或者44号部门的员工的id和last_name;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,last_name

from s_emp

where dept_id in(43,44);

or

select id,last_name

from s_emp

where dept_id = 43 or dept_id = 44;

需求:查看员工提成为为空的员工的id和名字

select id,last_name,commission_pct

from s_emp

where commission_pct is null;

3.逻辑操作符

当条件有多个的时候使用

and:且逻辑

or:或逻辑

注意:and逻辑比or逻辑要高

not:非逻辑

需求:查看员工部门id为41且职位名称为Stock Clerk(存库管理员)的员工id和名字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,last_name,dept_id,title

from s_emp

where dept_id = 41

and

      title = 'Stock Clerk';

练习:查看员工部门为41 或者 44号部门 且工资大于1000的员工id和名字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,last_name,dept_id,title

from s_emp

where salary > 1000

and

      (dept_id = 41

      or

      dept_id = 44);
代码语言:txt
AI代码解释
复制
   查看员工部门为41且工资大于1000 或者 44号部门的员工id和名字
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,last_name,dept_id,title

from s_emp

where salary > 1000

and

      dept_id = 41

or

      dept_id = 44;

上面两个sql注意括号的区别

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/09/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
oracle基础|oracle分组的用法|oracle分组查询|group by的使用
所谓组查询即将数据按照某列或者某些列相同的值进行分组,然后对该组的数据进行组函数运用,针对每一组返回一个结果。 tips: 1.组函数可以出现的位置: select子句和having 子句 2.使用group by 将将行划分成若干小组。 3.having子句用来限制组结果的返回。
小小鱼儿小小林
2021/10/26
6.1K0
oracle基础|oracle的认知|Select用法详解
数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
小小鱼儿小小林
2021/08/05
2.6K0
oracle基础|oracle多表查询用法|什么是等值连接(inner join)|什么是不等值连接(between)|什么是左连接(left join)|什么是右连接(right join)
所谓多表查询,又称表联合查询,即一条语句涉及到的表有多张,数据通过特定的连接进行联合显示。
小小鱼儿小小林
2021/10/26
1.8K0
select 高级查询之子查询
  在 SQL 语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块。当获得一个查询的答案需要多个步骤的操作,首先必须创建一个查询来确定用户不知道但包含在数据库中的值,将一个查询块嵌套在另一个查询块的 WHERE 字句或 HAVING 短语的条件中查询块称为子查询或内层查询。外部的 SELECT 查询语句,称为主查询或外查询。按结果集的行列数不同子查询可以分为 4 种  ♞ 标量子查询(结果集只有一行一列)  ♞ 列子查询(结果集只有一列多行)  ♞ 行子查询(结果集有一行多列)  ♞ 表子查询(结果集一般为多行多列)
Demo_Null
2020/09/28
2.7K0
MySQL基础课堂笔记「建议收藏」
​ – 查询姓名中包含德的人 SELECT * FROM student WHERE NAME LIKE ‘%德%’;
全栈程序员站长
2022/09/18
9990
MySQL基础课堂笔记「建议收藏」
Mysql使用指南
1.下载zip安装包,解压,重命名为mysql,移动到你想要的地方2.配置环境变量把bin目录加到path变量中去...
乐心湖
2021/01/18
1.1K0
SQL面试 100 问
本文介绍并分析了 100 道常见 SQL 面试题,主要分为三个模块:SQL 初级查询、SQL 高级查询以及数据库设计与开发。
FunTester
2022/12/09
2.6K0
MySql基础之DQL-数据查询语言
保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来
Java微观世界
2025/01/21
2320
MySql基础之DQL-数据查询语言
快速学习-Hive查询
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select 查询语句语法:
cwl_java
2020/02/21
2K0
快速学习-Hive查询
Oracle高级查询-imooc
本章介绍多表查询的概念,什么是笛卡尔集,等值连接、不等值连接、外连接、自连接和层次查询等多表连接查询的内容。
chenchenchen
2023/01/30
2.2K0
MySQL学习笔记【基础篇】
1、DB:数据库,保存一组有组织的数据的容器 2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据 3、SQL:结构化查询语言,用于和DBMS通信的语言
_DIY
2020/08/19
2.3K0
MySQL学习笔记【基础篇】
Oracle数据库之限定查询和排序显示详解
范例:根据之前的查询结果发现 SMITH 的工资最低,现在希望可以取得 SMITH 的详细资料。
星哥玩云
2022/08/18
1.4K0
MySQL基础
2、DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理 DB 3、SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
OY
2022/03/17
2.7K0
MySQL基础
学习python第三天数据库day2
day01回顾: 数据库: 定义:存储数据的仓库(database,简称db) 常用的数据库对象有哪些? 1).数据表(table) ***** 2).视图(view) 3).索引(index) 4).序列(sequence) 主流的关系型数据库有哪些?(枚举) oracle、mysql、sqlserver、db2... 谈一谈oracle和mysql的区别? oracle: 1).收费的(贵) 2).数据的存储量大,安全性高、效率比较快 mysql: 1).免费 2).数据的存储量小(相对而言的),安全系数以及效率方面较低(相对而言的) sql:structure query language(结构化查询语言) 分类: DDL:结构层面的操作,自动提交,无法回滚 比较强硬 包括的常用的操作如下: 建表、删表、修改表、清空表 --> 总结:结构发生变化了,都是ddl操作 建表的格式: create table 表名( 列名1 数据类型(长度), 列名2 数据类型(长度), ... 列名n 数据类型(长度) ); 建完表格之后我们可以使用desc关键字去查看表结构, desc关键字的使用如下: desc 表名; DML:数据层面的操作:不会自动提交,可以回滚比较柔和 包括的常用的操作如下: 增加数据(insert into ...) 删除数据(delete from 表名 where ...) 修改数据(update 表名 set 列名1 = 值1,列名2 = 值2,... where ...) 查询数据(select ... from 表名) 总结: 对于删除和修改数据而言,一般情况下都需要配合where子句进行相应的操作,否则会出现全删或者全改的问题!! DCL: 两个关键字:commit(提交)、rollback(回滚) day02(上午): 出题思考如何实现? 1).查询公司员工的编号,姓名,薪资,奖金率以及月收入? 以下代码有问题:因为有null值参与了算数运算,导致结果直接为null了,出现了与现实不符的情况!! select employee_id,last_name,salary,commission_pct,salary + salary * commission_pct from employees; 使用去空置换函数:nvl(m,n): 执行过程如下: 如果m得到的内容不为null,那么就拿它本身参与运算 如果m得到的内容为null,那么就用n的值参与运算 重构以上代码: select employee_id,last_name,salary,commission_pct,salary + salary * nvl(commission_pct,0) from employees; sql中的别名: 概念:使用别名的思想,可以让显示变得更加的优雅、简洁!并且可以优化我们的代码... 起别名有三种方式: 方式一: select employee_id,last_name,salary,commission_pct,salary + salary * nvl(commission_pct,0) as month_sal from employees; 方式二: select employee_id,last_name,salary,commission_pct,salary + salary * nvl(commission_pct,0) month_sal from employees; 方式三: select employee_id,last_name,salary,commission_pct,salary + salary * nvl(commission_pct,0) "month_sal" from employees; 比较理解以上的三种方式: 方式二可以认为是方式一的简化版,它们定义的别名在查询显示的时候,都是以全大写来进行显示 如果想要控制显示的大小写(效果),我们可以使用方式三来完成;我们可以认为方式三才是最实用的方式 where子句: 在查询数据的时候,很多情况下我们需要过滤掉一些不需要的内容,所以需要用到where子句来实现 记住: where紧随from 运算符: 分类: 1).比较运算符: 范围: >大于 >=大于等于 <小于 <=小于等于 =等于 <>不等于(还可以这么写:!=) 案例阶段: ①.查询员工号为200的员工的姓名、薪资和入职时间? select last_name,salary,hire_date from employees where employee_id = 200; ②.查询工资大于80
hankleo
2020/09/16
3960
MySql基础
在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。
HelloWorldZ
2024/03/20
3980
MySql基础
MySQL 子查询
子查询也称为内查询(Inner Query),必须位于括号之中。包含子查询的查询称为外查询(Outer Query)。子查询支持多层嵌套,也就是子查询可以包含其他子查询。
恋喵大鲤鱼
2023/10/12
6670
史上超强最常用SQL语句大全
关于查询语句有很多,这里基础的不再介绍。主要介绍排序查询、聚合函数、模糊查询、分组查询、分页查询、内连接、外连接、子查询
全栈程序员站长
2022/07/01
5550
【MySql】复合查询
实际开发中往往数据来自不同的表,所以需要多表查询。现在我们用三张表EMP,DEPT,SALGRADE来演示多表查询。
平凡的人1
2023/10/15
3630
【MySql】复合查询
数据库相关
【数据库系统概述】 常用的数据库有MySql、oracle等。不同数据库都支持sql标准,并且不同数据库在sql标准的基础上进行了一些扩充。 对于数据库的学习包括:sql>过程、触发器等内容,其中重要程度如下: sql>过程、触发器等 oracle数据库: 1、oracle的开发部分,包含两个部分:sql+plsql编程 2、oracle管理部分,数据库配置和运行维护 【oracle简介】 oracle默认有sys和system两个用户,其中 sys: 超级管理员,拥有操作数据库的所有权限 syst
代码改变世界-coding
2018/07/03
2.1K0
2-DQL数据查询语言
DQL查询语言 DQL基础查询语句–SELECT # DQL基础查询语句 /* 语法: SELECT 查询列表 FROM 表名; FROM可省 特点: 1. 查询列表可以是:表中的字段,常量,表达式,函数 2. 查询的结果是一个虚拟表格 */ # 选中指定库 USE myemployees; # 查询表中的单个字段 SELECT last_name FROM employees; # 查询表中的多个字段,中间用逗号隔开,对顺序无要求 SELECT last_name,first_name,e
Ywrby
2022/10/27
6290
相关推荐
oracle基础|oracle分组的用法|oracle分组查询|group by的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验