C06 Practicas SQL
C06 Practicas SQL
C06 Practicas SQL
base de datos Oracle, por ejemplo el usuario aplicaciones donde deberá: Conectarse a la
base de datos con un usuario con suficientes privilegios de DBA para crear su usuario:
create user aplicacion identified by aplicacion;
grant connect to aplicacion;
grant dba to aplicacion;
Luego deberá de conectarse con su nuevo usuario crear acá sus tablas para correr los
ejemplos:
COMMIT;
COMMIT;
REM ******** FIN ***********************
Ejemplo de aplicación:
Consulta de los empleados cuyo oficio sea ‘ANALISTA’ ordenado por Numero de
empleado (emp_no);
Select * from emple where oficio = ‘ANALISTA’ order by emp_no;
Seleccionar de la tabla EMPLE aquellas filas del departamento 10 y cuyo oficio sea
‘ANALISTA’. La consulta se ha de ordenar de modo descendente por APELLIDO y
también de manera descendente por número de empleado (emp_no)
Select * from emple where dept_no=10 and oficio=’ANALISTA’ order by apellido
desc, emp_no desc;
Operadores Aritméticos:
Se trata de obtener la nota media de cada alumno, visualizar por cada uno de ellos su
nombre y su nota media:
Select nombre_alumno as Alumno, (nota1+nota2+nota3)/3 as Promedio from
notas_alumnos;
Comparación de cadena
A partir de la tabla emple, obtener aquellos apellidos que empiecen por una ‘J’:
Select apellido from emple where apellido like ‘J%’;
Obtener aquellos apellidos que empiecen por ‘A’ y tengan una ‘O’ en su interior:
Select apellido from emple where apellido like ‘A%O%’;
Consultamos las filas de la tabla librería cuyo tema sea ‘Labores’; usamos el operador =
Select * from libreria where tema=’Labores’;
Conjuntos de valores
Consultar los apellidos de la tabla emple cuyo numero de departamento sea 10 o 30
Select apellido from emple where dept_no in(10,30);
Consultar los apellidos de la table emple cuyo oficio no sea vendedor, analista o
empleado:
Select apellido from emple where where oficio in(‘ANALISTA’, ‘VENDEDOR’,
‘EMPLEADO’);
A partir de la tabla emple obtener el apellido y el salario de los empleados cuyo salario
este comprendido entre 150000 y 200000
Select apellido, salario from emple where salario between 150000 and 200000;
A partir de la tabla emple, oener el apellido, salario y dept_no de los empleados cuyo
salario sea mayor de 200000 en los departamentos 20 y 30
Select apellido, salario, dept_no from emple where salario>200000 and
(dept_no=10 or dept_no=20);
Que pasa si no usa parentesis (pruebelo)
Tambien se puede hacer recurriendo al operador in
Select apellido, salario, dept_no from emple where salario>200000 and
dept_no in(10,20);
Subconsultas
Con la table emple, obtener el apellido de los empleados con el mismo oficio que ‘Gil’: se
descompone en dos consultas: primero
Select oficio from emple where apellido =’Gil’;
Luego visualizamos el apellido de lso empleados con el mismo oficio que ‘Gil’:
Select apellido from emple where oficio=’ANALISTA’;
Ahora resumalas uniéndolas:
Select apellido from emple where oficio=(select oficio from emple where apellido
=’Gil’);
Cuando la subconsulta devuelve más de una fila no se puede recurrir al operador =. Todos
los operadores lógicos para valores simples se pueden usar con subconsultas, siempre que
lo que devuelvan sean valores simples (como las anteriores): ejemplo:
Select apellido from emple where oficio in
(select oficio from emple where dept_no=20);
Consultar los apellidos y oficios de todos los empleados del departamento 20 cuyo trabajo
sea identico al de cualquiera de los empleados del departamento ‘VENTAS’:
Select apellido, oficio, from emple where dept_no=20 and oficio in (
Select oficio from emple where dept_no= (
Select dept_no from depart where dnombre=’VENTAS’));
Combinación de tablas:
Realizar una consulta para obtener el nombre de alumno, su asignatura y su nota:
Select apenom, nombre, nota from alumnos, asignaturas, notas
Where alumnos.dni=notas.dni and notas.cod=asignaturas.cod;
Tarea:
Tablas emple y depart:
1. Seleccionar de la tabla emple aquellas filas cuyo apellido empiece por “A” y el
oficio tenga una “E” en cualquier posición.
2. Seleccionar el apellido, el oficio y la localidad de los departamentos donde trabajan
los ANALISTAS.
3. Mostrar los empleados (nombre, oficio, salario y fecha de alta) que desempeñen el
mismo oficio que “JIMENEZ” o que tengan un salario mayor o igual que
“FERNANDEZ”.
4. Mostrar en pantalla el nombre, oficio y salario de los empleados del departamento
de “FERNANDEZ” que tenga su mismo salario.
5. Presentar los nombres y oficios de los empleados que tienen el mismo trabajo que
“JIMENEZ”.
Tabla Libreria
6. Visualizar el tema, estante y ejemplares de las filas de librería con ejemplares
comprendidos ete 8 y 15.
7. Visualizar las columnas tema, estante y ejemplares de las filas cuyo estante no este
comprendido entre la “B” y la “D”.
8. Visualizar con una sola orden select todos los temas de librería cuyo número de
ejemplares sea inferior a los que hay en “Medicina”.
9. Visualizar los temas de librería cuyo número de ejemplares no este entre 15 y 20,
ambos incluidos.