面试题19-20

1.求1982年入职的员工

select *from emp where to_char(hiredate,'yyyy')='1982';

解题思路:通过字符串抓换函数to_char(hiredate,'yyyy'),获取年份即可

2.求1981年下半年入职的员工

(1)select * from emp where hiredate between to_date('1981-7-1','yyyy-MM-dd') and to_date('1981-12-31','yyyy-MM-dd') 
(2)select * from emp where hiredate between'01-7月- 81'and'31-12月- 81'

解题思路:限制条件1981年下半年,表示日期在1981-7-1至1981-12-31的区间内

3.显示所有员工姓名的前三个字符

select substr(ename,1,3) from emp

解题思路:substr(ename,1,3)返回ename中从第一位开始,长度为3 的字串.

4.如下代码,对代码描述正确是的(B)

select e.deptno,avg(sal),dname from emp e, dept d where e.depno=d.deptno and e.deptno <>20 group by e.deptno,dname

A.e.deptno=d.deptno条件可以胜略
B.deptno<>20这个条件可以写在having中
C.group by 子句后的deptno,dname只写一个也可以执行
D.以上代码错误,但可以执行

5.什么是笛卡尔积现象(A)

A.第一张表中的所有行和另一个表中的所有行都发生连接的现象
B.第一张表中的数据无论按照连接条件都能匹配上都能显示上的现象
C.第二张表中数据五乱按照连接条件能否匹配上都能显示的现象
D.两张表中的数据自动匹配的现象

6.查询每个员工的姓名,工资,工资等级,所在工作城市

select e.ename, e.sal,s.salgrade,d.loc from emp e,dapt d, salgrade s where e.deptno=d.deptno and e.sal between s.lsal and s.hsal;

7.列出所有员工的姓名和直接上级的姓名

select e.ename,l.ename from emp e,emp i where e.mgr=i.empno
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容