oracle emp,dept表中查询部门人数大于所有部门平均人数的部门编号、部门名称、部门人数

是子查询的练习... 是子查询的练习 展开
 我来答
哥是小王爷
2018-04-18 · TA获得超过191个赞
知道小有建树答主
回答量:308
采纳率:74%
帮助的人:84.2万
展开全部
select s.deptno,s.dname,count(t.empno) from emp t,dept s where t.deptno=s.deptno group by s.deptno,s.dname having count(t.empno) > (select count(empno)/count(distinct deptno) from emp )
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销

2020-11-13 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.7万
采纳率:80%
帮助的人:885万
展开全部
一、数据库概念

数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。

根据存储模型可将数据库划分为关系型数据库和非关系型数据库。

关系型数据库,是建立在关系模型基础上的数据库,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

数据库设计的三范式:

第一范式是指数据库表的每一列都是不可分割的基本数据项。

第二范式就是非主属性非部分依赖于主键。

第三范式就是属性不依赖于其它非主属性。

二、select查询列

--查询

-- 员工表 部门表 薪资等级表 奖金表

--select *|字段名1,字段2,... from 表名;

--查询所有的员工信息

select * from emp;

--查询所有的员工姓名,员工编号,上级经理人编号,部门编号

--查询的数据: 员工姓名,员工编号,上级经理人编号,部门编号

--数据的来源: emp员工表

--条件:

select ename, empno, mgr, deptno from emp;

--去重 distinct

select distinct deptno from emp;

--去重的要求:查询出来的两条数据,要求每一个字段的值都相同,才能达到去重效果

select distinct deptno,ename from emp;

--取别名

--""原样输出 ,别名是小写的,有特殊符号存在,前后必须添加""

--给字段取别名 (as) 别名

select ename as "username", empno "员工 编号" from emp;

--给表取别名: 表名 别名,注意:表取别名不能出现as

select ename 员工名称 from emp e;

--伪列 :不存在的字段

--表达式

select distinct 123*456 乘积 from dept;

--字符串用单引号表示 ,原样输出用双引号

select empno,ename,123*345,'haha' 哈哈 from emp;

--虚表 没有数据,没有字段

select 123*456,'hehe' from dual;

--字符串的拼接 ||

--查询员工姓名,结果前拼接SXT-

select 'SXT-'||ename "尚学堂员工姓名",comm from emp;

--null是空值,和数字运算,结果还是null

select ename ,comm "原奖金",comm+100 "新奖金" from emp;

--null 和 字符串拼接,结果是原串

select ename ,comm "原奖金",comm||'100' "新奖金" from emp;

--处理null值, nvl(值1,值2) 当值1为null,函数的结果为值2,当值1不为null,函数的结果为值1

例如:select nvl(null,0) from dual;

三、查询行

--select 数据 from 表名 where 行过滤条件;

--执行流程: from where select

--查询20部门的所有员工的信息

--查询的数据: *

--来源: emp

--条件: deptno=20

select * from emp where deptno=20;

-- 比较条件:= != <> > < >= <=

-- 查询 SMITH 的信息

select * from emp where ename = 'SMITH';

-- 查询除了'SMITH'之外的所有人信息 != <>

select * from emp where ename != 'SMITH';

-- and | or

--区间范围的值: > < >= <= between and

-- 查询工资在1500~2500之间的员工工种和姓名和工资
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式