Oracle 数据库常用SQL语句(2)查询语句
一、SQL基础查询
1、select语句
格式:select 字段 from 表名;
2、where 用于限制查询的结果。
3、查询条件 > < >= <= = !=
4、与 或(AND,OR)
5、在 不在(IN,NOT IN)
练习:查询工号为1,9,11,16且工资低于1000的员工。
6、在 [a,b] (between val1 and val2)
查询工资大于1000,小于1500的员工。
select * from s_emp where salary between 1000 and 1500;
7、空 非空(IS NULL,NOT NULL)
8、全部 任一(ALL,ANY)
不能单独使用,必须要与关系运算符配合。
查询职位是仓库管理员的工资。
select * from s_emp where title = 'Stock Clerk';
查询工资比任一仓库管理员高的员工信息。
select * from s_emp where salary > any(select salary from s_emp where title = 'Stock Clerk');
9、排重 DISTINCT
练习:工资在1000~1500之间的职位有哪些。
select distinct title from s_emp where salary>=1000 and salary <1500 ;
二、排序
1、使用 ORDER BY 语句
格式:select 字段 from 表名 where 条件 ORDER BY 字段;
显示员工名字、职位、工号,按年薪从低到高的排列显示。
select last_name,title,id,salary from s_emp order by salary;
2、设置升序降序(ASC,DESC)
格式:select 字段 from 表名 where 条件 ORDER BY 字段 ASC|DESC;
显示员工名字、职位、工号,按年薪从高到低的排列显示。
select last_name,title,id,salary from s_emp order by salary desc;
3、多项排序
格式:select 字段 from 表名 where 条件 ORDER BY 字段 ASC|DESC,字段 ASC|DESC;
三、聚合函数
注意:在使用比较运算符时NULL为最大值,在排序时也会受影响。
把select语句的多条查询结果,汇聚成一个结果,这样的函数叫聚合函数。
1、MAX\MIN
获取最大值和最小值,可以是任何数据类型,但只能获取一个字段。
select * from s_emp where salary = (select MAX(salary) from s_emp);
2、AVG\SUM
获取平均值、总和。
3、COUNT
统计记录的数量。
四、分组查询
1、GROUP BY
格式:select 组函数 from 表 group by 字段。
select count(last_name) from s_emp group by dept_id;
2、HAVING 组判断条件。
它的真假决定一组数据是否返回。
计算部门中最低工资小于700的部门平均工资。
select count(last_name) from s_emp group by dept_id having max(salary) > 2000;
五、查询语句的执行顺序
格式: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、多表查询时有相同字段怎么办
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, left 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 数据库常用SQL语句(2)查询语句的更多相关文章
- oracle数据库常用的99条查询语句(转载)
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...
- oracle数据库常用的99条查询语句
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...
- oracle数据库常用SQL语句(11.29更新)
笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Loa ...
- Oracle数据库常用Sql语句大全
一,数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...
- Oracle 数据库常用SQL语句(1)
一.数据定义语句 CREATE:创建表或其它对象 create database test; //创建test数据库 ),sex )); //创建表 ALTER:修改表或其它对象的结构 )); //为 ...
- Oracle数据库 常用SQL
-- 查询所有数据 SELECT * FROM [TABLE_NAME]; -- 查询数据总量 SELECT COUNT(*) AS COUNT FROM [TABLE_NAME]; -- 清空表内所 ...
- oracle数据库常用SQL语句
1)删除表的一列 ALTER TABLE 表名 DROP COLUMN 列名; 2)增加表的一列 且默认值为0 alter table 表名 add 字段名 类型 default '0'; 3)修改表 ...
- Oracle数据库常用SQL函数
1.SQL函数的概念: 函数一般是在数据上执行的,它给数据的转换和处理提供了方便.只是将取出的数据进行处理,不会改变数据库中的值.(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中 ...
- Oracle数据库常用的Sql语句整理
Oracle数据库常用的Sql语句整理 查看当前用户的缺省表空间 : select username,default_tablespace from user_users; 2.查看用户下所有的表 : ...
随机推荐
- 1、CreateJS介绍-EaselJS
需要在html5文件中引入的CreateJS库文件是easeljs-0.7.1.min.js HTML5文件如下: <!DOCTYPE html> <html lang=" ...
- NET Core + Angular 2
ASP.NET Core + Angular 2 Template for Visual Studio 2017-01-11 08:45 by 小白哥哥, 2069 阅读, 19 评论, 收藏, 编辑 ...
- Hart协议
官方https://fieldcommgroup.org/technologies/hart/documents-and-downloads-hart 参考网页http://www.eeworld.c ...
- C. An impassioned circulation of affection DP
http://codeforces.com/contest/814/problem/C 12ooyomioomioo21 o2 o 这题我是用dp解的,不过好像很慢,比赛的时候算了下不会mle,就没滚 ...
- 关于codeblock 为什么不能调试
最近codeblock不能调试了,一开始还以为把断点放在了函数里面,所以不行. 代码短,就自己看了, 有时候实在不行,真的要调试,那怎么办?其实很多时候是你的文件名的问题. 1.project的路径必 ...
- Canada Cup 2016 C. Hidden Word 构造模拟题
http://codeforces.com/contest/725/problem/C Each English letter occurs at least once in s. 注意到题目有这样一 ...
- (转)Linxu磁盘体系知识介绍及磁盘介绍
Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...
- 图解css3のborder-radius
早期制作圆角都是使用图片来实现.通过用1px 的水平线条来堆叠出圆角或者利用JavaScript等等方法,但是都是需要增加多个无意义的标签来实现,造成代码亢余.如今有了CSS3的圆角属性——borde ...
- ios 身份证照片识别信息
一个近乎完整的可识别中国身份证信息的Demo就问问你霸气不
- Python3+Selenium3+webdriver学习笔记7(选择多链接的结果、iframe、下拉框)
#!/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverfrom selenium.webdriver.co ...