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

    Java容器指的是List,Set,Map这些类.由于翻译的问题,问到集合,Collection这些指的都是它们几个. List ArrayList 随机访问快 LinkedList 插入删除快 这个 ...

  2. python一个简单的web服务器和客户端

    服务器:      当客户联系时创建一个连接套接字      从这个连接接收HTTP请求(*)      解释该请求所请求的特定文件      从服务器的文件系统获取该文件      并发送文件内容 ...

  3. erlang热部署

    以下流程参考rebar的wiki,亲测 rebar的版本一定要注意,高版本对于下面两个指令有bug rebar generate-appups rebar generate-upgrade 经过一个个 ...

  4. 我的HibernateSearch笔记

    话不多说,直接上代码: 实体类: package com.smt.pojo; import java.io.Serializable; import javax.persistence.Column; ...

  5. 分布式缓存系统 Memcached slab和item的主要操作

    上节在分析slab内存管理机制时分析Memcached整个Item存储系统的初始化过程slabs_init()函数:分配slabclass数组空间,到最后将各slab划分为各种级别大小的空闲item并 ...

  6. mysql索引之二:数据结构及算法原理

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  7. 文件操作之增删改查3---文件的修改,f.replace(),在linux里的一些应用sed,with语句方法来打开一个或多个文件避免忘记关闭,python一行写的太长,怎么编写多行的规范

    f.replace()with open("xxx","r",encoding="utf-8") as f: 想修改文件中间的数据,有两个办 ...

  8. PHP $_SERVER变量

    <?php #测试网址: http://localhost/t/test.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br ...

  9. thinkphp中的多字段模糊匹配

    引言:有时候查询要匹配多个字段.比如查询地址,地址是由多个字段组成的.有省.市.区等等,以及详细地址.这个时候如何查询呢? 实现不同字段相同的查询条件 $User = M("User&quo ...

  10. Python3之itertools模块

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 1.Infinite Iterators Iterator Arguments Results Example cou ...