Вы находитесь на странице: 1из 110

Manual de Oracle

Taller de Bases de Datos


Profa: Gloria Concepcin Tenorio Seplveda

Presentan:
Arenas Gonzlez Rodrigo.
Mendoza Roldn Fernando Irvin
Valencia Quiroz Orlando Alejandro

Tabla de contenido
Operativa bsica de Oracle ........................................................................................................ 3
Interfaz principal ........................................................................................................................... 3
Qu es Oracle SQL Developer? .............................................................................................. 5
Instalacin de Oracle en Windows. ........................................................................................... 6
Instalacin en GNU/Linux............................................................................................................ 9
Instalar Oracle SQL Developer ................................................................................................ 13
Instalacin de Oracle SQL Developer. .................................................................................... 15
Creacin de Usuarios..................................................................................................................... 18
Creacin de Usuarios mediante cdigo......................................................................................... 20
Modelo Relacional ...................................................................................................................... 24
OBJETIVOS: ............................................................................................................................... 29
Modelo Relacional ...................................................................................................................... 31
Lenguaje de definicin de Base de Datos. (DDL) ................................................................................. 38
Ejercicio de Cursos ..................................................................................................................... 39
OBJETIVOS: ............................................................................................................................... 39
Modelo Relacional ...................................................................................................................... 41
OBJETIVOS: ............................................................................................................................... 51
Modelo Relacional ...................................................................................................................... 53
CONSULTAS SQL Y VISTAS ................................................................................................................. 59
CONSULTAS SQL ..................................................................................................................... 59
VISTAS ........................................................................................................................................ 61
Ejercicio de Calificaciones ............................................................................................................ 62
OBJETIVOS: ............................................................................................................................... 62
Modelo Relacional ...................................................................................................................... 64
PROCEDIMIENTOS ALMACENADOS .................................................................................................. 78
OBJETIVOS: ............................................................................................................................... 85
Modelo Relacional ...................................................................................................................... 87
Ejercicio de Conversin de Monedas ........................................................................................... 93
OBJETIVOS: ............................................................................................................................... 93
Modelo Relacional ...................................................................................................................... 95
OBJETIVOS: ............................................................................................................................. 102
Modelo Relacional .................................................................................................................... 104

Taller de Base de Datos:

Instalacin y configuracin del sistema


gestor de bases de datos en distintas
plataformas

Operativa bsica de Oracle


El Oracle SQL Developer es una herramienta construida en torno a un interfaz
principal que permite navegar por un rbol jerrquico de objetos contenidos en
bases de datos y realizar operaciones sencillas sobre ellos. Proporciona adems
alguna herramienta adicional, especialmente un rea para ejecutar sentencias
SQL y PL/SQL.

Interfaz principal
El interfaz principal del Oracle SQL Developer es sencillo: en general se utiliza la
parte de la izquierda para buscar y seleccionar objetos y la parte de la derecha
para mostrar informacin sobre dichos objetos.
La ventana de la izquierda tiene dos pestaas:

Connections: muestra un listado de las conexiones a bases de datos que


se hayan creado. Para crear una nueva, se puede seleccionar del men de
contexto de Connections la opcin de New Database Connection.
Tambin es posible importar un fichero XML que contenga definiciones de
conexiones, o exportar las conexiones actuales.

Reports: muestra un listado de los informes que puede proporcionar SQL


Developer, tanto predefinidos (como por ejemplo una lista de las tablas que
no tengan clave primaria) como SQLDeveloper. Manual de usuario 6/33
definidos por el usuario.

Bajo estas pestaas se muestra un rbol jerrquico de objetos, clasificados en


funcin de su tipo. Si se selecciona un nodo (por ejemplo, Tables, que contiene
las tablas para una conexin) los objetos mostrados pueden filtrarse en funcin de
su nombre. El usuario puede definir el filtro utilizando el icono
Para dejar de
utilizar dicho filtro, se escogera la opcin de Clear Filter en el men de contexto
de dicho nodo, tal y como se muestra en la figura.

Adems de dicha opcin tambin se tendr la posibilidad de crear un nuevo objeto


del tipo del nodo seleccionado. Si se selecciona un objeto de un tipo determinado,
su men de contexto ofrecer operaciones especficas de ese objeto (por ejemplo,
Table>Truncate para borrar una tabla, Rebuild para reconstruir un ndice, etc.)
La parte de la derecha del interfaz muestra informacin sobre los objetos
seleccionados, organizada en diferentes pestaas. Por ejemplo, al seleccionar una
tabla denominada Books se podra mostrar lo siguiente:

Para los objetos de tipo tabla, existe la pestaa Data que permite ver y modificar
los datos almacenados en la misma. Para la mayora de objetos, existe una
pestaa SQL, que muestra la sentencia SQL de creacin de dicho objeto. Desde
las distintas pestaas los datos se pueden exportar utilizando la opcin de Export
del men de contexto.

Qu es Oracle SQL Developer?


Oracle SQL Developer es la herramienta grfica gratuita que
proporciona Oracle para que no sea necesario utilizar herramientas de terceros
(como el conocido TOAD, o el PL/SQL Developer) para desarrollar, o simplemente
para ejecutar consultas o scripts SQL, tanto DML como DDL, sobre bases de
datos Oracle.
La apariencia y funcionalidad es similar a la de otras herramientas de este tipo, por
lo que es una buena opcin si no tenemos especial predileccin por otras
herramientas.
Adems en las ltimas versiones ha incorporado mejoras como permitir conectar
con bases de datos no Oracle, como SQLServer, MySQL o Access. La conexin
con MySQL o SQLServer se realiza a travs de JDBC, y de manera bastante
sencilla. Una vez establecida la conexin se pueden explorar los objetos de las
bases de datos como si se tratara de una de Oracle, y ejecutar sobre ellas
sentencias SQL, aunque en cuanto a funcionalidades ms avanzadas como la
creacin de estructuras este tipo de conexin estar mucho ms limitada.

Instalacin de Oracle en Windows.

Primero nos debemos dirigir a la pgina oficial de Oracle


(http://www.oracle.com/technetwork/database/database-technologies/expressedition/downloads/index.html) para poder descargar Oracle 11g Express Edition,
para poder descargar debemos aceptar la licencia de uso que nos presenta
Oracle, Posteriormente debemos descargar Oracle 11g de acuerdo a la
arquitectura que tengamos instalado (32 o 54 bits). En este caso ser a 64 bits.

Se nos descargar un archivo comprimido, el cual debemos descomprimir con


alguna herramienta (Win Rar, 7zip, etc.)

Se nos presentarn los siguientes archivos dentro de la carpeta y simplemente


debemos darle clic derecho al setup y ejecutamos como administrador.

Dentro de la instalacin de Oracle 11g Express tenemos que definir una


contrasea que ser con la que haremos las conexiones por lo tanto debemos ser
cuidadosos para recordarla.

Y tenemos una instalacin exitosa de Oracle 11g Express.

Instalacin en GNU/Linux

En esta ocasin usaremos OpenSUSE como sistema operativo para instalar


Oracle 11g Express y Oracle SQL Developer, ya que cuenta con gran estabilidad y
soporte.

Nos dirigimos a la pgina oficial de Oracle y descargamos Oracle 11g Express


dndole a la ltima opcin for Linux para este caso solo existe para 64 bits

Nos descargar un archivo con la extensin .Zip el cual procederemos a


descomprimir y al final tendremos una carpeta con el nombre de Disk1

Esta carpeta contiene los archivos necesarios para la instalacin de Oracle 11g, lo
importante de esta carpeta es el archivo con la extensin .RPM que se encuentra
dentro.

10

Procederemos a darle clic y nos saldr una confirmacin para instalar Oracle 11g
Express en nuestro sistema.

Procedemos a continuar para que cargue los archivos en nuestro sistema

11

Dada la seguridad de las distribuciones de Linux debemos introducir nuestra


contrasea de administrador para poder instalar la aplicacin.

Si no hay ningn problema nos saldr este mensaje de que Oracle 11g ha sido
instalado correctamente.

12

Instalar Oracle SQL Developer

Nos dirigimos a la pgina oficial de Oracle y damos clic a la opcin que dice Linux
RPM

Nos descargar el RPM de Oracle SQL Developer y procedemos a darle clici para
comenzar la instalacin.

13

De igual manera como lo hicimos con Oracle 11g debemos darle clic en continuar
e introducimos nuestra contrasea para poder instalar la aplicacin.

Ahora ya tenemos instaladas nuestras aplicaciones de Oracle listas para ser


trabajadas

14

Instalacin de Oracle SQL Developer.

Primeramente nos debemos dirigir a la pgina oficial de Oracle


(http://www.oracle.com/technetwork/developer-tools/sqldeveloper/downloads/index.html) y de igual manera debemos descargar Oracle
SQL Developer de acuerdo a la arquitectura de nuestro sistema operativo, es
necesario tener instalado previamente Oracle JDK, o podemos descargar la
versin que ya lo trae instalado.

De igual manera nos descargar una carpeta comprimida, solo tendremos que
descomprimir.

15

Despus de descomprimir la carpeta nos aparecern diferentes directorios y


archivos y solamente tenemos que ejecutar el archivo sqldeveloper.exe que est
dentro de la carpeta, este no es necesario que lo instalemos.

16

Y al ejecutar la aplicacin nos aparecer esta ventana, que ser nuestro entorno
de trabajo.

17

Creacin de Usuarios.

Primeramente debemos ejecutar el archivo de la aplicacin Oracle 11g que previamente hemos
instalado. Nos abrir el navegador que tengamos por defecto en nuestra computadora.
Tendremos la pantalla anterior y solamente debemos elegir la opcin Aplication Express

Tendremos que loguearnos para esto debemos agregar como usuario SYSTEM respetando las
maysculas seguido de la contrasea con la que previamente instalamos Oracle 11g Express.

18

Ahora con la opcin de Create New seleccionada procedemos a crear un nuevo usuario, es
necesario que registremos los campos marcados con un asterisco (*) primeramente el nombre de
usuario que vamos a crear, seguido del nombre de la aplicacin y la contrasea que es con la que
instalamos Oracle 11g Express.

Para finalizar la creacin de una nueva rea de trabajo solo basta darle clic al botn Create
Workspace

Y nos saldr esta ventana si hicimos el registro correctamente.

19

Creacin de Usuarios mediante cdigo.

De igual manera podemos crear usuarios desde Oracle SQL Developer,


usando los comandos

Es necesario dar privilegios mediante el comando GRANT ALL para poder crear y
administrar los espacios de trabajo.

20

Damos un nombre a la conexin que haremos y un usuario que ser utilizado para esta
conexin, sin olvidarnos de introducir la contrasea.

Nota: en Oracle no se pueden crear bases de datos como tal, la


administracin se hacen mediante los usuarios, es decir por cada
base de datos creada en mysql, corresponde un usuario en el
contexto de Oracle data bases.

21

Ejercicio de Confecciones.
Material Requerido:
-Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Comprender los datos que existen y su relacin, para identificar como sern
almacenados.
Proporcionar atributos y operaciones necesarias.
Comprender que informacin y operacin se necesita para hacer ptimo el
proceso de almacenamiento.
Realizar el MODELO RELACIONAL del ejercicio propuesto con todos sus
elementos.
Identificar las llaves Primarias, llaves Forneas y enlazar de manera
correcta a sus columnas de referencia.
Aprender la modelacin de diagramas por software teniendo como
herramienta de trabajo ORACLE SQL Developer.
Aprender y analizar la creacin de base de datos y tablas por el mtodo
grafico ORACLE SQL Developer.
Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla.

22

23

Modelo Relacional

24

Primero creamos la tabla de proveedor as como los atributos


necesarios que contiene.

Creamos la tabla de Pedidos_Articulos que es la que contiene las


llaves forneas que nos permiten el enlace con las tablas que
relacionamos.

25

Creamos la tabla Pedidos con sus atributos y dejamos la llave


primaria que ser la que nos conecte con las dems tablas, en este
caso nuestra clave primaria es id_pedidos

Para hacer que una llave primaria PK se convierta en autoincrementable primero debemos agregar una secuencia despus
hacemos un disparador o Trigger que es el que ejecuta el autoincrementable, mediante el comando NEXTVAL.

26

Para que nuestras tablas estn conectadas de manera correcta


agregamos las claves Forneas, agregando hacia donde se va a hacer
la conexin de tablas.

Ingresando datos tenemos que nuestras llaves foranes estn


conectadas de manera correcta
27

Ahora tenemos nuestro PK como auto incrementable de manera


correcta. Y los datos se ingresan de manera correcta y sin problemas
con las llaves forneas.

Las referencias son clave importante dentro de las bases de datos, y si


lo hacemos de manera correcta no tendremos problemas en un futuro.
28

Ejercicio de Examen.
Material Requerido:
--Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Comprender los datos que existen y su relacin, para identificar como sern
almacenados.
Proporcionar atributos y operaciones necesarias.
Comprender que informacin y operacin se necesita para hacer ptimo el
proceso de almacenamiento.
Realizar el MODELO RELACIONAL del ejercicio propuesto con todos sus
elementos.
Identificar las llaves Primarias, llaves Forneas y enlazar de manera
correcta a sus columnas de referencia.
Aprender la modelacin de diagramas por software teniendo como
herramienta de trabajo ORACLE SQL Developer.
Aprender y analizar la creacin de base de datos y tablas por el mtodo
grafico ORACLE SQL Developer.
Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla.

29

Realiza un esquema, tiene que estar su tercera forma normal (3FN) con sus
respectivas llaves primarias y secundarias.
L a empresa X debe tener el control de la informacin acerca de clientes, artculos
y pedidos se sabe que cada cliente tiene un numero idntico que lo identifica,
datos personales y si tiene crdito con la empresa debe mostrar el monto mximo
y el monto que se le presto, a si cmo la tasa de inters que debe pagar, los
crdito deben ser a corto, mediano o largo plazo, dependiendo el tiempo para
pagar (corto: 1 ao, mediano: 3 aos, Largo: 5 aos)

Cada artculo tiene una clave que lo identifica, el fabricante, el N. de artculo


en existencia y su nmero de orden.
Los pedidos tienen el nmero de cliente, direccin de envi, fecha de
pedido, nmeros de artculos pedidos y cantidad.
Se debe guardar la informacin de las sucursales, cada una con
identificador, un telfono de contacto, el nombre del encargado, y la
direccin de la sucursal.
Alguna sucursal puede surtir muchos pedidos.
Tambin es importante almacenar datos importantes de los encargados de
las sucursales.
Una sucursal tiene solo un encargado sin embargo los encargados pueden
tener a su cargo varias sucursales

30

Modelo Relacional

31

Para crear una nueva tabla dentro de nuestra conexin debemos dar clic
secundario en tablas y procedemos a seleccionar NEW TABLE.

Y procedemos a llenarla con los atributos que vamos a usar dentro de nuestra
conexin.

32

Una vez que terminemos de crear todas nuestras tablas procedemos a crear los
ndices que nos ayudar a crear nuestras llaves forneas para ello debemos dar
clic secundario a la tabla y seleccionamos a editar.

Al salirnos esta ventana nos vamos a la opcin de ndices y debemos dar clic en
la opcin de agregar que esta simbolizada con un signo de mas (+) de color verde
en el rea de ndices, y procedemos a agregar los ndices que vamos a necesitar.

33

Despus de hacer nuestros ndices, nuevamente editamos nuestra tabla pero esta
vez nos dirigimos a la opcin de RESTRICCIONES, estado ah damos clic en la
opcin de agregar que de igual manera est simbolizada por un signo de mas (+)
de color verde. Agregamos el nombre de nuestra llave fornea y seleccionamos la
tabla a la que se va a conectar, echo esto agregamos las columnas que vamos a
conectar.

34

Para agregar datos nos debemos dirigir a la pestaa de Datos y agregamos los
datos, si el proceso es correcto nos aparecer en la parte de abajo Confirmacin
Correcta.

35

36

Como la creacin de tablas, ndices y restricciones, fue de manera correcta


cuando ingresamos datos no tendremos ningn problema.

37

Taller de Base de Datos:

Lenguaje de definicin de
Base de Datos. (DDL)

Segunda Unidad

38

Ejercicio de Cursos
Material Requerido:
--Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Comprender los datos que existen y su relacin, para identificar como sern
almacenados.
Proporcionar atributos y operaciones necesarias.
Comprender que informacin y operacin se necesita para hacer ptimo el
proceso de almacenamiento.
Realizar el MODELO RELACIONAL del ejercicio propuesto con todos sus
elementos.
Identificar las llaves Primarias, llaves Forneas y enlazar de manera
correcta a sus columnas de referencia.
Aprender la modelacin de diagramas por software teniendo como
herramienta de trabajo ORACLE SQL Developer.
Aprender y analizar la creacin de base de datos y tablas por el mtodo
grfico y por medio de cdigo en ORACLE SQL Developer.
Aprender la definicin y la creacin de Sequence y la de trigger por
medio de cdigo y grficamente.
Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla.

39

Ejercicio sugerido:
El departamento de recursos humanos de una empresa desea construir una BD
para almacenar los datos referentes a la formacin de sus empleados. Se
conoce lo siguiente:

La empresa organiza cursos internos de formacin de los que se desea


conocer el cdigo de curso, el nombre, una descripcin, el nmero de
horas de duracin y el costo del curso.
Un mismo curso tiene diferentes ediciones, es decir, se imparte en
distintos lugares, fechas y con diversos horarios (intensivo, maana o
tarde). En una misma fecha de inicio solo puede impartirse una edicin
de un curso.
Los cursos se imparten por personal de la propia empresa. Un curso
puede tener varios docentes, pero una edicin solo tiene un profesor.
De los empleados se desea almacenar su cdigo de empleado, nombre y
apellidos, direccin, telfono, ID, fecha de nacimiento, nacionalidad,
sexo, firma y salario, as como si est o no capacitado para impartir
cursos.

40

Modelo Relacional

41

Creacin de usuario.

Primero creamos nuestro usuario y le damos los privilegios necesarios.

Sabremos que todo est correctamente y listo cuando nos muestra un mensaje
User creado

42

Creacin de conexin.

Elaboracin de base de datos y tablas (grficamente).


Procedemos a crear una nueva conexin que contendr nuestra base de datos y
todas las tablas correspondientes, con el usuario y contrasea previamente
creados.

Creamos nuestra primer tabla del ejercicio, la cual es cursos sin olvidarnos de
identificar sus elementos (creacin de tabla modo grfico).
43

Procedemos a crear nuestra segunda tabla, llamada Ediciones la cual contiene


Foreign Keys (creacin de tabla modo grfico).

Para poder enlazar nuestras tablas, daremos click en Editar tabla la tabla en
cuestin y despus en restricciones.

44

Elaboracin de tablas (por medio de cdigo).

En esta parte aprenderemos cmo crear tablas por medio de cdigo, comenzmos
con una tabla sencilla como: la tabla Horario (creacin de tabla por medio de
cdigo).

Despus crearemos nuestra ltima tabla llamada Empleado (creacin de tabla


por medio de cdigo).

45

SECUENCIA Y TRIGGERS
SECUENCIA: Una secuencia, como su propio nombre indica, es un artefacto que
devolver un nmero incrementado en las unidades que le digamos cada vez que
se consulte. Crear una secuencia es sencillo.
TRIGGERS: Un Trigger o Disparador es una accin programada que se ejecuta
cuando se da una determinada condicin (generalmente, una insercin, una
modificacin o una eliminacin).
Creando una secuencia y un trigger, para un id auto-incrementable.
Aprenderemos la sintaxis del cdigo de triggers y secuencias utilizando nuestras
tablas como ejemplos:

46

La creacin de triggers o disparador y secuencias tambin se puede realizar


grficamente.

Para hacer la creacin de un disparador, solo necesitamos seleccionar una tabla


en nuestro recuadro conexiones de nuestro lado derecho, al hacerlo se
desplegara una serie de opciones de carpeta donde poder encontrar la carpeta
disparadores.

47

Al dar click en disparadores se abrir un cuadro, el cual nos creara el disparador, y


seleccionaremos los elementos necesarios.

Y al dar click en aceptar nos dar la sintaxis para empezar a escribir que har
nuestro disparador.
Ingresando datos (grficamente).

Una vez ya creadas nuestras tablas y con sus disparadores correspondientes,


podremos verificar si estn conectadas de una manera correcta al ingresarle
datos, esto lo podemos realizar dando click en la pestaa datos.

48

Ingresamos datos a la tabla Cursos y cmo podemos ver tenemos una insercin
de datos exitosa.
Ingresando datos (usando cdigo).

Tambin empezaremos a insertar datos mediante cdigo, como podemos ver en el


ejemplo de arriba se han insertado ya tres registros en nuestra tabla Edicin, y
en nuestra imagen de abajo podremos apreciar que se han hecho los registros
exitosamente.

49

Para un ejemplo ms simple de insercin de datos en una tabla podemos agarrar


de ejemplo nuestra tabla Horario.

Podemos apreciar que los datos han sido insertados.

Y por ltimo insertamos datos en nuestra ltima tabla Empleados.

Todos nuestros datos y registros han sido insertados con xito en nuestra base de
datos.
50

Ejercicio de Productos
Material Requerido:
--Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Definir el concepto de consulta y vista para su correcto desarrollo.


Desarrollar una consulta y guardarlas como vista por medio de
cdigo.
Examinar cmo realizar la creacin de funciones SEQUENCE y
TRIGGER por medio de cdigo y entorno grfico.
Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla.
Conocer la sintaxis para realizar una consulta en ORACLE SQL
Developer.
Crear una vista con una consulta ya elaborada.

51

Ejercicio sugerido:

Realiza la siguiente tabla con sus respectivas, llaves primarias y llaves forneas:
a) Tabla Productos
Clave (PK, autoincremntale)
Nombre
Stock
Precio
Marca (FK)
b) Tabla Marca
Clave (PK)
Nombre

Realizar las siguientes actividades y consultas utilizando nuestra base de


datos:
1. Relacionar las tablas forneas correspondientes.
2. Realizar al menos tres inserciones de datos.
3. Hacer una consulta que muestre la clave y el precio del producto y el
nombre de la marca.
4. Realizar una vista con la consulta generada.

52

Modelo Relacional

53

Creando usuario y conexin.

Creamos nuestra conexin para nuestra base de datos, despus de que ya


hicimos nuestro usuario y le dimos los privilegios necesarios.
Creacin de tablas

Comenzamos creando la tabla marca, ya que es la que no contiene una llave


fornea y de esta manera es ms fcil crear la base de datos.
54

Despus creamos la tabla producto con sus respectivos elementos, incluyendo la


columna que ser nuestra llave fornea.

Procedemos a conectar nuestra llave fornea, desde la tabla Producto, con la


tabla Marca con sus valores apropiados.

55

Formando trigger para un id auto-incrementable.

Creamos nuestro disparador que va hacer que nuestra llave primaria sea
incrementable.
Insertando datos en tablas.

Realizamos nuestro cdigo para insertar valores en la tabla Marcas, tiene que
ser esta tabla primero, para no causar conflicto al insertar valores en la tabla
Productos por contener nuestra llave fornea.

56

Nuestros datos se insertaron con xito en la tabla Marca.

Despus ya podemos insertar valores en nuestra tabla Productos por medio de


cdigo.

57

Observamos que los datos se han registrado con xito en nuestra tabla, y que
nuestra llave fornea est correctamente relacionada.

58

CONSULTAS SQL Y VISTAS


CONSULTAS SQL
Una consulta SQL es tipo de consulta a una base de datos empleando lenguaje
SQL. Una consulta SQL bsica puede constar con un mximo de seis clusulas,
de las cuales slo dos son obligatorias (SELECT y FROM). Las clausulas bsicas
se especifican en el siguiente orden:
SELECT (lista de atributos) FROM (lista de tablas) WHERE (condicin)
GROUP BY (atributo(s) de agrupacin) HAVING (condicin de agrupacin)
ORDER BY (lista de atributos);
SELECT: indica qu atributos o funciones se van a recuperar.
FROM: especifica todas las relaciones (tablas) que se necesitan en la consulta.
WHERE: especifica las condiciones, si es que hacen falta.
GROUP BY: especifica atributos de agrupacin.
HAVING: especifica una condicin que deben cumplir los grupos seleccionados.
ORDER BY: especifica un orden para presentar el resultado de una consulta.
Tambin existen las Consultas combinadas, o tambin llamadas JOINS de las
cuales existen tres tipos:

Combinacin interna
Combinacin externa
Uniones

Para este ejercicio utilizaremos la combinacin interna INNER JOIN la cual


permite combinar campos de dos tablas diferentes para una consulta. La
clusula INNER JOIN permite separar completamente las condiciones de
combinacin con otros criterios, cuando tenemos consultas que combinan nueve o
diez tablas esto realmente se agradece.

59

El ejercicio nos pide:

-Hacer una consulta que muestre la clave y el precio del producto y el


nombre de la marca.

Procedemos hacer la sintaxis del cdigo de la consulta uniendo dos campos de la


tabla Productos con uno de la tabla Marca.

Consulta Exitosa.

60

VISTAS
Una vista es un objeto. Una vista es una alternativa para mostrar datos de varias
tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles
a travs de la vista no estn almacenados en la base de datos, en la base de
datos se guarda la definicin de la vista y no el resultado de ella.
En general, se puede dar un nombre a cualquier consulta y almacenarla como una
vista.
Las vistas permiten:
- simplificar la administracin de los permisos de usuario: se pueden dar al usuario
permisos para que solamente pueda acceder a los datos a travs de vistas, en
lugar de concederle permisos para acceder a ciertos campos, as se protegen las
tablas base de cambios en su estructura.

Mejorar el rendimiento: se puede evitar escribir instrucciones repetidamente


almacenando en una vista el resultado de una consulta compleja que
incluya informacin de varias tablas.

La sintaxis bsica para crear una vista es la siguiente:


create view (nombrevista) as
(Sub-consulta);
El contenido de una vista se muestra con un "select":
select *from (nombrevista);
Una vista suele llamarse tambin tabla virtual porque los resultados que retorna y
la manera de referenciarlas es la misma que para una tabla,
podremos hacer un ejemplo con el ejercicio que se nos asign con la tabla y la
consulta anterior.
Convirtiendo una consulta a una vista.

La consulta realizada anteriormente ya fue convertida en una vista llamada


VISTA_PROD.

61

Ejercicio de Calificaciones
Material Requerido:
-Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Aprender la definicin y la creacin de SEQUENCE y TRIGGER por


medio de cdigo e interfz grfica.
Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla.
Conocer la sintaxis y la formacin del cdigo para realizar una consulta en
ORACLE SQL Developer.
Crear una vista con una consulta ya elaborada.
Desarrollar TRIGGERS que generen funciones bsicas como lo es:
Respaldo, actualizacin y eliminacin de datos.
Establecer el concepto de un PROCEDIMIENTO ALMACENADO.
Generar los PROCEDIMIENTOS ALMACENADOS sugeridos en las
actividades.

62

Ejercicio sugerido:
Realiza la siguiente base de datos con sus respectivas llaves primarias, forneas y
su modelo relacional.
a) Tabla Alumnos
Matricula
(PK)
Nombre
A_paterno
A_materno
Direccin

c) Tabla Calificaciones
ID (PK AI)
Alumno (FK)
Materia (FK)
Calificacin

b) Tabla Materias
ID
(PK)
Nombre

Realizar las siguientes actividades y consultas utilizando nuestra base de


datos:
1) Ingresar registros de acuerdo quienes entregaron la prctica
(complementar 3 alumnos al menos).
2) Mostrar el promedio de cada alumno (vista).
3) Mostrar nmero de alumnos por calificacin (vista).
4) Mostrar el promedio por materia (vista).
5) Mostrar el nombre de la materia y el nmero de alumnos que la cursan.
6) Mostrar el nombre completo del alumno, el nombre de las materias que
cursa, y la calificacin que obtuvo en cada una.
7) Mostrar el nombre del alumno con mayor promedio.
8) Crear una tabla de reslpaldo para la tabla alumnos.
9) Crear Trigger autoincrementable en la tabla Calificacin
10) Crear un trigger que inserte en la tabla Alumnos_respaldo, registros
despus de ser insertados en la tabla alumnos.
11) Crear un trigger que haga la actualizacin en la tabla Alumnos_respaldos
despus de actualizar en la tabla Alumnos.
12) Crear un trigger que elimine registros en la tabla Alumnos_respaldos
despus de actualizar en la tabla Alumnos.

63

Modelo Relacional

64

Ingresar registros de acuerdo quienes entregaron la prctica (complementar


3 alumnos al menos).

Primero realizamos nuestra base de datos como est establecida en nuestro


modelo relacional. Una vez ya hecha nuestras tablas tendremos que ingresar
mnimo tres registros en nuestra tabla alumnos, y en nuestra tabla materias
ingresaremos las 6 materias que actualmente estamos cursando (6 materias por
alumno), por lo tanto ya que en nuestra tabla calificacin tendremos como llaves
foreanas a la tabla materias y a la tabla alumnos en esta tendremos que tener
un total de 18 alumnos.

65

Consulta: Mostrar el promedio de cada alumno (vista).

Esta consulta llevar en su sintaxis el comando AVG que ser el que nos calcule
el promedio y el INNER JOIN la cual unir la tabla calificacin y la tabla
alumnos.

Aqu podemos ver en la ventana izquierda que nuestra vista ha sido creada y
guardada con xito.

Al dar click en nuestra vista, en la pestaa datos podremos observar el resultado


de nuestra consulta.

66

Consulta: Mostrar nmero de alumnos por calificacin (vista).

En la actividad tres crearemos la vista con una consulta que nos muestre cuantos
alumnos hay por calificacin utilizando el comando COUNT.

Este es nuestro resultado de nuestra la sintaxis de nuestra consulta.

67

Consulta: Mostrar el promedio por materia (vista).

En esta consulta nos mostrar el promedio general por materia de los alumnos
registrados.

Como podemos observar el resultado de nuestra consulta esta agrupado por los
nombres de la materia junto con su promedio.

68

Consulta: Mostrar el nombre de la materia y el nmero de alumnos que la


cursan.

Con este cdigo desarrollaremos una consulta donde se nos pide que mostremos
los nombres de las materias que se cursan en el momento, con los alumnos
inscritos.

Nuestra consulta est bien realizada ya que nos arroja que un total de tres
alumnos en total que cursan todas las materias.

69

Consulta: Mostrar el nombre completo del alumno, el nombre de las materias


que cursa, y la calificacin que obtuvo en cada una.

En esta sintaxis realizaremos la consulta donde nos d como resultado el nombre


completo de los alumnos junto con su calificacin de cada materia, para esta
consulta uniremos tres tablas por lo cual utilizaremos dos INNER JOIN al unir los
datos del alumno de la tabla alumnos, el nombre de las materias de la tabla
materias y la calificacin de la tabla calificacin.

Como podemos observar nuestra consulta est bien desarrollada ya que nos
arroja todos nuestros datos solicitados.

70

Consulta: Mostrar el nombre del alumno con mayor promedio.

Para realizar esta consulta usaremos de nuevo el comando AVG que ser el que
nos calculara el promedio del alumno, despus con el INNER JOIN uniremos la
tabla alumnos para agregar el nombre del alumno que contenga el mayor
promedio.

La sintaxis esta correcta ya que el resultado arrojado es el del alumno que tiene
mayor promedio, promediado sus calificaciones de todas sus materias.

71

Crear Tabla Alumnos Respaldo.

Crear Trigger autoincrementable en la tabla Calificacin.

Creando secuencia incrementable de dos en dos:

72

Crear un trigger que inserte en la tabla Alumnos_respaldo, registros despus


de ser insertados en la tabla alumnos.

Los triggers tiene diferentes funciones y en este caso veremos como crear uno
donde nos realice una insercin de datos de respaldo de nuestra tabla original de
alumnos.

73

Una vez establecida y copilado el cdigo del trigger, insertramos un registro para
hacer la prueba correspondiente de que nuestro trigger funciona correctamente.

Nuestro trigger se ha realizado con xito, ya que en nuestra tabla de respaldo se


ha copiado los valores insertados en nuestra tabla original.

Crear un trigger que haga la actualizacin en la tabla Alumnos_respaldos


despus de actualizar en la tabla Alumnos.

74

Otras de las funciones que se puede implementar en un trigger es la de actualizar


un campo en nuestra tabla de respaldo, de un cambio que se halla llevado a cabo
en nuestra tabla original. Para esto con la sintaxis presentada en la imagen de
arriba nos indica que una vez que el valor insertado en la tabla original, iguale el
valor en la tabla de respaldo.

Para este caso cambiaremos el nombre de nuestro ID 5 el cual contiene el nombe


de Diana, y que se cambiar al nombre de Mariana , esta accin se llevar acabo
en nuestra tabla principal de alumnos.

Podemos observar que le cambio efectuado en la tabla principal de alumnos


tambin se llev acabo en nuestra tabla de respaldo.

75

Crear un trigger que elimine registros en la tabla Alumnos_respaldos


despus de actualizar en la tabla Alumnos.

El trigger creado har la eliminacin del registro despus de que este se haya
borrado de la tabla Alumnos (Tabla principal).

76

En este caso se utilizar el ID 5, con el nombre que previamente se modifico.


Todo esto realizado en la tabla original de alumnos.

Una vez ya borrado nuestro registro en la tabla original, el registro guardado en la


tabla de respaldo con el mismo valor ha sido eliminado con xito de la mismo
forma, sin haber hecho alguna accin manualmente.

77

PROCEDIMIENTOS ALMACENADOS
Un procedimiento es un subprograma que ejecuta una accin especfica y que no
devuelve ningn valor. Un procedimiento tiene un nombre, un conjunto de
parmetros (opcional) y un bloque de cdigo.
La sintaxis de un procedimiento almacenado es la siguiente:
CREATE [OR REPLACE]
PROCEDURE <procedure_name> [(<param1> [IN|OUT|IN OUT] <type>,
AS
-- Declaracin de variables locales
BEGIN
-- Sentencias
[EXCEPTION]
-- Sentencias control de excepcin
END [<procedure_name>];

El uso de OR REPLACE permite sobrescribir un procedimiento existente. Si se


omite, y el procedimiento existe, se producir, un error.
Debemos especificar el tipo de datos de cada parmetro. Al especificar el tipo de
dato del parmetro en algunos casos debemos especificar la longitud del
tipo. Los parmetros pueden ser de entrada (IN), de salida (OUT) o de entrada
salida (IN OUT). El valor por defecto es IN, y se toma ese valor en caso de que no
especifiquemos nada.
Tambin podemos asignar un valor por defecto a los parmetros, utilizando la
clusula DEFAULT o el operador de asignacin (:=).
Para ejecutar el procedimiento escribimos la siguiente sintaxis:
EXECUTE nombre_procedimiento (valores a insertar (en dado caso)).

78

Ejercicio sugerido:
De la tabla Alumnos, Materia, calificaciones:

Hacer un procedimiento almacenado que inserte un registro predefinido en


la tabla alumnos.
Hacer un procedimiento almacenado que borre los registros de la tabla
calificaciones cuyo id sea mayor a 1005.
Hacer un procedimiento almacenado que inserte un registro en la tala
alumnos (los datos los proporciona el usuario).
Hacer un procedimiento almacenado que reciba un parmetro tipo entero y
el nmero de matrcula de un alumno; hacer que las calificaciones del
alumno se le aumente el valor del parmetro entero que recibi.

79

Procedimiento de registro predefinido.

Creamos el cdigo para nuestro procedimiento llamado INSERTAR_PRE el cual


nos insertara unos valores por defecto en nuestra tabla alumnos y al correrlo
cuando nos indique que esta copilado, procedemos a ejecutarla.

Observamos que nuestro cdigo corri correctamente porque nuestra tabla se ha


ingresado el valor predeterminado que escribimos en el procedimiento.

80

Procedimiento que borre registros.

Desarrollamos nuestro cdigo donde el procedimiento en este caso borrara


nuestros datos en la tabla conforme a lo que nosotros requerimos borrar lo cual
haremos con la funcin DELETE FROM y WHERE.

El procedimiento se ejecut con xito ya que nos borr los id y los datos que
nosotros establecimos.

81

Procedimiento que inserte registros que el usuario ingrese.

En el cdigo del procedimiento observamos que igualamos los campos de la tabla


ALUMNOS para que al momento de que el usuario lo ejecute ingrese sus valores
que requiere.

Y todo est correctamente ya que los valores o datos que el usuario ingreso, se
insertaron correctamente en la tabla ALUMNOS.

Procedimiento que aumenta un valor de la tabla.


82

Creamos este procedimiento con el comando UPDATE el cual va hacer quien nos
cambie los valores en la tabla en momento real. Pero previamente a esto
estableceremos nuestros parmetros los cuales darn a entender al programa que
es lo que vamos a cambiar y que vamos a aumentar.

Despus procederemos a a ejecutar nuestro procedimiento con el comando


EXECUTE y enseguida de eso escribimos el nombre del procedimiento. Dentro del
parntesis el primer valor ser el id del alumno el cual modificaremos sus
calificaciones y el segundo valor ser cuanto le incrementaremos a la calificacin
que tiene originalmente.

83

En las imgenes mostradas en la parte de arriba se puede observar como al


ejecutar nuestro procedimiento se realiza la actualizacin en la tabla, de los
valores que tuvieron un cambio, por lo tanto nuestro cdigo se desarroll bien y
nuestro procedimiento corre de la manera correcta.

84

Ejercicio de Produccin de Industrias de Alimentos


Material Requerido:
-Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Examinar cmo realizar la creacin de funciones SEQUENCE y


TRIGGER por medio de cdigo y entorno grfico.
Desarrollar TRIGGERS que generen funciones bsicas como lo es:
un auto-incrementable para la llave primaria de la tabla.
Conocer la sintaxis y la formacin del cdigo para realizar una consulta en
ORACLE SQL Developer.

85

Ejercicio sugerido:
Produccin de industrias de alimentos 2013
Mes

Harina_trigo

Harina_maiz

Frutas_conge
ladas
114.5
110.6

Aceites_grasas

Enero

115.4

110.1

Febrero

110.2

98.0

112.7

125.1

Marzo

117.3

103.7

120.0

149.8

Abril

104.9

103.9

108.0

119.3

Mayo

114.5

108.3

114.0

131.9

Junio

107.0

102.5

110.5

118.7

Hacer
Un consecutivo en la tabla.
Mostrar:
El total de la produccin de todas las industrias por mes.
El total de harinas en junio
El mes en que existi la produccin ms baja de frutas congeladas.
Los meses donde la produccin de harina de trigo o harina de maz fue
mayor a 105.0.

86

Modelo Relacional

87

Realizar un consecutivo en la tabla (Auto incrementable).

Generamos la secuencia donde indicaremos que se incremente de 1 en 1, y que


empiece con un valor de 001 y que el valor mximo sea de 99999999.

Generamos un TRIGGER el cual activar nuestra secuencia para el autoincrementable de nuestro ID_MES.

88

Consulta 1: El total de la produccin de todas las industrias por mes.

Se realiza la consulta donde sumaremos todas la cantidades de produccin de


cada industria por mes, para esto usamos el comando SUM el cual ser el que
sume las cantidades indicadas.

Al ejecutar nos da nuestro resultado agrupado por mes, con sus respectivos
totales de produccin.

89

Consulta 2: El total de harinas en junio.

Sumaremos solo las harinas de nuestra tabla como se indica dentro del parntesis
despus del SELECT SUM y solo sern las del mes de julio lo cual se indica
despus del WHERE y del =.

Como podemos observar la sintaxis de nuestro cdigo esta correcta ya que


tenemos como resultado la suma de las harinas del mes de julio.

90

Consulta 3: El mes en que existi la produccin ms baja de frutas


Congeladas.

Realizaremos una sub-consulta donde especificaremos el mes con menor


produccin de frutas congeladas utilizando el MIN.

Y obtenemos que nuestro mes con menor produccin de frutas congeladas es


ENERO con una produccin de 110.6.

91

Consulta 4: Los meses donde la produccin de harina de trigo o harina de


maz fue mayor a 105.0.

Para esta consulta usaremos el operador lgico OR que nos ayudar a hacer la
excepcin deseada.

Al ejecutar nuestra consulta nos arroja como resultado todos los meses con un
valor mayor a 105.0.

92

Ejercicio de Conversin de Monedas


Material Requerido:
-Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:

Examinar cmo realizar la creacin de funciones SEQUENCE y


TRIGGER por medio de cdigo.
Conocer la sintaxis y la formacin del cdigo para realizar una consulta en
ORACLE SQL Developer.
Generar los PROCEDIMIENTOS ALMACENADOS sugeridos en las
actividades.
Establecer el concepto y la creacin de la condicional IF en ORACLE SQL
Developer.

93

Ejercicio sugerido:
Conversiones
Pas

Moneda Pesos_mexicanos Observaciones .

1
2
3
4
5
6
7
8
9
10

Riyal
Dinar
Peso
Dlar
Dlar
Boliviano
Real
Yuan
Peso
Corona

0.29
6.07
0.62
0.08
0.15
0.53
0.17
0.48
0.08
0.42

Paises
Clave
1
2
3
4
5
6
7
8
9
10

Nombre .
Arabia Saudita
Argelia
Argentina
Bahamas
Barbados
Bolivia
Brasil
China
Cuba
Dinamarca

Mostrar el nombre del pas de las monedas cuya equivalencia sea mayor a
0.50.
Mostrar cuantas monedas tienen una equivalencia menor a 1.
Colocar en observaciones la palabra que el usuario desee en la
moneda que tambin defina el usuario.
Crear una secuencia donde el incremento sea de 5 en 5, se ejecutar
cada vez que se actualice la moneda y el valor se almacenar en
observaciones.
Recibir el nombre de una moneda y si es boliviano colocar en observaciones
la palabra Revisado.

94

Modelo Relacional

95

SENTENCIA IF
Las sentencias IFELSE de SQL al igual que en otros lenguajes de programacin
permiten controlar el flujo de nuestros bloques de instrucciones dependiendo de la
validez de una serie de condiciones. Se puede usar cuando se desea ejecutar solo
algunas instrucciones si se cumple una condicin.

Su sintaxis se muestra a continuacin:


IF (expresion) THEN
-- Instrucciones
ELSIF (expresion) THEN
-- Instrucciones
ELSE
-- Instrucciones
END IF;
Un aspecto a tener en cuenta es que la instruccin condicional anidada
es ELSIF y no "ELSEIF".

96

Consulta 1: Mostrar el nombre del pas de las monedas cuya equivalencia


sea mayor a 0.50.

Para esta consulta usaremos INNER JOIN para poder unir dos tablas y que nos
muestre en el resultado del nombre del pas y los pesos mexicanos.

Consulta 2: Mostrar cuantas monedas tienen una equivalencia menor a 1.

Se hace uso de la funcin COUNT para hacer el conteo y nos apoyamos del signo
< el cual hace la funcin menor que.

97

Procedimiento 1: Colocar en observaciones la palabra que el usuario desee


en la moneda que tambin defina el usuario.

Creamos el primer procedimiento donde el usuario ingresar un valor el cual se


agregara en la tabla de observaciones utilizando el UPDATE, y el usuario decidir
en que moneda se agregara la observacin.

El resultado ser la insercin de la oracin HABLEMOS EN PESOS en el


campo OBSERVACIONES en la moneda PESO.

Nuestra palabra se ha agregado con xito.


98

Procedimiento 2: Crear una secuencia donde el incremento sea de 5 en 5, se


ejecutara cada vez que se actualice la moneda y el valor se almacenar en
observaciones.
Se inicia creando la secuencia con el incremento de 5 en 5, comenzando con el 5
como valor inicial.

La secuencia anterior se ejecuta mediante un TRIGGER programado, este


almacena los datos en observaciones despus de la actualizacin en alguna
moneda.

99

Primera actualizacin en la fila 8, MONEDA libra, se inserta el valor 5 en el


campo OBSERVACIONES.

Segunda actualizacin en la fila 8, MONEDA libra, se inserta el valor 5 en el


campo OBSERVACIONES.

100

Procedimiento 3: Recibir el nombre de una moneda y si es boliviano colocar


en observaciones la palabra Revisado

Para crear este procedimiento utilizaremos la estructura de control IF, con esta
creamos la condicin necesaria para la consulta.

El resultado es el esperado, la palabra REVISADO en el campo


OBSERVACIONES.

101

Ejercicio Alumnos
Material Requerido:
Un ordenador con instalacin previa de:

Oracle 11g Express


Oracle SQL Developer
Oracle JDK

OBJETIVOS:
.

Conocer la sintaxis y la formacin del cdigo para realizar una consulta en


ORACLE SQL Developer.
Crear una vista con una consulta ya elaborada.
Generar los PROCEDIMIENTOS ALMACENADOS sugeridos en las
actividades.

102

Ejercicio sugerido:
A partir de la siguiente tabla creada en Oracle.
Tabla Alumnos:
Clave

Nombre

A_Paterno

A_materno Carrera

A01004353

Jorge

Torres

Rosales

A01004354

Isaac

lvarez

Jimnez

A01004355

Pedro

Ruiz

Sols

Comentarios

a) Mostrar a travs de una vista, subconsulta o consulta cuantos alumnos


existen por carrera. Deber mostrar el cdigo y el resultado.
b) Crear un procedimiento almacenado que reciba la clave del alumno y
coloque en el campo comentarios la palabra revisado, deber tener el
cdigo y la llamada.
c) Crear un procedimiento almacenado que ingrese en la tabla alumnos los
datos que el usuario desee, deber tener el cdigo y la llamada.
d) Crear un procedimiento almacenado que borre en la tabla alumnos, el
alumno con clave A01004353, deber tener el cdigo y la llamada.

103

Modelo Relacional

104

a) Mostrar a travs de una vista, subconsulta o consulta cuantos


alumnos existen por carrera. Deber mostrar el cdigo y el resultado.
Para esta vista utilizaremos dos sintaxis de cdigo diferentes:

En la primera, utilizamos el comando Count que contara el total de alumnos por


materia.

105

Segunda forma:

En la segunda forma utilizamos un Inner Join.

106

b) Crear un procedimiento almacenado que reciba la clave del alumno y


coloque en el campo comentarios la palabra revisado, deber tener
el cdigo y la llamada.

Utilizamos el comando Update el cual actualiza el campo comentario con la


palabra revisado, dependiendo de la clave que ingrese el usuario.

En este caso ingresamos la clave A01004354

El campo comentario de la clave A01004354 ha cambiado por la


revisado.

palabra

107

c) Crear un procedimiento almacenado que ingrese en la tabla alumnos


los datos que el usuario desee, deber tener el cdigo y la llamada.

En este procedimiento establecemos cuales son los parmetros que el usuario


podr ingresar y utilizamos un Insert Into para que los datos se inserten en la
tabla Alumnos.

Insertamos como ejemplo un usuario con la clave A01004356 con el nombre


completo, la carrera y el comentario que se muestra en la imagen de arriba.

Nuestro nuevo alumno ingresado por un usuario se ha insertado en la tabla con


xito.
108

d) Crear un procedimiento almacenado que borre en la tabla alumnos, el


alumno con clave A01004353, deber tener el cdigo y la llamada.

Para esta consulta usamos el comando Delete este se encarga de borrar la


clave deseada, al momento de ejecutarla no escribimos la clave porque ya se
ingres dentro del procedimiento.

La clave A01004353 ha sido eliminada de la tabla.

109

Вам также может понравиться