oracle语句分析和总结.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

select distinct 去重复

set timing on 设置操作后的时间有多久

在实际的项目的开发中我们不要使用select *from 表名

使用

使用 nvl处理为空的字段值

SQLselectsal*12+nvl(comm,0)*12ascount fromemp;

在什么之间

Between

and

使用like的模糊查询

%表示0到多个

_表示任意单个字符

月工资800-3000并且职位是销售员的所有员工信息

select * fbetween800and3000

romemp

where sal and job=SALESMAN;

查询出没有上级的员工?

select*fromemp wheremgrisnull

查询出工资高于600或者岗位为manager的雇员并且名字满足姓名首字母是J?

select*fromemp

wheresal600 or enamelikeJ%and job=MANAGER;

按照部门编号升序而雇员工资是降序的排列显示出员工的姓名 工资和部门编号?

select*fromemp

orderbydeptno,saldesc;

复杂查询

MAX MIN SUM COUNT AVG 为分组函数

显示员工中最高工资和最低工资?

selectmax(sal)as 最高工资,min(sal)fromemp;

显示所有员工的平均工资和总工资?

selectavg(sal)平均工资,sum(sal)fromemp;

计算共有多少员工?

select count(sal,deptno,enmae)fromemp;

显示出工资高于平均工资员工的信息?

查询出工资最高人的名和工资是多少?

------------------------------------

Groupby:y用于对查询的结果进行分组的统计

having :用于限制分组后的显示的结果

分组函数使用的条件:

如果程序中使用了分组函数,有两种可以使用的条件

1、程序中存在groupby并指定了分组的条件,这样可以将分组条件一起查询出来

2、如果不使用分组的话,则只能单独的使用分组函数分组函数的小总结;

1分组函数只能出现在选择列表 having orderby子句中

、如果在select语句中同时包含groupby havingorderby那么他们的顺序是

Groupby having orderby

如果选select是有列名,分组函数,表达式那么这些列和表达式必须有一个出现在

Groupby中否则会出错

Groupby中否则会出错

练习题:显示非销售人员工作名称,以及从事同一工作雇员的月工资总和,并满足从事同一

工作的雇员的月工资的月工资合计大于5000,并且显示的结果是按照月工资合计升序来排列?

selectjob,sum(SAL)

fromemp

where

group

jobnotinSALESMAN

by

job

havingsum(SAL)5000

orderbysum(sal)

!分组还要记住一个简单的原则

只要一列上存在重复的内容才有可能使用分组

多表查询

多表查询

多表查询:多表是基于两个或者两个以上表的查询

1.、显示雇员名,雇员工资及所在的部门的名字(笛卡尔积)

如果是两张表那么至少有一个条件如果是两张表那么就需要有两两个条件

2、如何显示部门号是10的部门名,员工名,和工资

select dept.dname,emp.ename,emp.salformemp,dept

where dept.

3、显示雇员的名字,雇员工资及所在部门的名字并按部门排列

自连接

自连接

Select

From

GroupHaving

avg(sal)

empdeptno

deptn

avg(sal)2000

一张表的链接查询

如何显示某个员工上级的姓名?比如scott

selecta.ename,b.ename

fromempa,empb

wherea.mgr=b.empno

子查询

子查询

也叫做嵌套查询1

也叫做嵌套查询

1。例子:查询出和simth同一部门的所有员工

2、查询出工资比30号部门所有员工工资都高的员工的姓名,工资和部门号码

select

*fromempwheresal

(selectmax(sal)as salfrom emp

group bydeptno

having deptno=30);

Select *

From emp

Wheresalall(select

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档