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数据库学习教程

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

Les capacités de recherche en texte intégral d'InNODB sont très puissantes, ce qui peut considérablement améliorer l'efficacité de la requête de la base de données et la capacité de traiter de grandes quantités de données de texte. 1) INNODB implémente la recherche de texte intégral via l'indexation inversée, prenant en charge les requêtes de recherche de base et avancées. 2) Utilisez la correspondance et contre les mots clés pour rechercher, prendre en charge le mode booléen et la recherche de phrases. 3) Les méthodes d'optimisation incluent l'utilisation de la technologie de segmentation des mots, la reconstruction périodique des index et l'ajustement de la taille du cache pour améliorer les performances et la précision.

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]

L'article traite des stratégies pour gérer de grands ensembles de données dans MySQL, y compris le partitionnement, la rupture, l'indexation et l'optimisation des requêtes.

La différence entre l'index cluster et l'index non cluster est: 1. Index en cluster stocke les lignes de données dans la structure d'index, ce qui convient à la requête par clé et plage primaire. 2. L'index non clumpant stocke les valeurs de clé d'index et les pointeurs vers les lignes de données, et convient aux requêtes de colonne de clés non primaires.

L'article discute de la suppression des tables dans MySQL en utilisant l'instruction TABLE DROP, mettant l'accent sur les précautions et les risques. Il souligne que l'action est irréversible sans sauvegardes, détaillant les méthodes de récupération et les risques potentiels de l'environnement de production.

L'article discute de la création d'index sur les colonnes JSON dans diverses bases de données comme PostgreSQL, MySQL et MongoDB pour améliorer les performances de la requête. Il explique la syntaxe et les avantages de l'indexation des chemins JSON spécifiques et répertorie les systèmes de base de données pris en charge.
