接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据。单表查询里面的内容也是比较多的,比如单表查询结合比较运算符、逻辑运算符、以及in not in 、between...and、模糊查找、排序查找、去重查找、空值的处理、any以及all的使用。接下来就看一下关于单表查询的使用吧!

我们这里使用oracle自带的一个用户scrott用户,这个用户在数据库处于锁定状态,我们需要把它给解锁。解锁的sql语句是:

alter user scott account unlock identified by test1;
--scott 被锁住 解锁并为scott用户设置登录密码 test1 密码可以随意设置

解锁以后,就可以使用scott下面的表了。我们看一下scott用户下面有哪些表?

我们先使用sql语句查询一下这个emp张表。

select * from emp;

查询结果如下:

1.结合比较运算符使用

敲笔记: >  大于    < 小于   >= 大于等于   <= 小于等于   != 不等于   <>不等于

--查询工资超过3000的员工
select * from emp where sal>;
--查询工资大于3000且职位是clark的员工
select * from emp where sal> or job='ClERK';
--查询工资大于1500 或者工资不等于7566的员工
select * from emp where sal> or sal != ;
--查询工资小于1600的员工
select * from emp where sal<=;

例子:查询工资小于等于1600的员工

select * from emp where sal<=;

查询结果:

2.结合逻辑运算符使用 and or 

敲笔记了:and 优先级大于or and(链接的两个条件都要满足) or(链接的两个条件有一个满足)

先看下使用or进行查询sql

select * from emp;
--查询emp表工资大于3000或者编号大于6000的员工
select * from emp where sal> or empno> and empno<;

查询结果:

在看使用and查询sql

--查询emp表工资大于3000并且编号大于6000的员工
select * from emp where sal> and empno>;

查询结果如下:

3.结合in  not in使用

in  在什么什么里面  not in 不在什么什么里面

--查询工资属于1500    员工信息
select * from emp where sal in (,,);

查询结果:

not  in 的实例:

--查询工资不属于3000   的员工信息
select * from emp where sal not in (,,);

查询结果:

4.结合between...and...使用

between ... and 在什么什么之间

--查询工资在1500-3000的员工信息
select * from emp where sal between and ;

查询结果:

在来一个例子:

--查询工资在1500-3000的员工信息且职位是SALESAMAN的员工
select * from emp where sal between and and job='SALESMAN';

查询结果:

5.模糊查找

%代表通配符。就是可以和任意字符匹配的意思,_ 表示的是匹配一个字符

--查询emp表中的名字包含A的员工信息
select * from emp where ename like '%A%';

查询结果:

继续来一个例子:

--查询mgr编号中中以7开头以8结尾的字符的员工信息
select * from emp where mgr like '7__8';

查询结果:

6.排序查找

order by 是通过什么来排序, 默认是升序排列,也可以使用asc  降序是desc 。

--通过sal排序 默认升序
select * from emp order by sal;

查看结果:

通过sal排序,默认升序

--通过sal排序 降序排序
select * from emp order by sal desc;

查看结果:

7.去重查找

使用distinct  去除重复值

--将job中的salesman进行除去重复
select distinct job from emp;

查看结果:

把salesman重复的去掉,只保留一个。在按照ename进行去除重复值:

--将ename去除重复值
select distinct ename from emp;

查看结果:

去除重复ename值成功,去除就是不显示重复的名字的意思。别把去重理解的太高大上哦~

在演示一个去重失败的例子:

--将job和ename去重,失败,只能去除一个列名
select distinct job,ename from emp;

查看结果:

8.空值处理

is null  空值

--查询mgr的值为null的员工信息
select * from emp where mgr is null;

查询结果:

is not null不是空值

--查询sal不是null的员工信息
select * from emp where sal is not null;

查看结果:

注意:查询空值是is null  而不是 = null

9.结合any和all的使用

--all 表示所有条件都要满足     套路:大于最大值,就满足所有

--all  表示所有条件都要满足
--any 表示满足任意一个
select * from emp where sal>=all(,,); --大于最大值就满足所有值
select * from emp where sal>=; --等于于>=all(,,)

查询结果:

--any 表示满足任意一个   套路:大于最小值,就满足所有

select * from emp where sal>=any(,,); --大于最小值,就满足所有

等价于:

select * from emp where sal>=any(,,); --大于最小值,就满足所有
select * from emp where sal>=; --等价于 >=

查询结果:

关于单表查询,到这里我们就说完了,下一篇给大家分享 关于日期的操作;

Oracle数据库之单表查询的更多相关文章

  1. MySQL数据库之单表查询中关键字的执行顺序

    目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...

  2. MySQL数据库语法-单表查询练习

    MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...

  3. Oracle数据库之多表查询一

    上一篇给大家介绍了数据的单表查询,相信大家对于单表的查询应该都有了一些了解.单表查询在数据库中的使用会有一些,但并不是很多,但是作为初学者,我们需要学习单表查询的思路.今天呢,我们为大家介绍一下数据库 ...

  4. 数据库——MySQL——单表查询

    单表查询语法: SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 关键字的执行 ...

  5. mysql数据库之单表查询多表查询

    单表查询 前期表准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex e ...

  6. mysql数据库之单表查询

    单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...

  7. Oracle数据库之七 多表查询

    七.多表查询 ​ 对于查询在之前已经学过了简单查询.限定查询.查询排序,这些都属于 SQL 的标准语句,而上一章的单行函数,主要功能是为了弥补查询的不足. ​ 而从多表查询开始就正式进入到了复杂查询部 ...

  8. oracle数据库之多表查询二

    多表查询解题思路: 1.分析题目要查询的结果涉及到那几张表 2.将每张表建立关联条件,否则会产生笛卡尔积 3.分清楚查询的条件,然后使用and将条件链接 4.涉及到分组查询的需要使用聚合函数 5.分组 ...

  9. Oracle查询优化改写--------------------单表查询

    一.查询表中所有的行与列 二.从表中检索部分行 三.查找空值 四.将空值转化为实际值(coalesce) 五.查找满足多个条件的行(查询部门为10中所有的员工.所有得到提成的员工,以及部门20中工资不 ...

随机推荐

  1. mysql + unidac 使用事务例子

    //备注:mysql必须是使用innoDB引擎才支持事务功能,否则以下事务相关代码将失效.//SQL SERVER和Oracle还没试,明天回公司试了再发代码.procedure TForm1.btn ...

  2. Winform 自定义TabControl实现浏览器标签

    作者:Gavin(daisong.michelangelo@gmail.com) 时间: Nov, 2015 封面图片为Gavin原创,请勿未经允许私自引 最近因为工作需要,要做一个桌面浏览器,和大多 ...

  3. Linux环境下安装XAMPP的PHP的PDF扩展

    安装pdf扩展1. wget http://pecl.php.net/get/pdflib-4.1.2.tgz2. tar zxvf pdflib-4.1.2.tgz3. cd pdflib-4.1. ...

  4. 控制台执行CI方法

    执行方法:进入到ci放入口文件目录 执行 php index.php 控制器 方法 #php index.php home index

  5. (转)Oracle存储过程中的事务

    本文转载自:http://www.cnblogs.com/linjiqin/archive/2011/04/18/2019990.html 1.事务用于确保数据的一致性,由一组相关的DML语句组成,该 ...

  6. 数据的持久性存储(二)——CoreData(附Demo)

    CoreData是一款稳定.功能全面的持久性工具.(本文参考iphone开发3所写,比较简要,需详细了解可以参考iphone开发3) 首先创建一个新的项目CoraData,记得勾选Use Core D ...

  7. TI c6657开发资源

    TI 官方论坛:英文  中文 http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index.html http://e ...

  8. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  9. 全文检索引擎Solr系列——整合中文分词组件IKAnalyzer

    IK Analyzer是一款结合了词典和文法分析算法的中文分词组件,基于字符串匹配,支持用户词典扩展定义,支持细粒度和智能切分,比如: 张三说的确实在理 智能分词的结果是: 张三 | 说的 | 确实 ...

  10. Mysql参见SHOW命令总结

    Mysql参见SHOW命令总结 MySQL Show命令的用法大全