Beruflich Dokumente
Kultur Dokumente
DE CHETUMAL
PROFESOR:
M.S.I. FRANCISCO HERRERA
ASIGNATURA:
BASE DE DATOS
TRABAJO:
CUADERNILLO DE SCRIPTS
PRESENTA:
VCTOR HUGO MEDRANO ORTEGN
NDICE
MANEJO DE VISTAS............................................................................................. 3
SUBCONSULTAS.................................................................................................. 6
SINNIMOS.......................................................................................................... 9
JUSTIFICACIN, MEJORES PRCTICAS UTILIZADAS..........................................12
BUENAS PRCTICAS USADAS PARA VISTAS..................................................12
BUENAS PRCTICAS USADAS PARA SUBCONSULTAS....................................13
BUENAS PRCTICAS USADAS PARA SINONIMOS............................................14
REFERENCIAS................................................................................................... 14
MANEJO DE 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.
Entonces, una vista almacena una consulta como un objeto para utilizarse
posteriormente. Las tablas consultadas en una vista se llaman tablas base. En
general, se puede dar un nombre a cualquier consulta y almacenarla como una
vista.
Una vista suele llamarse tambin tabla virtual porque los resultados que retorna y
la manera de referenciarlas es la misma que para una tabla.
Las vistas permiten:
VISTA 1
CREATE VIEW VISTA_CLIENTES
AS SELECT
"CLI_ID","CLI_NOMBRE","CLI_DIRECCION","CLI_CIUDAD","CLI_DEPARTAMENTO","
CLI_TELEFONO","EMP_ID","CLI_CREDITOLIMITE","CLI_OBSERVACIONES"
FROM CLIENTES;
VISTA 2
CREATE VIEW VISTA_PRECIOS
AS SELECT
"PRO_ID","PRE_FECHAINICIO","PRE_FECHAFIN","PRE_ESTANDAR","PRE_MINIMO"
FROM PRECIOS;
VISTA 3
CREATE VIEW VISTA_DEPARTAMENTOS
AS SELECT
"DEP_ID","DEP_NOMBRE","DEP_LOCALIZACION"
FROM DEPARTAMENTOS;
VISTA 4
CREATE VIEW VISTA_ORDENES
AS SELECT
"ORD_ID","ORD_FECHA","ORD_PLANCOMISION","CLI_ID","ORD_FECHAENTREGA
","ORD_TOTAL"
FROM ORDENES;
VISTA 5
CREATE VIEW VISTA_PRODUCTOSPORORDEN
AS SELECT
"ORD_ID","PPO_ID","PRO_ID","PPO_PRECIOACTUAL","PPO_CANTIDAD","PPO_TOT
ALLINEA"
FROM PRODUCTOSPORORDEN;
VISTA 6
CREATE VIEW VISTA_GRADOSDESALARIO
AS SELECT
"GRA_ID","GRA_LIMITEINFERIOR","GRA_LIMITESUPERIOR"
FROM GRADOSDESALARIO;
SUBCONSULTAS
Una subconsulta (subquery) es una sentencia "select" anidada en otra sentencia
"select", "insert", "update" o "delete" (o en otra subconsulta).
Las subconsultas se emplean cuando una consulta es muy compleja, entonces se
la divide en varios pasos lgicos y se obtiene el resultado con una nica
instruccin y cuando la consulta depende de los resultados de otra consulta.
Generalmente, una subconsulta se puede reemplazar por combinaciones y estas
ltimas son ms eficientes.
Las subconsultas generalmente se incluyen entre parntesis. Puede haber
subconsultas dentro de subconsultas. Generalmente las subconsultas se colocan
en la clusula "where".
Una subconsulta puede retornar:
un solo valor,
una lista de valores de una sola columna,
un conjunto de registros de varios campos.
6
en lugar de una expresin, siempre que devuelvan un solo valor o una lista
de valores.
que retornen un conjunto de registros de varios campos en lugar de una
tabla o para obtener el mismo resultado que una combinacin (join).
las que retornan un solo valor escalar que se utiliza con un operador de
comparacin o en lugar de una expresin.
las que retornan una lista de valores, se combinan con "in", o los
operadores "any", "some" y "all".
los que testean la existencia con "exists".
SUBCONSULTA 1
SELECT CLIENTES.CLI_ID, CLIENTES.CLI_NOMBRE,
CLIENTES.CLI_DEPARTAMENTO,
(SELECT ORDENES.ORD_TOTAL
FROM ORDENES
WHERE CLI_ID= 15)
FROM CLIENTES
WHERE CLI_ID = 15;
SUBCONSULTA 2
SELECT CLIENTES.CLI_NOMBRE, CLIENTES.CLI_DIRECCION,
CLIENTES.CLI_CIUDAD,
(SELECT DEPARTAMENTOS.DEP_NOMBRE
FROM DEPARTAMENTOS
WHERE DEP_ID= 30)
FROM CLIENTES
WHERE CLI_ID = 10;
SUBCONSULTA 3
SELECT DEPARTAMENTOS.DEP_NOMBRE, DEPARTAMENTOS.DEP_LOCALIZACION,
(SELECT EMPLEADOS.EMP_NOMBRE
FROM EMPLEADOS
WHERE EMP_ID = 1100)
FROM DEPARTAMENTOS
WHERE DEP_ID = 10;
SUBCONSULTA 4
SELECT EMPLEADOS.EMP_NOMBRE, EMPLEADOS.EMP_CARGO,EMP_JEFE,
(SELECT DEPARTAMENTOS.DEP_LOCALIZACION
FROM DEPARTAMENTOS
WHERE DEP_ID = 10)
FROM EMPLEADOS
WHERE EMP_ID = 1000;
SUBCONSULTA 5
SELECT PRODUCTOS.PRO_ID, PRODUCTOS.PRO_NOMBRE,
(SELECT ORDENES.ORD_FECHA
FROM ORDENES
WHERE ORD_ID = 452)
FROM PRODUCTOS
WHERE PRO_ID = 30100201;
SUBCONSULTA 6
SELECT PRODUCTOSPORORDEN.PPO_PRECIOACTUAL,
PRODUCTOSPORORDEN.PPO_CANTIDAD,
(SELECT PRODUCTOS.PRO_NOMBRE
FROM PRODUCTOS
SINNIMOS
Un sinnimo en Oracle, es una representacin local o pblica de un objeto
perteneciente a un esquema. Sirve para poder hacer referencia a aquel objeto sin
tener que anteponer su esquema. Un sinnimo pblico puede ser visto por todos
los usuarios, pero uno privado, slo por el usuario que lo cre.
Para poder crear un sinnimo, el esquema o usuario que lo crea, tiene que tener
alguno o ambos privilegios de los siguientes:
CREATE SYNONYM
CREATE PUBLIC SYNONYM
Para el caso de un sinnimo simple (no pblico), el usuario tiene que tener
privilegio sobre el objeto al que le crear el sinnimo. Por ejemplo, si es una tabla,
deber tener al menos privilegio de select, insert, delete o update sobre la misma.
SINONIMO 1
CREATE SYNONYM
"DEMO"."SINOCLI"
FOR
"DEMO"."CLIENTES";
10
SINONIMO 2
CREATE SYNONYM
"DEMO"."SINODEPA"
FOR
"DEMO"."DEPARTAMENTOS";
11
SINONIMO 3
CREATE SYNONYM
"DEMO"."SINOBONI"
FOR
"DEMO"."BONIFICACIONES";
SINONIMO 4
CREATE SYNONYM
"DEMO"."SINOEMPL"
FOR
"DEMO"."EMPLEADOS";
12
SINONIMO 5
CREATE SYNONYM
"DEMO"."SINOGRADESAL"
FOR
"DEMO"."GRADOSDESALARIO";
SINONIMO 6
CREATE SYNONYM
"DEMO"."SONOPRE"
13
FOR
"DEMO"."PRECIOS";
Los nombres para vistas deben seguir las mismas reglas que cualquier
identificador. Para distinguir una tabla de una vista podemos fijar una
convencin para darle nombres, por ejemplo, colocar el sufijo vista y luego el
nombre de las tablas consultadas en ellas.
Los campos y expresiones de la consulta que define una vista deben tener un
nombre. Se debe colocar nombre de campo cuando es un campo calculado o
si hay 2 campos con el mismo nombre, al concatenar los campos es necesario
colocar un alias; si no se hace aparecer un mensaje de error porque dicha
expresin debe tener un encabezado, Oracle no lo coloca por defecto.
14
Los nombres de los campos y expresiones de la consulta que define una vista
deben ser nicos (no puede haber dos campos o encabezados con igual
nombre).
Al crear una vista, Oracle hay que verificar que existan las tablas a las que se
hacen referencia en ella; no se puede crear una vista que referencie tablas
inexistentes. No se puede crear una vista si existe un objeto con ese nombre.
Seleccionar solo aquellos campos que se necesiten, cada campo extra genera
tiempo extra.
Los nombres para sinnimos deben seguir las mismas reglas que cualquier
identificador. Para distinguir un sinnimo podemos fijar una convencin para
darle nombres, por ejemplo, colocar el sufijo sino y luego el nombre
abreviado del objeto.
REFERENCIAS
http://www.oracleya.com.ar/temarios/descripcion.php?
inicio=50&cod=230&punto=72
https://orlandoolguin.wordpress.com/2009/02/22/manejo-de-sinonimos/
http://www.oracleya.com.ar/temarios/descripcion.php?cod=240&punto=1
http://es.slideshare.net/etumax/optimizacion-de-consultas
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.ht
m
16
17