Practica en Clases Mas de SQL (DEPTyEMP)
Practica en Clases Mas de SQL (DEPTyEMP)
Practica en Clases Mas de SQL (DEPTyEMP)
PRÁCTICA #1
INDIVIDUAL
Oracle es un sistema gestor de Bases de datos relacionales y utiliza, para consultar los datos
que mantiene, el lenguaje SQL. Este lenguaje es el que se analiza a continuación, en sus tres
aspectos, consulta, modificación, y manipulación de los datos. Los ejemplos que se incluyen se
realizan sobre unas tablas, que corresponden a un modelo relacional sencillo, y son las
siguientes:
Para que el estudiante adquiera mayor conocimiento del lenguaje SQL deberá realizar las
prácticas que siguen a continuación, las cuales explican detalladamente el uso de los diferentes
comandos SQL y mostrando los resultados de la ejecución de los mismos.
SELECT ename, sal, comm FROM emp WHERE comm IS NOT NULL ORDER BY sal,comm DESC;
Ofrece la salida:
SELECT ename,sal,comm
FROM emp
WHERE comm IS NOT NULL
ORDER BY sal DESC,comm DESC;
Que ofrece la salida:
TEMA 3: Funciones sobre cadenas de caracteres
y tipos de datos especiales.
Funciones para cadenas:
También existen funciones específicas para el tipo de dato 'fecha', de Oracle que
son:
ENAME HIREDATE
WARD 22-feb-81
JONES 02-APR-1981
BLAKE 01-may-81
ALLEN 20-feb-81
Funciones especiales:
Existen otras funciones especiales, no asociadas a ningún tipo de dato en
especial, entre las que podemos encontrar:
• Incluir las tablas que vamos a necesitar en la cláusula 'from' que en nuestro
caso serán, como ya se ha dicho antes, las tablas 'emp' y 'dept'.
• Es necesario, en algunos casos, definir a que tabla pertenece la columna que
deseamos recuperar con nuestra consulta. Así, en caso de que una columna
este en ambas tablas, se deberá hacer mención a esas columnas mediante el
nombre de la tabla, un punto, y el nombre de la columna.
• También, debemos evitar que se produzca un producto cartesiano. Siempre
que utilicemos dos o más tablas en una consulta, deberemos "emparejar" las
tuplas de las tablas, de manera que el SGBD de Oracle pueda mostrarnos la
información correcta. si no se realiza esta acción, emparejará cada tupla de
una tabla con todas las de la otra u otras, es decir, realiza un producto
cartesiano de las tablas que intervienen en la consulta.
Pero antes debe crear la siguiente tabla e introducirle los datos que siguen a
continuación:
• Outer-joins (filas que no tienen ningún valor): Si existen filas que no tiene
ningún valor asociado, ejemplo:
Donde se puede observar que se coloca el símbolo (+) para indicar que la
salida puede ser nula en los campos que poseen ese símbolo, y así, mostramos
todos los departamentos existentes, aunque estos no tengan asignado ningún
trabajador.
Tema 1
SELECT ename, sal, comm FROM emp WHERE comm IS NOT NULL
ORDER BY sal,comm DESC;
SELECT ename,sal,comm
FROM emp
WHERE comm IS NOT NULL
ORDER BY sal DESC,comm DESC;
TEMA 3
Funciones Matematicas
➢ ROUND
➢ TRUNC
➢ MOD
FUNCIONES PARA FECHAS:
➢ MONTHS_BETWEEN
➢ ADD_MONTHS
➢ NEXT_DAY
➢ LAST_DAY
FUNCIONES ESPECIALES
➢ NVL
➢ DECODE
TEMA 4
En el tema de productos cartesianos en bases de datos, se aprende a obtener datos de múltiples tablas
dentro de la base de datos. Para ello, es necesario que las tablas tengan una clave foránea que permita
relacionar los datos entre ellas. Al realizar consultas con múltiples tablas, es importante incluir las tablas
necesarias en la cláusula FROM, y en algunos casos, especificar a qué tabla pertenece una columna en
particular. También es crucial evitar que se produzca un producto cartesiano, emparejando las tuplas de
las tablas de manera adecuada para obtener la información correcta.
Debido a que la columna 'deptno', está definida tanto en la tabla 'emp' como en la
tabla 'dept', así es que nos informa de que la columna está definida ambiguamente.
Si subsanamos ese error, queda la consulta:
Tal y como podemos comprobar, esta no es la salida que deseamos obtener, ya que tenemos 60 filas, y
en realidad en nuestra empresa tan solo hay 15 trabajadores, luego algo ha pasado
Dependiendo del tipo de relación a que estén sujetas las tablas, se pueden
definir varios tipos de emparejamiento dentro de este tipo de consultas que
veremos mediante ejemplos, así, tenemos: