Oracle查询语句面试题
01. 查询员工表所有数据,并说明使用*的缺点 select * from emp; 01.查询职(job)为
查询员工表所有数据,并说明使用*的缺点
select * from emp;
查询职(job)为'PRESIDENT'的员工的工资
select sal from emp where job='PRESIDENT';
【专题推荐】:2020年oracle面试题汇总(最新)
02.查询佣金为0或为null的员工的信息
select * from emp where comm is null or comm=1;
03.查询入职日期在1981-5-1到1981-12-31之间的所有员工的信息
select * from emp where hiredate between to_date(‘1-5月-81’) and to_date(‘31-12月-81’)
04..查询所有名字长度为4的员工的员工的编号,姓名
select empno,ename from emp where length(ename)=4
05.显示10号部门饿所有经理和20号部门的所有员工
select * from emp where job='MANAGER' and deptno=10 or job='CLERK' and deptno=20;
06.显示姓名没有'L'字的员工的详细信息或含有'SM'字的员工信息
select * from emp where ename not like '%L%' or ename like '%SM%';
07.显示各个部门经理的工资
select deptno,sal from emp where job='MANAGER';
08.显示佣金收入比工资高的员工的详细信息
select * from emp where comm>sal;
10.把hiredate列看做是员工的生日,求本月过生日的员工:
SQL> select * from emp where to_char(hiredate,'mm')=to_char(sysdate,'mm');
11.把hiredate列看做是员工的生日,求下月过生日的员工
SQL> select * from emp where to_char(hiredate,'mm')=to_char(add_months(sysdate,1),'mm');
12.求1982年入职的员工
SQL> select * from emp where to_char(hiredate,'yyyy')='1982';
hiredate是date类型的,1982是字符串类型的,类型匹配才可以
13.求1981年下半年入职的员工
select * from emp where hiredate between to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd')-1;
注:to_char()函数和to_date()函数
to_char()
函数是把日期的类型转换为指定的格式
to_date()
是把字符串转换为日期类型
-1的原因是更精确
14.求1981年各个月入职的员工个数
SQL> select to_char(hiredate,'mm'),count(*) from emp where to_char(hiredate,'yyyy')='1981' group by to_char(hiredate,'mm') order by to_char(hiredate,'mm');
或
select to_char(hiredate,'mm'),count(*) from emp where to_char(hiredate,'yyyy')='1981' group by to_char(hiredate,'mm') order by to_char(hiredate,'mm');
PartII
01 .查询各个部门的平均工资
SQL> select deptno,avg(nvl(sal,0)) from emp group by deptno;
02.显示各种职位的最低工资
SQL> select job,min(sal) from emp group by job;
03.按照入职日期由新到旧排列员工信息
SQL> select hiredate from emp order by hiredate desc;
04.查询员工的基本信息,附加其上级的姓名(自关联)
SQL> select e.*,e1.ename from emp e,emp e1 where e.mgr=e1.empno;
05.显示工资比’ALLEN’高的所有员工的姓名和工作
SQL> select ename,sal from emp where sal>(select sal from emp where ename='ALLEN');
06.显示与scott从事相同工作的员工的信息(子查询)
SQL> select * from emp where job=(select job from emp where ename='SCOTT');
07.显示销售部(‘SALES’)员工的姓名
SQL> select e.ename from emp e inner join dept d on e.deptno=d.deptno where d.dname='SALES';
08.显示与30号门’MARTIN’员工工资相同的员工的姓名和工资
SQL> select ename,sal from emp where sal=(select sal from emp where deptno=30 and ename='MARTIN');
09.查询所有工资高于平均工资(包括所有员工)的销售人员
SQL> select * from emp where sal>( select avg(sal) from emp) and job='SALESMAN';
或
SQL> select * from emp where job='SALESMAN' and sal>(select avg(sal) from emp);
10.显示所有职员的姓名及其所在部门的名称和工资(表连接)
SQL> select e.*,e.sal,d.dname from emp e inner join dept d on e.deptno=d.deptno;
11.查询在研发部(RESEARCH)工作人员的编号,姓名,,工作部门,工作所在地
SQL> select e.empno,e.ename,d.dname,d.loc from emp e inner join dept d on e.deptno=d.deptno where dname='RESEARCH';
12.查询各个部门的名称和员工人数
select e.deptno,d.dname,count(*) from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname
分析:
SQL> select d.dname from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname; DNAME -------------- ACCOUNTING RESEARCH SALES SQL> select e.deptno,d.dname from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname; DEPTNO DNAME ------ -------------- 10 ACCOUNTING 20 RESEARCH 30 SALES SQL> select e.deptno,d.dname,count(*) from emp e inner join dept d on e.deptno=d.deptno group by e.deptno,d.dname; DEPTNO DNAME COUNT(*) ------ -------------- ---------- 10 ACCOUNTING 3
13.查询各个部门员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位(子查询)
SQL> select count(*),job from emp where sal>(select avg(sal) from emp) group by job;
14.查询工资相同的员工的工资和姓名(子查询)
SQL> select sal,ename from emp e where(select count(*) from emp where sal=e.sal group by sal)>1;
或
SQL> select e.sal,e.ename from emp e,emp e1 where e.sal=e1.sal and e.ename<>e1.ename;
相关学习推荐:oracle数据库学习教程

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Perbezaan antara indeks clustered dan indeks bukan cluster adalah: 1. Klustered Index menyimpan baris data dalam struktur indeks, yang sesuai untuk pertanyaan oleh kunci dan julat utama. 2. Indeks Indeks yang tidak berkumpul indeks nilai utama dan penunjuk kepada baris data, dan sesuai untuk pertanyaan lajur utama bukan utama.

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.
