Database Design
Lis Sulmont
Curriculum Manager
SUM()
, AVG()
, COUNT()
, MIN()
, MAX()
, GROUP BY
, etcINNER JOIN
, LEFT JOIN
. RIGHT JOIN
, FULL JOIN
WHERE
, HAVING
, UNIQUE
, NOT NULL
, AND
, OR
,>
,<
, etcGRANT privilege(s)
or REVOKE privilege(s)
ON object
TO role
or FROM role
SELECT
, INSERT
, UPDATE
, DELETE
, etc $$
GRANT UPDATE ON ratings TO PUBLIC;
$$
REVOKE INSERT ON films FROM db_user;
UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';
Not all views are updatable
INSERT INTO films (code, title, did, date_prod, kind)
VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');
Not all views are insertable
INSERT INTO films (code, title, did, date_prod, kind)
VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');
Not all views are insertable
DROP VIEW view_name [ CASCADE | RESTRICT ];
RESTRICT
(default): returns an error if there are objects that depend on the viewCASCADE
: drops view and any object that depends on that viewCREATE OR REPLACE VIEW view_name AS new_query
view_name
exists, it is replacednew_query
must generate the same column names, order, and data types as the old queryIf these criteria can't be met, drop the existing view and create a new one
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 [, ... ] )
Database Design