文章目录

  • 一、简单查询
    • 1、检索所有的列 *
    • 2、检所指定的列
    • 3、带有表达式的select子句
    • 4、为列指定别名
  • 二、筛选查询
    • 条件查询:where关键词
  • 三、范围查询
    • 指定范围查询的过滤语句:between...and...
  • 四、模糊查找LIKE

检索数据

select {[distinct] 列名...}
from 表名
[where 选择条件]
[group by 列名]
[having 选择条件]
[order by 列名]

一、简单查询

只包含select子句和from子句的查询就是简单查询

1、检索所有的列 *

例1:查询dept表中所有的数据

select * from dept;

例2:查询表dept和salgrade

select * from dept,salgrade

2、检所指定的列

格式:select 列名1,列名2... from 表名;
例:在scott模式下,检索emp表中指定列(job,ename,empno)

select job,ename,empno from emp;

补充:ROWID:行标识符,是Oracle数据库内部使用的隐藏列
案例:检索emp表指定的列job和ename,还包括rowid伪列

select rowid,ename,job from emp;

3、带有表达式的select子句

算术运算符:±*/()
例:检索emp表的sql列,把其值调整为原来的1.1倍

select sal*(1+0.1),sal from emp;
select sal 原有工资,sal*(1+0.1) 现有工资 from emp;

4、为列指定别名

两种:as 关键字;直接指定列名
即:select 列名 别名 from 表名;
select 列名 as "别名" from 表名;
例:检索emp表的指定列(empno,ename,job),并使用as关键字为这些列指定中文别名(员工编号,员工名称,职务)

select empno as "员工编号",ename as "员工名称",job as "职务" from emp;

select empno as 员工编号,ename as 员工名称,job as 职务 from emp;

二、筛选查询

在select语句中,where子句位于from子句之后,其语法格式如下:

select 列名
from 表名
where 选择条件

条件查询:where关键词

格式:select 列名|* from 表名 where 选择条件;
例:查询工资高于1200的有哪些人?

select * from emp where sal>1200;

(1)all:只有与所有的元素比较值都为true,才返回数据行
格式:select 列名 from 表名 where 列名 比较运算符all(值1,值2,值3...);
案例:使用all关键字过滤工资(sal)同时不等于3000,950,800的员工记录

select empno,sal,ename from emp
where sal != all(3000,950,800);

注意:在进行比较筛选的时候,字符串和日期必须使用单引号标识。

(2)判断字段中是否存在内容:

  • 内容为空:is null
    例:查询每月可以得到奖金的雇员信息
select * from emp where comm is not null;
  • 内容不为空:is not null
    例:查询没有奖金的雇员
select * from emp where comm is null;

注意:
a.如果查询出现多个条件,在where语句之后,条件与条件之间用and进行连接
例:要求查询出,基本工资大于1500,同时可以领取奖金的雇员信息

select *
from emp
where sal>1500 and comm is not null;

b.满足其中一个条件,使用关键字or来进行连接
例:查询出基本工资大于1500,或者可以领取奖金的雇员信息

select *
from emp
where sal>1500 or comm is not null;

(3)NOT关键字:取反,把真的条件变为假,假的变为真
格式:select 列名 from 表名 where not(条件);
例:查询出基本工资不大于1500,同时不可以领取奖金的雇员信息

select *
from emp
where not(sal>1500 or comm is not null);

select *
from emp
where sal<=1500 and comm is null;

例:查询基本工资大于1500,但是小于3000的全部雇员信息

select *
from emp
where not(sal<=1500 or sal>=3000);

select *
from emp
where sal>1500 and sal<3000;

三、范围查询

指定范围查询的过滤语句:between…and…

格式:select 列名|* from 表名 where 列名 between 最小值 and 最大值;
select 列名|* from 表名 where 列名 not between 最小值 and 最大值;
例:查询工资在1500和3000之间的员工信息情况

select * from emp where sal between 1500 and 3000;

Oracle对数据的大小写是非常敏感的:
注意:除了上述语法外,还有in操作符不仅可以用在数字上,还可以用在字符串信息上

格式:
在列表内:where 列名 in(值1,值2...)
不在列表内:where 列名 not in(值1,值2...)

例:要求查询出姓名是SMITH、ALLEN、KING的雇员信息

select * from emp where ename in(SMITH,ALLEN,KING);

例:查询出雇员编号不是7369,7499,7521的雇员的具体信息

select *
from emp
where empno not in(7369,7499,7521);

四、模糊查找LIKE

即:输入一个指定关键字,把符合的内容全部查询出来
%:可以匹配任意长度的内容分;
_:可以匹配一个长度的内容
格式:where 列名 like '字符匹配符'

例:查询出所有雇员姓名中第二个字母包含“M”的雇员信息

select *
from emp
where ename like '_M%';

LIKE还可以方便进行日期的查找功能
例:查询雇佣日期包含81的雇员信息

select *
from emp
where hiredate like '%81%';

扩展:在like前面也可以加上not,表示否定的判断
NOT LIKE 不要匹配到的内容
例:查询出不要雇员姓名中第二个字母包含“L”的雇员信息

select *
from emp
where ename not like '_L%';

Oracle---查询相关推荐

  1. oracle 查询本周数据生成下周数据

    CreateTime--2018年1月4日16:38:01 Author:Marydon oracle 查询本周数据生成下周数据 第一步:查询指定区间数据 第二步:改变查询结果的值 查询日期字段+7 ...

  2. Oracle 查询今天、昨日、本周、本月和本季度的所有记录

    Oracle 查询今天.昨日.本周.本月和本季度的所有记录 www.MyException.Cn  网友分享于:2013-07-17  浏览:351次 Oracle 查询今日.昨日.本周.本月和本季度 ...

  3. 订购后如何限制Oracle查询返回的行数?

    有没有一种方法可以使Oracle查询像包含MySQL limit子句那样工作? 在MySQL ,我可以这样做: select * from sometable order by name limit ...

  4. Oracle查询某一天日期数据的SQL语句的几种写法

    本文章向大家介绍Oracle查询某一天日期数据的SQL语句的几种写法,主要包括Oracle查询某一天日期数据的SQL语句的几种写法使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值, ...

  5. 超适合新手的Oracle查询语句

    这篇文章主要介绍了oracle查询语句,有助于新手迅速熟悉ORACLE基本语法有助于新手迅速熟悉ORACLE基本语法,需要的朋友可以收藏下. oracle查看用户状态 select username, ...

  6. Oracle 查询字段在什么表

    Oracle 查询字段在什么表 -- 查询字段在什么表 select * from all_tab_cols t where t.column_name='ABC'; -- 查询字段在什么表并且 判断 ...

  7. Oracle查询忽略大小写的实现方法

    转自:http://database.51cto.com/art/201010/231561.htm Oracle查询有时候要受到一些条件的制约,比如大小写.下面为您介绍了一个实现Oracle查询忽略 ...

  8. oracle分页查询前10条,Oracle查询前十条记录及分页查询(第5条到第10记录)

    Oracle查询前10条记录及分页查询(第5条到第10记录) 如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识 ...

  9. 160804、oracle查询:取出每组中的第一条记录

    oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info  group ...

  10. oracle统计每日归档大小,Oracle查询最近几天每小时归档日志产生数量的脚本写法...

    下面给大家分享Oracle查询最近几天每小时归档日志产生数量的脚本写法,脚本如下所示: SELECT SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1 ...

最新文章

  1. nodejs-EventEmitter
  2. The road to learning English-Listening
  3. 【论文常用网站】-昍陽
  4. 2016年新开始----新的征程
  5. Android 和 iOS 各有千秋
  6. html语言空格怎么写,html的空格代码怎么写?
  7. 河南大学计算机组成原理,河南大学计算机组成原理考点.pdf
  8. grafana与阿里云日志中心结合制作图表
  9. python求斜率_如何计算numpy中的斜率
  10. 非常棒的口才训练方法
  11. 车载通信——CAN收发器与CAN控制器
  12. docker自定义elasticsearch镜像——集成中文分词器smartcn
  13. 游戏行业:什么样的架构才可以对DDoS免疫?
  14. 把手机变成linux桌面,秒变PC!骁龙835手机终于塞入完整桌面OS
  15. 软考高级信息系统项目管理师系列之五:项目立项管理
  16. Photoshop 批量修改图片尺寸
  17. 数字信号处理翻转课堂笔记11
  18. php readfile 中文,有关php readfile()函数的文章推荐10篇
  19. 你简历不写精通吗,你说怎么把Bean塞到Spring容器?
  20. [Android通信]基于socket的聊天app(七):好友分组

热门文章

  1. Intellij IDEA神器那些让人爱不释手的小技巧
  2. execjs 调用js出现找不到windows对象
  3. Python+班级管理系统 毕业设计-附源码171809
  4. vocab.get(word, vocab.get(UNK))
  5. Codeforces 148D. Bag of mice(概率dp)
  6. 电精2 android,安卓街机模拟器|街机电精2(街机模拟器)安卓版 - 系统天堂
  7. 51单片机 c语言 汇编,51单片机之时钟(C语言和汇编两种方式实现)
  8. 虚拟机安装报错-启动失败-Intel VT-x 处于禁用状态
  9. 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
  10. word公式和图片显示不完全