Oracle 数据库 简单查询
select DISTINCT dept_id from s_emp;
desc s_emp;
select * from s_emp where id <= 10; --给入职3年以上员工发10万元年终奖
select last_name,salary from s_emp where months_between(START_DATE,sysdate) > 870;
--列出职位是仓库管理员的名字和工资
select last_name,salary,title from s_emp where title = 'Stock Clerk'; select LAST_NAME,salary from s_emp where last_name in ('Smith','Chang','Patel'); select * from s_emp where salary BETWEEN 1100 and 1450; select * from s_emp
where salary > all(
select salary from s_emp where title = 'Stock Clerk'); select DISTINCT title from s_emp where salary BETWEEN 1000 and 1500; select * from s_emp where title = 'Stock Clerk' ORDER BY salary;
select * from s_emp ORDER BY salary desc;
select * from s_emp ORDER BY salary;
select MIN(salary) from s_emp; INSERT INTO s_emp VALUES (
26, 'lingling', 'sun', 'hehe',
to_date('05-9-18','dd-mm-yy'),NULL, 1, 'Stock Clerk',
41, NULL,NULL);
INSERT INTO s_emp VALUES (
27, 'lingling', 'sun', 'haha',
to_date('05-9-18','dd-mm-yy'),NULL, 1, 'Stock Clerk',
41, NULL,NULL);
commit; select * from s_emp;
select * from s_region;
select * from s_warehouse; select MIN(salary) from s_emp;
select avg(nvl(salary,0)) from s_emp; select count(last_name) from s_emp where salary < 1000; select count(last_name) from s_emp GROUP BY dept_id;
select DISTINCT dept_id from s_emp; select count(last_name) from s_emp group by dept_id;
select MAX(salary) from s_emp group by dept_id;
select sum(salary) from s_emp group by dept_id HAVING max(salary) > 2000; select avg(salary) from s_emp group by dept_id HAVING min(salary) < 1500;
select last_name,name from s_emp,s_dept where dept_id = s_dept.id;
select count(last_name),name from s_emp,s_dept where dept_id = s_dept.id group by name; select count(e.id),d.id from s_emp e,s_dept d where dept_id = d.id group by d.id; select count(id) from s_dept;
select count(id) from s_emp;
select count(s_dept.id) from s_dept,s_emp; select s_warehouse.id,last_name from s_emp full outer join s_warehouse on s_emp.id = s_warehouse.manager_id;
1、select语句
格式:select 字段 from 表名;
3、查询条件 > < >= <= = !=
练习1:查询工资低于2000的员工。
练习2:查询部门id不是10的员工。
练习3:查询91年后入职的员工。
4、与 或(AND,OR)
练习:查询工资低于2000的员工,并且部门id不是10的员工,并且91年后入职的员工。
5、在 不在(IN,NOT IN)
练习:查询工号为1,9,11,16且工资低于1000的员工。
6、在 [a,b] (between val1 and val2)
练习:查询工资大于1000,小于1500的员工。
7、空 非空(IS NULL,NOT NULL)
练习:查询公司中最高领导的名字。
8、全部 任一(ALL,ANY)
不能单独使用,必须要与关系运算符配合。
练习:查询职位是仓库管理员的工资。
练习:查询工资比任一仓库管理员高的员工信息。
练习:查询工资比所有仓库管理员高的员工信息。
问题:从s_emp 表查询出所有的部门id。
9、排重 DISTINCT
练习:工资在1000~1500之间的职位有哪些。
二、排序
1、使用 ORDER BY 语句
格式:select 字段 from 表名 where 条件 ORDER BY 字段;
练习:显示员工名字、职位、工号,按年薪从低到高的排列显示。
2、设置升序降序(ASC,DESC)
格式:select 字段 from 表名 where 条件 ORDER BY 字段 ASC|DESC;
练习:显示员工名字、职位、工号,按年薪从高到低的排列显示。
3、多项排序
格式:select 字段 from 表名 where 条件 ORDER BY 字段 ASC|DESC,字段 ASC|DESC;
三、聚合函数
注意:在使用比较运算符时NULL为最大值,在排序时也会受影响。
把select语句的多条查询结果,汇聚成一个结果,这样的函数叫聚合函数。
1、MAX\MIN
获取最大值和最小值,可以是任何数据类型,但只能获取一个字段。
2、AVG\SUM
获取平均值、总和。
3、COUNT
统计记录的数量。
四、分组查询
1、GROUP BY
格式:select 组函数 from 表 group by 字段。
它的真假决定一组数据是否返回。
练习:计算部门中最低工资小于700的部门平均工资。
五、查询语句的执行顺序
格式:select sum(salary) from 表名 where bool order by group by having
a、from 表名,先确定数据的来源。
b、where 确定表中的哪些数据有效。
c、group by 字段名,确定数据的分组依据。
d、having 确定组数据是否返回。
e、order by 对组数据进行排序。
六、关联查询
问题:显示每个部门中有多少个员工,部门名-员工数。
1、多表查询
select 字段 from 表1,表2 where;
2、多表查询时有相同字段怎么办
问题:显示每个部门中有多少个员工,部门ID-员工数。
1、表名.字段名
2、表名如果太长,可以给表起别名 (from 表 别名)
3、笛卡尔积
a 8条数据 b 9条数据 = 笛卡尔积
在多表查询时,一定要设置where条件,否则将得到笛卡尔积。
七、连接查询
当使用多个表进行关联查询时,根据设置的条件会得到不同的结果(能匹配成功和不能匹配成功的)。
1、内连接:右边两连能匹配成功的数据。
select last_name,name from s_emp,s_dept where dept_id = s_dept.id;
2、外连接:左右两边不能匹配的数据。
select last_name,name from s_emp, outer join s_dept on dept_id = s_dept.id。
3、左外连接:匹配成功的数据+左表不能匹配的数据
select last_name,name from s_emp, left outer join s_dept on dept_id = s_dept.id。
4、右外连接:匹配成功的数据+右表不能匹配的数据
select last_name,name from s_emp, right outer join s_dept on dept_id = s_dept.id。
5、全外连接:匹配成功的数据+左表不能匹配的数据+右表不能匹配的数据
select last_name,name from s_emp, full outer join s_dept on dept_id = s_dept.id。
Oracle 数据库 简单查询的更多相关文章
- linux/windows系统oracle数据库简单冷备同步
linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...
- ORACLE 数据库简单测试
ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库 非同一个用户的情况,用户是否可以 ...
- oracle数据库常用查询一
oracle数据库常用查询一 sqlplus / as sysdba; 或sqlplus sys/密码 as sysdba;两者都是以sys登录.conn scott/tiger@orcl; conn ...
- ORACLE数据库常用查询二
ORACLE数据库常用查询 1.查看表空间对应数据文件情况: SQL MB,AUTOEXTENSIBLE FROM DBA_DATA_FILES; TABLESPACE_NAME FILE_NAME ...
- Oracle 数据库分页查询的三种方法
一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...
- 落网数据库简单查询接口 caddy+php7+mongodb
落网数据库简单查询接口 一个简单的DEMO,使用了caddy + php7 + mongodb 数据库&接口设计 来自 https://github.com/Aedron/Luoo.spide ...
- Oracle 数据库简单操作
现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题.下面来浅析这些问题. 1. 导出数据 一般导出数据的时候需要建 ...
- 从Oracle数据库中查询前几个月数据时需要注意的一些问题
在最近的一个项目中,有一个需求就是要查询数据库中前几个月的历史数据,但是由于自己考虑不全面造成了程序的bug,现在将这一块好好作一个总结,希望以后不再犯这种很低级的错误,首先贴出查询中用到的一个子函数 ...
- Oracle其他简单查询
范例:查询公司中所有雇员的职位信息 SELECT job FROM emp; 实际在公司里面,一个职位会有多个人员.如果查询全部职位,肯定会存在重复.要消除掉重复,利用DISTINCT完成.(dist ...
随机推荐
- 2-1. Creating a Simple Model 使用图形界面设计器创建一个简单的模型
一.创建新项目 二.添加模型文件 三.添加完后,在设计面板空白处右击,创建一个实体 实体集(B) 这里的名称会是对应的数据库表名称!!! ,开始不知道这是什么,生成后才知道表名是这个,以后注意点就行. ...
- Entity Framework 6.x 学习之 - 创建带连接表的实体模型 with Database First
一.Modeling a Many-to-Many Relationship with No Payload 1. 创建数据库表 CREATE TABLE [Album] ( , ), ) COLLA ...
- 【详解】ThreadPoolExecutor源码阅读(三)
系列目录 [详解]ThreadPoolExecutor源码阅读(一) [详解]ThreadPoolExecutor源码阅读(二) [详解]ThreadPoolExecutor源码阅读(三) 线程数量的 ...
- 【LeetCode题解】24_两两交换链表中的节点(Swap-Nodes-in-Pairs)
目录 描述 解法一:迭代 思路 Java 实现 Python 实现 复杂度分析 解法二:递归(不满足空间复杂度要求) 思路 Java 实现 Python 实现 复杂度分析 更多 LeetCode 题解 ...
- PowerBuilder编程新思维2:嵌入(Thread多线程)
PowerBuilder编程新思维2:嵌入(Thread多线程) 在PB中使用多线程,在网上有大量的文章介绍.不过深入研究并试着给出更易用的模型的,目前还只有"路人甲cw"的一篇& ...
- 读jQuery源码释疑笔记
本释疑笔记是针对自己在看源码的过程中遇到的一些问题的解答,对大众可能不具有参考性,不过可以看看有没有你也不懂得地方,相互学习,相互进步. 1.each的用法 之前对each的用法一直迷迷糊糊,这次终 ...
- 使用EF CodeFirst连接MySql数据库
如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...
- RowFilter遇上特殊字符*%'[]\
开发时,时不时需要分析DataView的数据.计算,过滤等 .但是处理的值有可能会遇上是带有特殊字符*.%.'.[.]和\ .需要手动在表达式中,处理这些特殊字符,需要再使用"[" ...
- asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行
1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...
- JS DOM操作(三) Window.docunment对象——操作属性
属性:是对象的性质与对象之间关系的统称.HTML中标签可以拥有属性,属性为 HTML 元素提供附加信. 属性总是以名称/值对的形式出现,比如:name="value". 属性值始终 ...