SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Bases de Datos
Bases de Datos
Ejercicios de SQL
1. Descripción del modelo de datos
El modelo de datos que se usará para las consultas está reflejado en el siguiente modelo E-R.
DEPT
EMP
(0,N) (0,1)
DEPTNO
EMPNO ENAME
DNAME
LOC
JOB
HIREDATE
(0,N) (0,1)
Subordinado de
Es Jefe
SAL
COMM
Transformado a relacional, la base de datos almacena dos tablas: DEPT y EMP, cuyos campos se
describen a continuación.
DEPT
Campo Tipo Descripción
DEPTNO NUMBER(2) NOT NULL Número o código del departamento.
Es la clave primaria de la tabla.
DNAME VARCHAR2(14) Nombre del departamento.
LOC VARCHAR2(13) Localidad (o ciudad) donde el departamento está ubicado.
EMP
Campo Tipo Descripción
EMPNO: NUMBER(4) NOT NULL Número o código del empleado.
Es la clave primaria de la tabla.
ENAME VARCHAR2(10) Nombre del empleado
JOB VARCHAR2(9) Trabajo del empleado
MGR NUMBER(4) Código del jefe del empleado.
Clave foránea que referencia (cı́clicamente) la tabla EMP
HIREDATE DATE Fecha de contratación.
SAL NUMBER(7, 2) Salario mensual del empleado
COMM NUMBER(7, 2) Comisión
DEPTNO NUMBER(2) Código del departamento al que el empleado está adscrito.
Clave foránea que referencia la tabla DEPT
Notas
La base de datos usada es un ejemplo que Oracle incorpora en su instalación, por lo que tanto los
nombres de los campos como sus valores están en inglés. Ası́, un vendedor tendrá en el atributo JOB
el valor SALESMAN, o el departamento de investigación es RESEARCH. Además, todos los nombres (de
empleado, departamento, trabajo) están almacenados en mayúsculas.
En cuanto a la definición de las tablas, aunque todos los campos excepto las claves primarias
admiten valores nulos, consideraremos especialmente los siguientes casos:
COMM: Si tiene un valor nulo, indica que el empleado no tiene comisión.
MGR: Si tiene un nulo, indica que el empleado no tiene jefe.
Pág. 1/6
Bases de Datos
2. Datos almacenados en las tablas
El contenido de la tabla DEPT es el siguiente:
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
4 filas seleccionadas.
Y el contenido de la tabla EMP, el siguiente:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 <Nulo> 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 <Nulo> 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 <Nulo> 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 <Nulo> 10
7788 SCOTT ANALYST 7566 09-DEC-82 3000 <Nulo> 20
7839 KING PRESIDENT <Nulo> 17-NOV-81 5000 <Nulo> 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 12-JAN-83 1100 <Nulo> 20
7900 JAMES CLERK 7698 03-DEC-81 950 <Nulo> 30
7902 FORD ANALYST 7566 03-DEC-81 3000 <Nulo> 20
7934 MILLER CLERK 7782 23-JAN-82 1300 <Nulo> 10
14 filas seleccionadas.
Pág. 2/6
Bases de Datos
3. Consultas
3.1. Repaso de Informática Básica
1. Obtener todos los datos de todos los empleados.
select * from emp
2. Obtener todos los datos de todos los departamentos.
select * from dept
3. Obtener todos los datos de los administrativos (su trabajo es, en inglés, ’CLERK’).
select * from emp
where JOB=’CLERK’
4. Idem, pero ordenado por el nombre.
select * from emp
where JOB=’CLERK’ order by ename
5. Obtén el mismo resultado de la pregunta anterior, pero modificando la sentencia SQL.
select empno, ename, job, hiredate, sal, comm, deptno from emp
where JOB=’CLERK’
order by 2
6. Obtén el número (código), nombre y salario de los empleados.
select empno, ename, sal from emp
7. Lista los nombres de todos los departamentos.
select dname from dept
8. Ídem, pero ordenándolos por nombre.
select dname from dept
order by 1
9. Ídem, pero ordenándolo por la ciudad (no se debe seleccionar la ciudad en el resultado).
select dname from dept
order by loc
10. Ídem, pero el resultado debe mostrarse ordenado por la ciudad en orden inverso.
select dname from dept
order by loc desc
11. Obtener el nombre y empleo de todos los empleados, ordenado por salario.
select ename, job from emp
order by sal
12. Obtener el nombre y empleo de todos los empleados, ordenado primero por su trabajo y luego
por su salario.
select ename, job from emp
order by job, sal
13. Ídem, pero ordenando inversamente por empleo y normalmente por salario.
select ename, job from emp
order by job desc, sal
Pág. 3/6
Bases de Datos
14. Obtén los salarios y las comisiones de los empleados del departamento 30.
select sal, comm from emp
where deptno=30
15. Ídem, pero ordenado por comisión.
select sal, comm from emp
where deptno=30
order by comm
16. (a) Obtén las comisiones de todos los empleados. (b) Obtén las comisiones de los empleados de
forma que no se repitan.
(a) select comm from emp
(b) select distinct comm from emp
17. Obtén el nombre de empleado y su comisión SIN FILAS repetidas.
select distinct ename, comm from emp
18. Obtén los nombres de los empleados y sus salarios, de forma que no se repitan filas.
select distinct ename, sal from emp
19. Obtén las comisiones de los empleados y sus números de departamento, de forma que no se
repitan filas.
select distinct comm, deptno from emp
20. Halla los empleados que tienen una comisión superior a la mitad de su salario.
select ename from emp
where comm >sal/2
21. Halla los empleados que no tienen comisión, o que la tengan menor o igual que el 25 % de su
salario.
select ename from emp
where comm is null
or
comm <= (0.25*sal)
22. Hallar el código, salario y comisión de los empleados cuyo código sea mayor que 7500.
select empno, sal, comm from emp
where empno >7500
23. Obtén todos los datos de los empleados que estén (considerando una ordenación ASCII por
nombre) a partir de la J, inclusive.
select * from emp
where ename >= ’J’
24. Obtén el salario, comisión y salario total (salario+comisión) de los empleados con comisión,
ordenando el resultado por número de empleado.
select empno, sal, comm, sal+comm from emp
where comm is not null
order by empno
25. Lista la misma información, pero para los empleados que no tienen comisión.
select empno, sal, comm, sal from emp
where comm is null
order by empno
Pág. 4/6
Bases de Datos
26. Muestra el nombre de los empleados que, teniendo un salario superior a 1000, tengan como jefe
al empleado cuyo código es 7698.
select ename from emp
where sal>1000 and mgr=7698
27. Halla el conjunto complementario del resultado del ejercicio anterior.
select ename from emp
where not (sal>1000 and mgr=7698)
28. Indica para cada empleado el porcentaje que supone su comisión sobre su salario, ordenando el
resultado por el nombre del mismo.
select ename, (comm/sal)*100 from emp
29. Hallar los empleados del departamento 10 cuyo nombre no contiene la cadena LA.
select ename from emp
where deptno=10 and ename like ’ %LA %’
30. Obtén los empleados que no son supervisados por ningún otro.
select ename from emp
where mgr is null
31. Obtén los nombres de los departamentos que no sean Ventas (SALES) ni investigación (RESEARCH).
Ordena el resultado por la localidad del departamento.
select dname from dept
where dname not in (’SALES’,’RESEARCH’)
order by loc
32. Deseamos conocer el nombre de los empleados y el código del departamento de los administra-
tivos(CLERK) que no trabajan en el departamento 10, y cuyo salario es superior a 800, ordenado
por fecha de contratación.
select ename, deptno from emp
where job = ’CLERK’ and deptno<>10 sal>800
order by hiredate
33. Para los empleados que tengan comisión, obtén sus nombres y el cociente entre su salario y su
comisión (excepto cuando la comisión sea cero), ordenando el resultado por nombre.
select ename, sal/comm from emp
where comm>0
order by 1
34. Lista toda la información sobre los empleados cuyo nombre completo tenga exactamente 5 ca-
racteres.
select * from emp
where ename like ’ ’
35. Lo mismo, pero para los empleados cuyo nombre tenga al menos cinco letras.
select * from emp
where ename like ’ %’
36. Halla los datos de los empleados que, o bien su nombre empieza por A y su salario es superior
a 1000, o bien reciben comisión y trabajan en el departamento 30.
select * from emp
where (ename like ’A %’ and sal>1000)
or (comm is not null and deptno=30)
Pág. 5/6
Bases de Datos
37. Halla el nombre, el salario y el sueldo total de todos los empleados, ordenando el resultado
primero por salario y luego por el sueldo total. En el caso de que no tenga comisión, el sueldo
total debe reflejar sólo el salario.
select ename, sal, coalesce(sal+comm, sal) from emp
order by 2,3
38. Obtén el nombre, salario y la comisión de los empleados que perciben un salario que está entre
la mitad de la comisión y la propia comisión.
select ename, sal,comm from emp
where sal between comm/2 and comm
39. Obtén el complementario del anterior.
select ename, sal,comm from emp
where sal not between comm/2 and comm
or comm is null
40. Lista los nombres y empleos de aquellos empleados cuyo empleo acaba en MAN y cuyo nombre
empieza por A.
select ename, job from emp
where JOB like ’ %MAN’
and ename like ’A %’
41. Lista los nombres y fecha de contratación de aquellos empleados que no son vendedores (SALESMAN).
select ename, hiredate from emp
where JOB <>’SALESMAN’
42. Obtén la información disponible de los empleados cuyo número es uno de los siguientes: 7844,
7900, 7521, 7521, 7782, 7934, 7678 y 7369, pero que no sea uno de los siguientes: 7902, 7839, 7499
ni 7878. La sentencia no debe complicarse innecesariamente, y debe dar el resultado correcto
independientemente de lo empleados almacenados en la base de datos.
select ename, hiredate from emp
where empno in (7844, 7900, 7521, 7521, 7782, 7934, 7678, 7369)
43. Para los empleados que tengan como jefe a un empleado con código mayor que el suyo, obtén
los que reciben de salario más de 1000 y menos de 2000, o que están en el departamento 30.
select ename, hiredate from emp
where mgr >empno and
(sal between 1000 and 2000 or deptno=30)
44. Obtén los empleados que trabajan en Dallas o New York.
select ename,loc
from emp e join dept d on e.deptno=d.deptno
where loc in (’DALLAS’,’NEW YORK’)
45. Para cada empleado obtén el nombre del departamento donde trabaja
select ename,dname
from emp e join dept d on e.deptno=d.deptno
46. Muestra los datos de los empleados del departamento de ventas (’SALES’)
select empno, ename, job, hiredate, sal, comm
from emp e join dept d on e.deptno=d.deptno
where dname=’SALES’
Pág. 6/6

Más contenido relacionado

Similar a FSI-BD-T7-EjerciciosSQLResueltos.pdf

Consultas select
Consultas selectConsultas select
Consultas selectmichaz
 
pdf-guia-ejercicios-sql-1pdf_compress.pdf
pdf-guia-ejercicios-sql-1pdf_compress.pdfpdf-guia-ejercicios-sql-1pdf_compress.pdf
pdf-guia-ejercicios-sql-1pdf_compress.pdfRonald Mansilla Musaja
 
ORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIOORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIOSefira111
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sqlalexmerono
 
archivodiapositiva_202282673143.pdf
archivodiapositiva_202282673143.pdfarchivodiapositiva_202282673143.pdf
archivodiapositiva_202282673143.pdfKatherineMagallanes4
 
Presentacio sql ok
Presentacio sql okPresentacio sql ok
Presentacio sql okBB
 
Tarea Querys Sql de Wilmer Alcivar
Tarea Querys Sql de Wilmer AlcivarTarea Querys Sql de Wilmer Alcivar
Tarea Querys Sql de Wilmer Alcivarnahun1385
 
Examen de sql(inga pardave max)
Examen de sql(inga pardave max)Examen de sql(inga pardave max)
Examen de sql(inga pardave max)maxtronic
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Restricciones y Ordenacion en SQL con Oracle
Restricciones y Ordenacion en SQL con OracleRestricciones y Ordenacion en SQL con Oracle
Restricciones y Ordenacion en SQL con OracleAlexander Calderón
 

Similar a FSI-BD-T7-EjerciciosSQLResueltos.pdf (20)

Consultas select
Consultas selectConsultas select
Consultas select
 
Oracle: Lenguaje SQL
Oracle: Lenguaje SQLOracle: Lenguaje SQL
Oracle: Lenguaje SQL
 
Attachment
AttachmentAttachment
Attachment
 
pdf-guia-ejercicios-sql-1pdf_compress.pdf
pdf-guia-ejercicios-sql-1pdf_compress.pdfpdf-guia-ejercicios-sql-1pdf_compress.pdf
pdf-guia-ejercicios-sql-1pdf_compress.pdf
 
ORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIOORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIO
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Oracle sep 01
Oracle sep 01Oracle sep 01
Oracle sep 01
 
archivodiapositiva_202282673143.pdf
archivodiapositiva_202282673143.pdfarchivodiapositiva_202282673143.pdf
archivodiapositiva_202282673143.pdf
 
Presentacio sql ok
Presentacio sql okPresentacio sql ok
Presentacio sql ok
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Tarea Querys Sql de Wilmer Alcivar
Tarea Querys Sql de Wilmer AlcivarTarea Querys Sql de Wilmer Alcivar
Tarea Querys Sql de Wilmer Alcivar
 
Clase 07
Clase 07Clase 07
Clase 07
 
CONSULTAS BASICAS
CONSULTAS BASICASCONSULTAS BASICAS
CONSULTAS BASICAS
 
Resumen sql-oracle
Resumen sql-oracleResumen sql-oracle
Resumen sql-oracle
 
Examen de sql(inga pardave max)
Examen de sql(inga pardave max)Examen de sql(inga pardave max)
Examen de sql(inga pardave max)
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
SQL Parte 1.pdf
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
 
SQL Parte 1.pdf
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
 
Restricciones y Ordenacion en SQL con Oracle
Restricciones y Ordenacion en SQL con OracleRestricciones y Ordenacion en SQL con Oracle
Restricciones y Ordenacion en SQL con Oracle
 

Más de davidvargas666

Practica grafica metodos numericos
Practica grafica metodos numericosPractica grafica metodos numericos
Practica grafica metodos numericosdavidvargas666
 
Estadistica ii practica 1 introduccion probabilidad (parte 1)
Estadistica ii practica 1 introduccion probabilidad (parte 1)Estadistica ii practica 1 introduccion probabilidad (parte 1)
Estadistica ii practica 1 introduccion probabilidad (parte 1)davidvargas666
 
Electrolisis soluciones
Electrolisis solucionesElectrolisis soluciones
Electrolisis solucionesdavidvargas666
 

Más de davidvargas666 (7)

Tema 1 Parte 5.pdf
Tema 1 Parte 5.pdfTema 1 Parte 5.pdf
Tema 1 Parte 5.pdf
 
Tema 1 Parte 3.pdf
Tema 1 Parte 3.pdfTema 1 Parte 3.pdf
Tema 1 Parte 3.pdf
 
Tema 1 Parte 1.pdf
Tema 1 Parte 1.pdfTema 1 Parte 1.pdf
Tema 1 Parte 1.pdf
 
Practica grafica metodos numericos
Practica grafica metodos numericosPractica grafica metodos numericos
Practica grafica metodos numericos
 
Estadistica ii practica 1 introduccion probabilidad (parte 1)
Estadistica ii practica 1 introduccion probabilidad (parte 1)Estadistica ii practica 1 introduccion probabilidad (parte 1)
Estadistica ii practica 1 introduccion probabilidad (parte 1)
 
Practica n2
Practica n2Practica n2
Practica n2
 
Electrolisis soluciones
Electrolisis solucionesElectrolisis soluciones
Electrolisis soluciones
 

Último

CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
PRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciaPRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciazacariasd49
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesal21510263
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfJessLeonelVargasJimn
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfSandXmovex
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfssuserc34f44
 
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIACOMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIARafaelPaco2
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 

Último (20)

CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
PRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciaPRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potencia
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operaciones
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdf
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
 
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIACOMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 

FSI-BD-T7-EjerciciosSQLResueltos.pdf

  • 1. Bases de Datos Bases de Datos Ejercicios de SQL 1. Descripción del modelo de datos El modelo de datos que se usará para las consultas está reflejado en el siguiente modelo E-R. DEPT EMP (0,N) (0,1) DEPTNO EMPNO ENAME DNAME LOC JOB HIREDATE (0,N) (0,1) Subordinado de Es Jefe SAL COMM Transformado a relacional, la base de datos almacena dos tablas: DEPT y EMP, cuyos campos se describen a continuación. DEPT Campo Tipo Descripción DEPTNO NUMBER(2) NOT NULL Número o código del departamento. Es la clave primaria de la tabla. DNAME VARCHAR2(14) Nombre del departamento. LOC VARCHAR2(13) Localidad (o ciudad) donde el departamento está ubicado. EMP Campo Tipo Descripción EMPNO: NUMBER(4) NOT NULL Número o código del empleado. Es la clave primaria de la tabla. ENAME VARCHAR2(10) Nombre del empleado JOB VARCHAR2(9) Trabajo del empleado MGR NUMBER(4) Código del jefe del empleado. Clave foránea que referencia (cı́clicamente) la tabla EMP HIREDATE DATE Fecha de contratación. SAL NUMBER(7, 2) Salario mensual del empleado COMM NUMBER(7, 2) Comisión DEPTNO NUMBER(2) Código del departamento al que el empleado está adscrito. Clave foránea que referencia la tabla DEPT Notas La base de datos usada es un ejemplo que Oracle incorpora en su instalación, por lo que tanto los nombres de los campos como sus valores están en inglés. Ası́, un vendedor tendrá en el atributo JOB el valor SALESMAN, o el departamento de investigación es RESEARCH. Además, todos los nombres (de empleado, departamento, trabajo) están almacenados en mayúsculas. En cuanto a la definición de las tablas, aunque todos los campos excepto las claves primarias admiten valores nulos, consideraremos especialmente los siguientes casos: COMM: Si tiene un valor nulo, indica que el empleado no tiene comisión. MGR: Si tiene un nulo, indica que el empleado no tiene jefe. Pág. 1/6
  • 2. Bases de Datos 2. Datos almacenados en las tablas El contenido de la tabla DEPT es el siguiente: DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 4 filas seleccionadas. Y el contenido de la tabla EMP, el siguiente: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------ ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 <Nulo> 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 <Nulo> 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 <Nulo> 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 <Nulo> 10 7788 SCOTT ANALYST 7566 09-DEC-82 3000 <Nulo> 20 7839 KING PRESIDENT <Nulo> 17-NOV-81 5000 <Nulo> 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 12-JAN-83 1100 <Nulo> 20 7900 JAMES CLERK 7698 03-DEC-81 950 <Nulo> 30 7902 FORD ANALYST 7566 03-DEC-81 3000 <Nulo> 20 7934 MILLER CLERK 7782 23-JAN-82 1300 <Nulo> 10 14 filas seleccionadas. Pág. 2/6
  • 3. Bases de Datos 3. Consultas 3.1. Repaso de Informática Básica 1. Obtener todos los datos de todos los empleados. select * from emp 2. Obtener todos los datos de todos los departamentos. select * from dept 3. Obtener todos los datos de los administrativos (su trabajo es, en inglés, ’CLERK’). select * from emp where JOB=’CLERK’ 4. Idem, pero ordenado por el nombre. select * from emp where JOB=’CLERK’ order by ename 5. Obtén el mismo resultado de la pregunta anterior, pero modificando la sentencia SQL. select empno, ename, job, hiredate, sal, comm, deptno from emp where JOB=’CLERK’ order by 2 6. Obtén el número (código), nombre y salario de los empleados. select empno, ename, sal from emp 7. Lista los nombres de todos los departamentos. select dname from dept 8. Ídem, pero ordenándolos por nombre. select dname from dept order by 1 9. Ídem, pero ordenándolo por la ciudad (no se debe seleccionar la ciudad en el resultado). select dname from dept order by loc 10. Ídem, pero el resultado debe mostrarse ordenado por la ciudad en orden inverso. select dname from dept order by loc desc 11. Obtener el nombre y empleo de todos los empleados, ordenado por salario. select ename, job from emp order by sal 12. Obtener el nombre y empleo de todos los empleados, ordenado primero por su trabajo y luego por su salario. select ename, job from emp order by job, sal 13. Ídem, pero ordenando inversamente por empleo y normalmente por salario. select ename, job from emp order by job desc, sal Pág. 3/6
  • 4. Bases de Datos 14. Obtén los salarios y las comisiones de los empleados del departamento 30. select sal, comm from emp where deptno=30 15. Ídem, pero ordenado por comisión. select sal, comm from emp where deptno=30 order by comm 16. (a) Obtén las comisiones de todos los empleados. (b) Obtén las comisiones de los empleados de forma que no se repitan. (a) select comm from emp (b) select distinct comm from emp 17. Obtén el nombre de empleado y su comisión SIN FILAS repetidas. select distinct ename, comm from emp 18. Obtén los nombres de los empleados y sus salarios, de forma que no se repitan filas. select distinct ename, sal from emp 19. Obtén las comisiones de los empleados y sus números de departamento, de forma que no se repitan filas. select distinct comm, deptno from emp 20. Halla los empleados que tienen una comisión superior a la mitad de su salario. select ename from emp where comm >sal/2 21. Halla los empleados que no tienen comisión, o que la tengan menor o igual que el 25 % de su salario. select ename from emp where comm is null or comm <= (0.25*sal) 22. Hallar el código, salario y comisión de los empleados cuyo código sea mayor que 7500. select empno, sal, comm from emp where empno >7500 23. Obtén todos los datos de los empleados que estén (considerando una ordenación ASCII por nombre) a partir de la J, inclusive. select * from emp where ename >= ’J’ 24. Obtén el salario, comisión y salario total (salario+comisión) de los empleados con comisión, ordenando el resultado por número de empleado. select empno, sal, comm, sal+comm from emp where comm is not null order by empno 25. Lista la misma información, pero para los empleados que no tienen comisión. select empno, sal, comm, sal from emp where comm is null order by empno Pág. 4/6
  • 5. Bases de Datos 26. Muestra el nombre de los empleados que, teniendo un salario superior a 1000, tengan como jefe al empleado cuyo código es 7698. select ename from emp where sal>1000 and mgr=7698 27. Halla el conjunto complementario del resultado del ejercicio anterior. select ename from emp where not (sal>1000 and mgr=7698) 28. Indica para cada empleado el porcentaje que supone su comisión sobre su salario, ordenando el resultado por el nombre del mismo. select ename, (comm/sal)*100 from emp 29. Hallar los empleados del departamento 10 cuyo nombre no contiene la cadena LA. select ename from emp where deptno=10 and ename like ’ %LA %’ 30. Obtén los empleados que no son supervisados por ningún otro. select ename from emp where mgr is null 31. Obtén los nombres de los departamentos que no sean Ventas (SALES) ni investigación (RESEARCH). Ordena el resultado por la localidad del departamento. select dname from dept where dname not in (’SALES’,’RESEARCH’) order by loc 32. Deseamos conocer el nombre de los empleados y el código del departamento de los administra- tivos(CLERK) que no trabajan en el departamento 10, y cuyo salario es superior a 800, ordenado por fecha de contratación. select ename, deptno from emp where job = ’CLERK’ and deptno<>10 sal>800 order by hiredate 33. Para los empleados que tengan comisión, obtén sus nombres y el cociente entre su salario y su comisión (excepto cuando la comisión sea cero), ordenando el resultado por nombre. select ename, sal/comm from emp where comm>0 order by 1 34. Lista toda la información sobre los empleados cuyo nombre completo tenga exactamente 5 ca- racteres. select * from emp where ename like ’ ’ 35. Lo mismo, pero para los empleados cuyo nombre tenga al menos cinco letras. select * from emp where ename like ’ %’ 36. Halla los datos de los empleados que, o bien su nombre empieza por A y su salario es superior a 1000, o bien reciben comisión y trabajan en el departamento 30. select * from emp where (ename like ’A %’ and sal>1000) or (comm is not null and deptno=30) Pág. 5/6
  • 6. Bases de Datos 37. Halla el nombre, el salario y el sueldo total de todos los empleados, ordenando el resultado primero por salario y luego por el sueldo total. En el caso de que no tenga comisión, el sueldo total debe reflejar sólo el salario. select ename, sal, coalesce(sal+comm, sal) from emp order by 2,3 38. Obtén el nombre, salario y la comisión de los empleados que perciben un salario que está entre la mitad de la comisión y la propia comisión. select ename, sal,comm from emp where sal between comm/2 and comm 39. Obtén el complementario del anterior. select ename, sal,comm from emp where sal not between comm/2 and comm or comm is null 40. Lista los nombres y empleos de aquellos empleados cuyo empleo acaba en MAN y cuyo nombre empieza por A. select ename, job from emp where JOB like ’ %MAN’ and ename like ’A %’ 41. Lista los nombres y fecha de contratación de aquellos empleados que no son vendedores (SALESMAN). select ename, hiredate from emp where JOB <>’SALESMAN’ 42. Obtén la información disponible de los empleados cuyo número es uno de los siguientes: 7844, 7900, 7521, 7521, 7782, 7934, 7678 y 7369, pero que no sea uno de los siguientes: 7902, 7839, 7499 ni 7878. La sentencia no debe complicarse innecesariamente, y debe dar el resultado correcto independientemente de lo empleados almacenados en la base de datos. select ename, hiredate from emp where empno in (7844, 7900, 7521, 7521, 7782, 7934, 7678, 7369) 43. Para los empleados que tengan como jefe a un empleado con código mayor que el suyo, obtén los que reciben de salario más de 1000 y menos de 2000, o que están en el departamento 30. select ename, hiredate from emp where mgr >empno and (sal between 1000 and 2000 or deptno=30) 44. Obtén los empleados que trabajan en Dallas o New York. select ename,loc from emp e join dept d on e.deptno=d.deptno where loc in (’DALLAS’,’NEW YORK’) 45. Para cada empleado obtén el nombre del departamento donde trabaja select ename,dname from emp e join dept d on e.deptno=d.deptno 46. Muestra los datos de los empleados del departamento de ventas (’SALES’) select empno, ename, job, hiredate, sal, comm from emp e join dept d on e.deptno=d.deptno where dname=’SALES’ Pág. 6/6