Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ocultar el almacenamiento
intrínseco de la base de
Ser utilizadas como cursores
datos y conseguir una
Restringir el acceso a los de datos en los lenguajes
mayor independencia de
datos originales procedimentales (como
los datos respecto al resto
PL/SQL)
de elementos de la base de
datos.
Vistas - Tipos
Simples.
• Formada por una sola tabla y no contienen funciones de agrupación.
• Ventaja: Permiten siempre realizar operaciones DML sobre ellas.
• Características:
• Sólo pueden referirse a una tabla de la base de datos.
• No pueden contener funciones.
• No pueden contener ninguna cláusula de agrupación
• Admiten realizar sobre ellas operaciones DML.
Complejas.
• Obtienen datos de varias tablas, pueden utilizar funciones de agrupación y
de cualquier otro tipo. No siempre permiten operaciones DML.
Vistas – Sintaxis creación y
eliminación
Vistas – Ejemplos de creación
Creación de la vista “vListaProveedores” a partir de una consulta
a la tabla “suppliers”, la consulta recupera todas las columnas
de la tabla y el resultado aparece ordenado alfabéticamente
de acuerdo con el contenido de la columna “companyName”
Recuerde:
• Se deben otorgar privilegios apropiados a un usuario antes de que el usuario pueda usar el
sinónimo.
• Ud. puede referirse a sinónimos en las siguientes declaraciones DML: select, insert, update,
delete, explain plan.
Sinónimos – creación
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema .] synonym_name
FOR [schema .] object_name [@ dblink];
OR REPLACE. - Allows you to recreate the synonym (if it already exists) without having to issue a
DROP synonym command.
PUBLIC.- It means that the synonym is a public synonym and is accessible to all users. Remember
though that the user must first have the appropriate privileges to the object to use the synonym.
•To create a private synonym in your own schema, you must have the CREATE SYNONYM system privilege.
•To create a private synonym in another user's schema, you must have the CREATE ANY SYNONYM system privilege.
•To create a PUBLIC synonym, you must have the CREATE PUBLIC SYNONYM system privilege.
Schema.- The appropriate schema. If this phrase is omitted, Oracle assumes that you are
referring to your own schema.
object_name.- The name of the object for which you are creating the synonym. It can be one of
the following:
•Table, view, sequence, stored procedure, function, package, java class schema object, user-defined object
Sinónimos – eliminación
dbms_output.put_line('Hola mundo');
end;
---------------------------------
declare
begin
dbms_output.put_line(lmensaje);
end;
---------------------------------
declare
ltable varchar2(30);
ltablespace varchar2(30);
begin
from tabs;
end;
---------------------------------
declare
lciudad varchar2(50);
begin
where ciudadid = 3;
dbms_output.put_line(lciudad);
end;
----------------------------------
declare
lciudad varchar2(50);
begin
from ciudades
dbms_output.put_line(lciudad);
exception
dbms_output.put_line('Ciudad no existe');
end;
CLASE (16-01-2020)
create sequence SEQCIUDADES MINVALUE 20;
is
vColorId number(3);
begin
values(vColorId, pColorNombre);
end;
----------------------------------------------------------------
//invocacion
declare
begin
PInsertarColor (vColorNombre);
end;
-----------------------------------------------------------------
is
vCiudadId number(3);
begin
end;
-----------------------------------------------------------------
declare
begin
pInsertarCiudades(vCiudadNombre);
end;
------------------------------------------------------------------
begin
end;
------------------------------------------------------------------------------------------------
pApellido1 in conductores.apellidopaterno%type,pApellido2 in
conductores.apellidomaterno%type,
pGrpSanguineo in conductores.grpsanguineoId%type) is
begin
end;
----------------------------------------------------------------------------------------------------
declare
begin
end;
CLASE BD (21-01-2020)
-------funciones-----
return varchar2 is
begin
end;
set serveroutput on
declare
vNombre varchar2(50);
vSaludo varchar2(50);
begin
vNombre := 'Mundo!';
vSaludo := Saludar(vNombre);
DBMS_OUTPUT.put_line(vSaludo);
end;
begin
end;
vRetorno number;
begin
end;
begin
DBMS_OUTPUT.put_line(fcontarcolores());
end;
vRetorno number;
begin
return vRetorno;
end;
begin
DBMS_OUTPUT.put_line(fcontarciudades());
end;
vRetorno number;
begin
return vRetorno;
end;
/
begin
DBMS_OUTPUT.put_line(fcountInfractionsForCity(1));
end;
vRetorno number;
begin
return vRetorno;
end;
begin
DBMS_OUTPUT.put_line(fGetSeqColores());
end;
begin
values(fGetSeqColores(),pcolornombre);
end;
begin
pinsertarcolor('turquesa');
end;
/
BASE DE DATOS II – ISINO55 – 9/Enero/2020
Generar las instrucciones DDL que permitan data soporte a los siguientes enunciados:
1. Crear una vista que devuelva un listado con los datos de los conductores y su tipo sanguíneo. El
listado debe mostrarse ordenado ascendentemente por Apellido Paterno y Apellido Materno.
2. Crear una vista de solo lectura que devuelva la información de todos vehículos con marca, color y
placa.
3. Crear una vista que muestre los nombres de conductores que han tenido infracciones entre el 1
de enero y el 30 junio del 2018
4. Cree una secuencia que inicie en 10, se incremente de 5 en 5, que el máximo número de secuencia
sea 50 y que sea cíclica.
5. Cree un índice sobre las columnas apellidopaterno y apellido materno de la tabla de conductores.
6. Cree el sinónimo denominado "Colores" para el usuario PRUEBA, el sinónimo hace referencia a la
tabla "Colores" del usuario "USER55'.
7. Eliminar la vista creada en el punto 2.
8. Sintaxis para determinar cuál será el siguiente valor generado por la secuencia creada en el punto
4.
9. Sintaxis para determinar cuál es valor actual de la secuencia creada en el punto 4.
10. Eliminar el sinónimo creado en el punto 6.
RESOLUCION
/* 1) */
from conductores c
/* 2) */
from vehiculos ve
/* 3) */
from conductores c
/* 4) */
maxvalue 500
minvalue 0
cycle;
/* 5) */
on conductores(apellidopaterno, apellidomaterno);
/* 6) */
/* 7) */
/* 8) */
/* 9) */
/* 10) */
Generar las instrucciones correspondientes que permitan cumplir los siguientes enunciados:
2. Crear las secuencias: SEQESTUDIANTES y SEQPAISES. Las secuencias deben empezar con el valor
de 1 y su incremento debe ser de 1.
3. Crear los procedimientos que permitan insertar y actualizar registros en cada una de las tablas.
Los procedimientos de ingreso deben obtener los valores de los Id de las secuencias creadas en el
punto dos. Los procedimientos de actualización recibirán como parámetros los datos necesarios
para realizar la operación. En el caso en que la ejecución de algún procedimiento genere una
excepción esta deberá ser controlada y deberá mostrar en pantalla un mensaje con la descripción
de la excepción.
4. Crear una función que reciba como parámetro el código del país y como resultado devuelva
cuantos estudiantes han nacido él.
5. Crear una función que reciba como parámetro una letra y como resultado devuelva cuantos
estudiantes contienen dicha letra dentro de sus apellidos.
RESOLUCION
/*1) Crear las siguientes tablas */
paisId number(3),
);
estudianteId number(3),
paisId number(3),
);
/*INSERTS
*/
start with 1
increment by 1;
start with 1
increment by 1;
/*3) */
pNombre in estudiantes.nombres%type,
pApellido in estudiantes.apellidos%type,
pEmail in estudiantes.email%type,
pPais in estudiantes.paisId%type) is
BEGIN
exception
END;
/*4)*/
BEGIN
return vRetorno;
END;
set serveroutput on
BEGIN
DBMS_output.put_line(contarEstudiantes(1));
END;
/*5)*/
BEGIN
return vRetorno;
END;
BEGIN
DBMS_OUTPUT.put_line(fContar('a'));
END;