Oracle数据库之单表查询
接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据。单表查询里面的内容也是比较多的,比如单表查询结合比较运算符、逻辑运算符、以及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数据库之单表查询的更多相关文章
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
- MySQL数据库语法-单表查询练习
MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...
- Oracle数据库之多表查询一
上一篇给大家介绍了数据的单表查询,相信大家对于单表的查询应该都有了一些了解.单表查询在数据库中的使用会有一些,但并不是很多,但是作为初学者,我们需要学习单表查询的思路.今天呢,我们为大家介绍一下数据库 ...
- 数据库——MySQL——单表查询
单表查询语法: SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 关键字的执行 ...
- mysql数据库之单表查询多表查询
单表查询 前期表准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex e ...
- mysql数据库之单表查询
单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...
- Oracle数据库之七 多表查询
七.多表查询 对于查询在之前已经学过了简单查询.限定查询.查询排序,这些都属于 SQL 的标准语句,而上一章的单行函数,主要功能是为了弥补查询的不足. 而从多表查询开始就正式进入到了复杂查询部 ...
- oracle数据库之多表查询二
多表查询解题思路: 1.分析题目要查询的结果涉及到那几张表 2.将每张表建立关联条件,否则会产生笛卡尔积 3.分清楚查询的条件,然后使用and将条件链接 4.涉及到分组查询的需要使用聚合函数 5.分组 ...
- Oracle查询优化改写--------------------单表查询
一.查询表中所有的行与列 二.从表中检索部分行 三.查找空值 四.将空值转化为实际值(coalesce) 五.查找满足多个条件的行(查询部门为10中所有的员工.所有得到提成的员工,以及部门20中工资不 ...
随机推荐
- CF 504E Misha and LCP on Tree——后缀数组+树链剖分
题目:http://codeforces.com/contest/504/problem/E 树链剖分,把重链都接起来,且把每条重链的另一种方向的也都接上,在这个 2*n 的序列上跑后缀数组. 对于询 ...
- bzoj 3779 重组病毒 —— LCT+树状数组(区间修改+区间查询)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3779 RELEASE操作可以对应LCT的 access,RECENTER则是 makeroo ...
- 使用妹子UI开发的体验分享
前阵子看到一个类似bootstrap的前端UI框架,好奇心驱使下,去琢磨了一些,最终决定网站改版用这个UI试试效果: 首页+头部: 投稿页: 现成拷贝过来的评论列表: 总结: 上手难度: (熟悉boo ...
- spring-aop + memcached 的简单实现
一般情况下,java程序取一条数据是直接从数据库中去取,当数据库达到一定的连接数时,就会处于排队等待状态,某些在一定时间内不会发生变化的数据,完全没必要每次都从数据库中去取,使用spring-aop ...
- TCP,你懂的
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的. 基于IP的传输层协议.TCP在IP报文的协议号是6.TCP是一个超级麻烦的协议 ...
- nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)
nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下),安装Nginx和HttpAccessKeyModule模块(参考LNMP环境 ...
- js作用域和作用域链
作用域 首先要知道一点,js跟python都是一样的,先编译后执行 唯一的区别在于,js对于只声明,未定义的变量,报错是未定义,后面代码会有这个例子 编译的过程只有赋值和开辟空间的过程 只有函数,类才 ...
- 013. MVC5过滤器
微软提供了4中过滤器: 1.Action过滤器: 在Action方法执行之前和Action方法执行之后, 会执行此过滤器中的代码. 比如在执行public ActionResult Index()方法 ...
- maven(基础介绍一)
maven:提供的作用有以下几点: 1 jar包依赖 这个也许会maven最突出的特点了使用maven不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动的下 ...
- gevent异步,io自动切换
#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/19 # # from gevent import monkey # 这俩行必须放在首 ...