前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle 中的SELECT 关键字(查询、检索)

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

作者头像
星哥玩云
发布2022-08-18 13:55:16
3.7K0
发布2022-08-18 13:55:16
举报
文章被收录于专栏:开源部署

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;

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. SELECT 关键字用法:
  • 2. 通配符(A):
  • 3. 别名:(B)
  • 4.distinct关键字(去重):(A)
  • 5.where关键字(过滤)
    •   5.1 作用:
      •   5.2 操作符:
      • 6.order by关键字 (排序): (A)
        • 6.1 用法:
          • 6.2 那如何指定是升序或降序?
            • 6.3 按多个列进行排序
            • 7.创建计算字段(列)(A)
              • 7.1为什么需要计算字段?
                • 7.2创建计算字段的方式
                • 8.并集,全集,交集,差集(A)
                  • 8.1 union(并集):
                    • 8.2 union all(全集):
                      • 8.3 intersect(交集):
                        • 8.4 minus(差集):
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档