Professional Documents
Culture Documents
otros objetos en la
base de datos
Sistemas Gestores de Bases de Datos
CREANDO VISTAS
1. Vistas
• Sentencia SELECT a la que se le asigna un
nombre.
• Funcionamiento similar a una tabla.
• Se usan para:
• Prohibir el acceso a datos confidenciales.
• Simplificar la formulación de consultas complejas o
repetitivas.
• Aumentar independencia de programas con respecto a
datos.
3
1. Vistas
• Tabla lógica que contiene información de otras tablas
denominadas tablas base.
• No contiene información por sí misma.
• Si se suprime una de las tablas bases la vista deja de funcionar.
2. Formato de una vista
5
3. Creación y uso de vistas
• Las vistas más sencillas son las que acceden a
una única tabla.
CREATE VIEW DEPTO130
AS SELECT NOMEM, SALAR
FROM TEMPLE
WHERE NUMDE=130;
¿Admite la vista creada consultas, borrados,
inserciones y actualizaciones? ¿Qué ocurre?
3. Creación y uso de vistas
• También se pueden crear dando el nombre a las
columnas.
CREATE OR REPLACE VIEW DEPT130 (NOMBRE, SALARIO) AS
SELECT NOMEM, SALAR
FROM TEMPLE
WHERE NUMDE=130;
3. Creación y uso de vistas
• Crea una vista que contenga los datos de los empleados de la
empresa que cobran más de 1500 euros. Realiza inserciones,
borrados y actualizaciones y comprueba lo que ocurre en la
tabla original.
3. Creación y uso de vistas
• WITH CHECK OPTION.
• Permite crear una vista que respete todas las condiciones
impuestas a la tabla original.
CREATE OR REPLACE VIEW DEP110
AS SELECT * FROM TEMPLE WHERE
NUMDE=110 WITH CHECK OPTION;
• Si intentamos alguna inserción que no respete las condiciones de
la tabla original obtendremos un error.
4. Vistas complejas.
• Son vistas cuya sentencia SELECT contiene uno o varios de los
siguientes elementos:
• Consultas definidas sobre varias tablas.
• Uso de GROUP BY O DISTINCT.
• Llamadas a funciones.
• Expresiones sobre columnas.
• Este tipo de vistas solo permite realizar consultas sobre ellas.
4. Vistas complejas.
• Crea la vista VMEDIA sobre las tablas TEMPLE y TDEPTO. Esta
vista contendrá, para cada departamento, el nombre, la media
de salarios del departamento y el máximo salario. Prueba a
realizar inserciones, borrados y actualizaciones sobre la vista.
Indica qué ocurre.
5. Borrado de Vistas
• Es posible borrar vistas mediante la sentencia:
• DROP VIEW nombreVista;
• Por ejemplo:
• DROP VIEW EMPLE120;
6. Sinónimos
• Podemos crear sinónimos para acceder a tablas.
• Para acceder a tablas de otro usuario sin tener que poner su
nombre delante.
• Por comodidad, con tablas de nombre largo por ejemplo.
• Un sinónimo es un nuevo nombre que se puede dar a una
tabla o vista, de esta manera la tabla podrá referenciarse por
su nombre o cualquiera de los sinónimos.
7. Vistas: Ejemplo
• Crear la vista VEMPLE2 con los números y nombres de
los empleados que hay en VEMPLE1.
CREATE VIEW VEMPLE2
AS SELECT NUMEM, NOMEM FROM VEMPLE1
• El usuario U1 desea crear una vista, VEMPLE3, con los
empleados de VEMPLE2 que tengan la palabra PEREZ en
su nombre. Además al número de empleado se le
llamará ID y al nombre NOMBRE, y este estará antes que
aquel.
CREATE VIEW VEMPLE3 (NOMBRE, ID)
AS SELECT NOMEM, NUMEM FROM VEMPLE2
WHERE NOMEM LIKE ‘%PEREZ%’
14
23. Vistas
• Eliminación de vistas.
• Formato: DROP VIEW nombre_vista
• Al eliminar una vista se eliminan también las posibles
vistas basadas en ella.
• Al eliminar una tabla también se pierden todas las
vistas basadas en dicha tabla.
• P.e: Eliminar la vista VEMPLE1
DROP VIEW VEMPLE1
Puesto que VEMPLE2 estaba basada en VEMPLE1
también será eliminada.
15
DANDO PERMISOS
Introducción
• Uno de los sublenguajes que forma SQL es el DCL (Data
Control Language)
• Permite dar permisos sobre objetos de la base de datos
• Formado por dos comandos:
• GRANT
• Añade permisos a un usuario
• REVOKE
• Elimina permisos de un usuario
• Pero antes de dar permisos necesitaremos crear usuarios….
CREANDO USUARIOS
CREACIÓN DE USUARIOS
• Normas generales:
• Debes tener el privilegio CREATE USER o INSERT en la base de
datos MySQL
• Si la variable global del sistema read_only está a cierto también
requiere el privilegio SUPER
• La sintaxis del comando fue expandida a partir de la versión 5.7.6
de MySQL
CREACIÓN DE USUARIOS
• Antes de MySQL 5.7.6
CREACIÓN DE USUARIOS
• Cada nueva cuenta inserta una fila en la tabla mysql.user
• Ejemplo: Creación de cuenta con el plugin de autenticación
por defecto y que el usuario tenga que cambiar en el siguiente
inicio de sesión