阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 中的SELECT 关键字(查询、检索)

456次阅读
没有评论

共计 3082 个字符,预计需要花费 8 分钟才能阅读完成。

1. SELECT 关键字用法:

检索单个列:select 列名 from 表名;
例:select ename from emp;
检索多个列:select [列 1, 列 2, … , 列 N] from 表名;
例:select ename , sal from emp;
检索所有列:select * from 表名;
例:select * from emp;

2. 通配符(A):

*:代表 0 个或多个列
_ : 代表单个字符
% : 代表 0 个或多个字符

使用通配符的优点:书写方便、可以检索未知列
使用通配符的缺点:降低检索的性能

3. 别名:(B)

给表取别名(类似对象名):形如:select e.ename , e.sal from emp e;
给列取别名(用于显示):
方式一:列名后面加空格再加别名(系统会自动转成大写显示不能有空格等特殊符号)
如:select ename , sal*12 yearsal from emp;
方式二:列名后加空格再加“别名”(会直接以双引号里的格式显示,一般用于别名中包含空格等特殊符号的情况)
如:select ename , sal*12 “year sal” from emp;
方式三:列名加空格加 as 加空格加别名:
如:select ename , sal*12 as “year sal” from emp;

4.distinct 关键字(去重):(A)

列:select distinct job from emp;
• distinct 必须放在开头(select 之后)
•多字段(多个列)–每个字段不一样才去重

 

5.where 关键字(过滤)

5.1 作用:

一般放在 from 关键字之后,用于过滤不需要的数据,保留有用的数据

5.2 操作符:

1. =,!=,<>,<,>,<=,>=,any,some,all 条件判断

列:查询工资大于 2000 的员工信息

select * from emp where sal>=2000 ;

列:查询工资等于 800 或 3000 的员工信息

select * from emp where sal=any(800,3000) ;

any(或):满足其中一个条件即可

some:和 any 一样

all(与):需要满足所有条件

2. is null,is not null 值是否为 null
is null:为空
is not null:不为空
例:查询 comm 列不为空的员工
select * from emp where comm is not null;

3. between x and y x 与 y 之间
例:查询工资在 2000 到 3000 的员工信息
select * from emp where sal between 2000 and 3000;

4. in(list),not in(list)值是否包含在 list 中
in(list)在 list 列表内
not in(list)不在 list 列表内
注:list 可以是一个查询返回的查询结果
例:查询职务为 MANAGER 和 ANALYST 的员工信息
select * from emp where job in(‘MANAGER’, ‘ANALYST’);
注:list 里的成员为字符需要加单引号,数值不用加单引号

5. exists(sub-query)、not exists(sub-query)子查询
sub-query:子查询
exists(sub-query):满足该条记录的子查询时(有查找到)执行该条记录父查询
not exists(sub-query):不满足该条记录的子查询时执行父查询
如:select * from emp where exists(select *from dept where LOC = ‘DALLAS’);
子查询中 LOC 列存在 DALLAS 则执行父查询返回 emp 中所有列
注:exists 是逐条记录去比较, 子查询能查到才会去执行父查询,同样子查询只有能查到结果就会执行父查询,所有一般需要添加其他条件,例如:
使用 exists 查询部门名称为 SALES 和 RESEARCH 的雇员姓名、工资、部门编号。
select ename, sal, deptno
from emp e
where exists (select deptno from dept d where dname in(‘SALES’, ‘RESEARCH’) and e.deptno=d.deptno);
6. like _ ,%,escape‘\‘_\% escape‘\’模糊查找
通配符“_”和“%”参考第 2 点
escape:定义转义字符 escape 关键字 后面的字符将被定义为转义字符
escape 放于 like 语句后面
列:查询所有员工中姓名包含“M”的员工信息 注:数据区分大小写
select * from emp where ename like ‘%M%’;

 

6.order by 关键字(排序):(A)

6.1 用法:

例:对 emp 表按 sal 列进行排序(默认为升序)
select * from emp order by sal;

6.2 那如何指定是升序或降序?

select * from emp order by sal asc;
select * from emp order by sal desc;
asc 代表升序,desc 代表降序

6.3 按多个列进行排序

当一个列中出现相同的值时,可能需要按两个列或多个列进行排序,这时可以在 order by 后添加多个列(用逗号分隔),在各个列名后面可以加上 asc 或 desc 指定升序或降序。
例:select * from emp order by sal desc ,ename desc;

7. 创建计算字段(列)(A)

7.1 为什么需要计算字段?

我们经常需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序中重新进行计算或格式化。

7.2 创建计算字段的方式

方式一:对某个列的数值进行计算(+-*/)
Sql 允许 select 子句(select 后添加列名的位置)中出现由 +,-,*,/ 以及列名和数字组成的表达式,将指定列中的值按照表达式进行计算,并创建新的一个列(可以对这个类设置别名)。
例:select sal*12 yearsal from emp;
yearsal 为别名

方式二:对几个列中的数据进行拼接,可以在列之间加入格式,
例:select (ename ||’ 的年薪为:’|| sal*12) from emp;

注:创建出来计算字段是一个列但它并不实际存在于数据库表中

8. 并集,全集,交集,差集(A)

8.1 union(并集):

将查询的两个结果(集合)组合成一个结果并过滤掉重复部分
例:查询工资大于 2000 以及部门编号为 20 的员工信息
select * from emp where sal>2000 union select * from emp where deptno=20;

8.2 union all(全集):

作用与 union 一样但不过滤重复部分
例:查询工资大于 2000 以及部门编号为 20 的员工信息(不去除重复)
select * from emp where sal>2000 union all select * from emp where deptno=20;

8.3 intersect(交集):

返回查询结果中相同的部分。
例:查询工资大于 2000 并且部门编号为 20 的员工信息
select * from emp where sal>200 intersect select * from emp where deptno=20;

8.4 minus(差集):

返回在第一个查询结果中与第二个查询结果不相同的那部分记录。
例:查询工资大于 2000 并且部门编号不是 20 的员工信息
select * from emp where sal>2000 minus select * from emp where deptno=20;

更多 Oracle 相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3082字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7993805
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...