
oracle面试题
emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)dept部门表(...
emp员工表
(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)
dept部门表
(deptno部门编号/dname部门名称/loc地点)工资 = 薪金 + 佣金
3.列出所有员工的姓名及其直接上级的姓名。(多次对自己查询,为表的取个别名,内部查询可以像对象一样引用外部的对象的字段,这里引用与编程中的作用域相似,即与{}类比)
select ename,(select ename from emp where empno in(a.mgr)) from emp a ;
在该语句中,a.mgr,emp a代表什么,有什么用
6.列出所有“CLERK”(办事员)的姓名及其部门名称。(域,注意())
select ename,(select dname from dept where deptno in(a.deptno)) as dname from emp a where JOB like’CLERK’;
dname列名在emp表中,怎么可以放在ename后
14.列出所有员工的姓名、部门名称和工资.(经典的两个表的连接查询,用具体的名称替换一个表中的主键的id (解决很多人在实际运用中会遇到的不能绑定多列的问题),也可用where来查询 ,与题5比较)
select ename,sal,(select dname from dept a where a.deptno=b.deptno)as dname from emp b;
a.deptno,b.deptno各代表什么,有什么用?emp b有什么用,为什么不写成emp a?
16.列出各种工作的最低工资。
select job,min(sal) from emp group by job ;
在该句中group by有什么用,怎么使用group by 展开
(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)
dept部门表
(deptno部门编号/dname部门名称/loc地点)工资 = 薪金 + 佣金
3.列出所有员工的姓名及其直接上级的姓名。(多次对自己查询,为表的取个别名,内部查询可以像对象一样引用外部的对象的字段,这里引用与编程中的作用域相似,即与{}类比)
select ename,(select ename from emp where empno in(a.mgr)) from emp a ;
在该语句中,a.mgr,emp a代表什么,有什么用
6.列出所有“CLERK”(办事员)的姓名及其部门名称。(域,注意())
select ename,(select dname from dept where deptno in(a.deptno)) as dname from emp a where JOB like’CLERK’;
dname列名在emp表中,怎么可以放在ename后
14.列出所有员工的姓名、部门名称和工资.(经典的两个表的连接查询,用具体的名称替换一个表中的主键的id (解决很多人在实际运用中会遇到的不能绑定多列的问题),也可用where来查询 ,与题5比较)
select ename,sal,(select dname from dept a where a.deptno=b.deptno)as dname from emp b;
a.deptno,b.deptno各代表什么,有什么用?emp b有什么用,为什么不写成emp a?
16.列出各种工作的最低工资。
select job,min(sal) from emp group by job ;
在该句中group by有什么用,怎么使用group by 展开
展开全部
3.select ename,(select ename from emp where empno in(a.mgr)) from emp a ;
整个查询分为子查询和父查询,(select ename from emp where empno in(a.mgr))为子查询,emp a指的是员工表,a为这个查询为emp表指定的别名,知道了a
代表什么,a.mgr就好理解了,a.mgr其实就是emp.mgr,表示emp员工表中的mgr(上级编号)字段,emp表中记录了员工及员工上级的信息,a.mgr就用来指明员工
的上级的编号,然后输出员工姓名及他上级姓名。
6.虽然dname和ename在不同的两张表中,但是通过语句where deptno in(a.deptno)将两张表的信息关联上了,这样就能得到员工姓名及该员工所在的部门名称。
14.a.deptno,b.deptno分别代表部门表中的部门编号字段和员工表中的部门编号字段,它们的作用是将独立的部门表和员工表中的信息关联起来,令两个表的信息
一一对应起来,emp b用来输出ename,sal字段,b为emp表在查询中的别名,可以任意命名,因为a这个名称已经赋予给dept这个表,若再将a赋予emp表,则会造成
数据库无法识别a代表的是dept表还是emp表,所以此处命名为b而不是a。
16.group by有分类作用,此处表示,安装job的类型将查询结果分为几类,每一类工作中包含很多不同的工资,然后用min函数从里面选出最小的工资,当需要对
查询结果进行聚合时,便可使用group by语句,其后紧跟聚合函数外的所有字段,比如此处的job字段。
整个查询分为子查询和父查询,(select ename from emp where empno in(a.mgr))为子查询,emp a指的是员工表,a为这个查询为emp表指定的别名,知道了a
代表什么,a.mgr就好理解了,a.mgr其实就是emp.mgr,表示emp员工表中的mgr(上级编号)字段,emp表中记录了员工及员工上级的信息,a.mgr就用来指明员工
的上级的编号,然后输出员工姓名及他上级姓名。
6.虽然dname和ename在不同的两张表中,但是通过语句where deptno in(a.deptno)将两张表的信息关联上了,这样就能得到员工姓名及该员工所在的部门名称。
14.a.deptno,b.deptno分别代表部门表中的部门编号字段和员工表中的部门编号字段,它们的作用是将独立的部门表和员工表中的信息关联起来,令两个表的信息
一一对应起来,emp b用来输出ename,sal字段,b为emp表在查询中的别名,可以任意命名,因为a这个名称已经赋予给dept这个表,若再将a赋予emp表,则会造成
数据库无法识别a代表的是dept表还是emp表,所以此处命名为b而不是a。
16.group by有分类作用,此处表示,安装job的类型将查询结果分为几类,每一类工作中包含很多不同的工资,然后用min函数从里面选出最小的工资,当需要对
查询结果进行聚合时,便可使用group by语句,其后紧跟聚合函数外的所有字段,比如此处的job字段。
展开全部
3.emp a 代表emp表,a是该表的别名:select * from table_name {表别名}({}内可取可不取);
a.mgr:emp表中mgr这个字段的信息
6.(select dname from dept where deptno in(a.deptno)) as dname这个是个完整的语法,重新定义了d.name,而且dname是dept表中的列,不存在于emp表中
14.a.deptno和b.deptno是不同表中相同字段名的信息,a和b只是不同表的别名
16.groupby 是分组函数,该语句中是把检索出来的数据按照job分组
a.mgr:emp表中mgr这个字段的信息
6.(select dname from dept where deptno in(a.deptno)) as dname这个是个完整的语法,重新定义了d.name,而且dname是dept表中的列,不存在于emp表中
14.a.deptno和b.deptno是不同表中相同字段名的信息,a和b只是不同表的别名
16.groupby 是分组函数,该语句中是把检索出来的数据按照job分组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询