Diseño de bases de datos
Lis Sulmont
Curriculum Manager
SUM()Agregación: AVG(), COUNT(), MIN(), MAX(), GROUP BY, {{1}}, etc.
INNER JOINJOINs: LEFT JOIN, RIGHT JOIN. FULL JOIN,
GRANT privilege(s) o REVOKE privilege(s)
ON object
TO role o FROM role
SELECTPrivilegios: INSERT, UPDATE, DELETE, {{1}}, etc.
{{2}}Objetos: tabla, vista, esquema, etc.
{{3}}Roles: un usuario de la base de datos o un grupo de usuarios de la base de datos.
$$
GRANT UPDATE ON ratings TO PUBLIC;
$$
REVOKE INSERT ON films FROM db_user;
UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';
{{2}}No todas las vistas se pueden actualizar. La vista se compone de una tabla.
INSERT INTO films (code, title, did, date_prod, kind)
VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');
{{2}}No todas las vistas se pueden insertar.
INSERT INTO films (code, title, did, date_prod, kind)
VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');
No todas las vistas se pueden insertar.
Conclusión: evita modificar datos a través de vistas.
DROP VIEW view_name [ CASCADE | RESTRICT ];
RESTRICT (predeterminado): devuelve un error si hay objetos que dependen de la vista.
CREATE OR REPLACE VIEW view_name AS new_query
Si existe una vista con view_name, se sustituye.
new_query Debes generar los mismos nombres de columna, orden y tipos de datos que la consulta anterior.
La salida de la columna puede ser diferente.
Se pueden añadir nuevas columnas al final.
{{1}}Si no se pueden cumplir estos criterios, elimina la vista existente y crea una nueva.
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
ALTER VIEW [ IF EXISTS ] name OWNER TO new_owner
ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )
Diseño de bases de datos