接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据。单表查询里面的内容也是比较多的,比如单表查询结合比较运算符、逻辑运算符、以及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. Angular2配置文件详解

    初学接触Angular2的时候,通过ng new your-project-name 命令生成一个工程空壳,本文来介绍下每个文件的作用及含义. 先来看看src的文件目录: 文件详解 File 文件 P ...

  2. 基于jwt和角色的访问控制解决方案

    0,主要解决两个问题:1身份验证(防止httpclient拼接请求),2权限控制 1,身份验证使用jwt,在java就是jjwt jwt可以比较好的整合restful,对无状态客户端比较友好,(用se ...

  3. dubbox消费者启动成功,却无法连接注册中心

    使用dubbox作为服务提供端很好实现,因为git的说明和网上有很多的例子可供参考,但是消费端都一笔带过,简单得很,初学者往往以为只要配置如下3样东西就够了: <?xml version=&qu ...

  4. Delphi使用Indy、ICS组件读取网页

    使用Indy 10中TIdHTTP的例子: 代码 uses IdHttp; . . . function HttpGet(const Url: string; var Html: string): B ...

  5. 别人的dubbo学习笔记

    本文转载自:http://blog.csdn.net/tao_qq/article/details/49952229 学习dubbo,开始做一些笔记. 1> 启动dubbo-admin模块的时候 ...

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

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

  7. WCF 身份验证 通过检查客户端IP

    WCF 身份验证 功能描述: 服务运行的时候,通过配置文件获取所有可访问SOA端的服务IP.每次客户调用服务时获取IP对比判定通过. 以下是获取客户端IP的代码: /***************** ...

  8. 1107 Social Clusters

    题意:给出n个人(编号为1~n)以及每个人的若干个爱好,把有一个或多个共同爱好的人归为一个集合,问共有多少个集合,每个集合里有多少个人? 思路:典型的并查集题目.并查集的模板init()函数,unio ...

  9. python开发面向对象基础:组合&继承

    一,组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合      人类装备了武器类就是组合 1.圆环,将圆类实例后传给圆环类 #!/usr/bin/env python #_*_ ...

  10. ansible命令使用

    ansible命令使用 查看每个服务器的主机名 1 $ ansible multi -a "hostname" 使用一个线程执行命令,相当于顺序在每个服务器上运行(默认5个线程执行 ...