lu wei1 outline introduction basic sql setting up and using postgresql advanced sql embeded sql
TRANSCRIPT
![Page 1: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/1.jpg)
Lu Wei 1
Outline
• Introduction• Basic SQL• Setting Up and Using PostgreSQL• Advanced SQL• Embeded SQL
![Page 2: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/2.jpg)
Lu Wei 2
Advanced SQL
• Index• View• Transaction• Integrity Constraints• Access control
![Page 3: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/3.jpg)
Lu Wei 3
Advanced SQL
• Index• View• Transaction• Integrity Constraints• Access control
![Page 4: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/4.jpg)
Lu Wei 4
Index
• An index is a structure that provides accelerated access to the rows of a table based on the values of one or more columns.
• We will discuss the index in detail in chapter11.
![Page 5: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/5.jpg)
Lu Wei 5
Index
• Creating an Index (CREATE INDEX)
• Examples
CREATE [UNIQUE] INDEX IndexNameON TableName(columnName[ASC|DESC][,…])
CREATE UNIQUE INDEX StaffNoIndON Staff(staffNo);
CREATE INDEX RentIndON PropertyForRent(city,rent);
![Page 6: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/6.jpg)
Lu Wei 6
Index
• Removeing an Index (DROP INDEX)
• Examples
DROP INDEX IndexName
DROP INDEX RentInd;
![Page 7: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/7.jpg)
Lu Wei 7
Advanced SQL
• Index• View• Transaction• Integrity Constraints• Access control
![Page 8: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/8.jpg)
Lu Wei 8
View
• The dynamic result of one or more relational operations on the base relations to produce another relation.
• A view is a virtual relation that does not necessarily exist in the in the database but can be produced upon request by a particular user, at the time of request.
• The DBMS stores the definition of the view in the database
![Page 9: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/9.jpg)
Lu Wei 9
View
![Page 10: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/10.jpg)
Lu Wei 10
View
• Creating a View (CREATE VIEW)
– If WITH CHECK OPTION is specified, SQL ensures that if a row fails to satisfy the WHERE clause of the defining query of a view, it is not added to the underlying base table of the view.
CREATE VIEW ViewName[(newColumnName[,…])]AS subselect [WITH [CASCADED|LOCAL] CHECK OPTION];
![Page 11: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/11.jpg)
Lu Wei 11
View
• Examples – Horizontal views
CREATE VIEW IS_Student AS SELECT * FROM Student WHERE sDept='IS';
CREATE VIEW Manager3Staff AS SELECT * FROM Staff WHERE branchNo = ‘B003’;
![Page 12: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/12.jpg)
Lu Wei 12
View
– Vertical views
CREATE VIEW Staff3 AS SELECT staffNo,fName,lName,position,sex
FROM Staff WHERE branchNo = ‘B003’;
CREATE VIEW Staff3 AS SELECT staffNo,fName,lName,position,sex
FROM Manager3Staff;
![Page 13: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/13.jpg)
Lu Wei 13
View
– Grouped and joined views
Create a view of students who is in department ‘IS’ and elect the course ‘001’
CREATE VIEW IS_S1(sNo, sName, score) AS SELECT Student.sNo, sName, score FROM Student, SC WHERE sDept='IS' AND Student.sNo=SC.sNo AND SC.cNo='1';
![Page 14: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/14.jpg)
Lu Wei 14
View
Create a view of staff who manage properties for rent, which includes the branch number they work at, their staff number, and the number of properties they manage.
CREATE VIEW StaffPropCnt(branchNo,staffNO,cnt)
AS SELECT s.branchNo,s.staffNo,COUNT(*) FROM Staff s,PropertyForRent p WHERE s.staffNo = p.staffNo GROUP BY s.branchNo,s.staffNo;
![Page 15: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/15.jpg)
Lu Wei 15
View
• Removing a View (DROP VIEW)
– If CASCAE is specified, DROP VIEW deletes all related dependent objects, in other words, all objects that reference the view.
DROP VIEW ViewName [RESTRICT|CASCADE];
DROP VIEW Manager3Staff CASCADE;
![Page 16: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/16.jpg)
Lu Wei 16
View
• View Resolution
SELECT *FROM empvu80;
iSQL*Plus
Oracle Server
USER_VIEWS EMPVU80
SELECT employee_id, last_name, salaryFROM employeesWHERE department_id=80;
EMPLOYEES
![Page 17: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/17.jpg)
Lu Wei 17
View
SELECT staffNo,cnt FROM StaffPropCnt WHERE branchNo = ‘B003’ORDER BY staffNo;
SELECT s.staffNo AS staffNo,COUNT(*) AS cnt
FROM Staff s,PropertyForRent p WHERE s.staffNo = p.staffNo AND branchNo = ‘B003’GROUP BY s.branchNo,s.staffNoORDER BY staffNo;
Refer to page129
![Page 18: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/18.jpg)
Lu Wei 18
View
• Restriction on Views– If a column in the view is based on an aggregate funct
ion, then the column may appear only in SELECT and ORDER BY clauses of queries that access the view. In particular, such a column may not be used in a WHERE clause and may not be an argument to an aggregate function in any query based on the view.
– A grouped view may never be joined with a base table or a view.
![Page 19: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/19.jpg)
Lu Wei 19
View
SELECT COUNT(cnt) FROM StaffPropCnt;
SELECT * FROM StaffPropCnt
WHERE cnt > 2;
![Page 20: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/20.jpg)
Lu Wei 20
View
• View Updatability– All updates to a base table are immediately reflected i
n all views that encompass that base table. – Similarly,we may except that if a view is updated then
the base table(s) will reflect that change. – Consider that if any view is updatable
INSERT INTO StaffPropCnt
VALUES(‘B003’,’SG5’,2);
![Page 21: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/21.jpg)
Lu Wei 21
View
CREATE VIEW StaffPropList(branchNo,staffNo,propertyNo)
AS SELECT s.branchNo,s.staffNo,p.propertyNo
FROM Staff s,PropertyForRent p
WHERE s.staffNo = p.staffNo;
INSERT INTO StaffPropList
VALUES(‘B003’,’SG5’,’PG19’);
![Page 22: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/22.jpg)
Lu Wei 22
View
For a view to be updatable, the DBMS must be able to trace any row or column back to its row or column in the source table.
Refere to page131 for upatable view definition given in the ISO standard.
![Page 23: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/23.jpg)
Lu Wei 23
View
UPDATE IS_StudentSET sName='刘辰 'WHERE sNo=‘05002';UPDATE Student SET sName='刘辰 ' WHERE sNo=‘05002' AND sDept='IS';
INSERTINTO IS_StudentVALUES(‘05029’, ‘赵新’ , 20);
INSERT INTO Student(Sno,Sname,Sage,Sdept)VALUES(‘05029', '赵新 ', 20, 'IS');
![Page 24: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/24.jpg)
Lu Wei 24
View
• WITH CHECK OPTION– The rows that enter or leave a view are called migrati
ng rows.– The WITH CHECK OPTION clause of the CREATE VI
EW statement prohibits a row migrating out of the view.
![Page 25: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/25.jpg)
Lu Wei 25
View
CREATE VIEW Manager3Staff AS SELECT * FROM Staff WHERE branchNo = ‘B003’ WITH CHECK OPTION;
UPDATE Manager3StaffSET branchNo = ‘B005’WHERE staffNo = ‘SG37’;
INSERT INTO Manager3StaffVALUES(‘SL15’,’Mary’,’Black’,’Assistant’, ’F’,’1985-06-21’,8000,’B002’);
![Page 26: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/26.jpg)
Lu Wei 26
View
CREATE VIEW LowSalaryAS SELECT * FROM Staff WHERE salary > 9000;
CREATE VIEW HighSalaryAS SELECT * FROM LowSalary WHERE salary > 10000WITH LOCAL CHECK OPTION;
![Page 27: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/27.jpg)
Lu Wei 27
View
UPDATE Manager3StaffSET salary = 9500(8000?)WHERE staffNo = ‘SG37’;
CREATE VIEW Manager3StaffAS SELECT * FROM HighSalary WHERE branchNo = ‘B003’;
![Page 28: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/28.jpg)
Lu Wei 28
View
• Advantages of using view– Data independence– Currently– Improved security– Reduced complexity– Convenience– Customization– Data integrity
![Page 29: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/29.jpg)
Lu Wei 29
View
• Disadvantages of using view– Update restriction– Structure restriction– Performance
•
![Page 30: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/30.jpg)
Lu Wei 30
Advanced SQL
• Index• View• Transaction• Integrity Constraints• Access control
![Page 31: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/31.jpg)
Lu Wei 31
Transaction
• A transaction is a sequence of database statements that needs to execute atomically .
• A database transaction consists of one of the following:– DML statements which constitute one consistent change to the data.
– One DDL statement– One DCL statement
![Page 32: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/32.jpg)
Lu Wei 32
Transaction
• Beginning and end of transaction– Implicitly declare– Explicitly declare (begin transaction, commit / rollbac
k)– Programmatic SQL aborts.
![Page 33: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/33.jpg)
Lu Wei 33
Transaction
• Beginning and end of transaction in PostgreSQL through interactive terminal
SELECT * FROM librarian; INSERT INTO librarian VALUES('Mary');
BEGIN TRANSACTION (implicit) SELECT * FROM librarian; commit (implicit) BEGIN TRANSACTION (implicit) INSERT INTO librarian VALUES('Mary'); COMMIT(implicit)
![Page 34: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/34.jpg)
Lu Wei 34
Transaction
BEGIN TRANSACTION; (explicit) SELECT * FROM librarian; INSERT INTO librarian VALUES('Mary'); COMMIT; (explicit)
![Page 35: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/35.jpg)
Lu Wei 35
Transaction
• Configure certain aspects of the transaction
SET TRANSACTION[READ ONLY|READ WRITE]|[ISOLATION LEVEL READ UNCOMMITTED| READ COMMITTED| REPEATABLE READ| SERIALIZABLE]
![Page 36: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/36.jpg)
Lu Wei 36
Advanced SQL
• Index• View• Transaction• Integrity Constraints• Access control
![Page 37: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/37.jpg)
Lu Wei 37
Integrity Constraints
• Immediate and Deferred Integrity Constraints– In some situations, we do not want integrity constraint
s to be checked immediately, that is after every SQL statement has been executed, but instead at transaction commit
SET CONSTRAINTS{ALL|constraintName[,…]}{[NOT]DEFERRABLE}[INITIALLY IMMEDIATE|DEFEREED]
![Page 38: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/38.jpg)
Lu Wei 38
Integrity Constraints
ALTER TABLEADD CONSTRAINT constraintNameFOREIGN KEY(columnName) REFERENCES tableName.columnNameDEFERRABLE INITIALLY DEFERRED/IMMEDIATE
![Page 39: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/39.jpg)
Lu Wei 39
Advanced SQL
• Index• View• Transaction• Integrity Constraints• Access control
![Page 40: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/40.jpg)
Lu Wei 40
Access control
• DBMS should provide a mechanism to ensure that only authorized users can access the database.
• SQL provide the GRANT and REVOKE statement to allow security to be set up.
![Page 41: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/41.jpg)
Lu Wei 41
Username and passwordPrivileges
Access control
Databaseadministrator
![Page 42: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/42.jpg)
Lu Wei 42
Access control
• Database security– System security– Data security
• System privileges: Gaining access to the database
• Object privileges: Manipulating the content of the database objects
![Page 43: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/43.jpg)
Lu Wei 43
Access control
• System privileges– There are many system privileges available according
to different DBMSs.
• The database administrator has high-level system privileges for tasks such as:– Creating new users– Removing users– Removing tables
![Page 44: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/44.jpg)
Lu Wei 44
Access control
• An application developer, for example, may have the following system privileges:– CREATE SESSION– CREATE TABLE– CREATE VIEW– CREATE PROCEDURE
![Page 45: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/45.jpg)
Lu Wei 45
Access control
• Grant and revoke system privileges
GRANT {system_privilege|role}
[, {system_privilege|role} ]…
TO {user|role||PUBLIC}
[, {user|role||PUBLIC}][WITH ADMIN OPTION];
REVOKE {system_privilege|role}
[, {system_privilege|role} ]…
FROM {user|role||PUBLIC}
[, {user|role||PUBLIC}]...;
![Page 46: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/46.jpg)
Lu Wei 46
Access control
• Examples
GRANT create session, create table, create sequence, create viewTO scott;Grant succeeded.Grant succeeded.
GRANT create session, create table, create sequence, create viewTO scott;Grant succeeded.Grant succeeded.
REVOKE create session, create table, create sequence, create viewFROM scott;Revoke succeeded.Revoke succeeded.
REVOKE create session, create table, create sequence, create viewFROM scott;Revoke succeeded.Revoke succeeded.
![Page 47: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/47.jpg)
Lu Wei 47
Access control
• Object previliges– Object privileges vary from object to object.– An owner has all the privileges on the object.
![Page 48: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/48.jpg)
Lu Wei 48
Access control
Object Privilege Table View Sequence Procedure
ALTER
DELETE
EXECUTE
INDEX
INSERT
REFERENCES
SELECT
UPDATE
![Page 49: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/49.jpg)
Lu Wei 49
Access control
• Grant and revoke object privilegesGRANT {object_privilege[(column_list)]
[, object_privilege[(column_list)] …
|ALL [PRIVILEGES]}
ON [schema.]object
TO {user|role|PUBLIC}[,{user|role|PUBLIC}][WITH GRANT OPTION];
REVOKE {object_privilege
[, object_privilege ]…|ALL [PRIVILEGES]}
ON [schema.] object
FROM {user|role||PUBLIC}
[, {user|role||PUBLIC}]...
[CASCADE CONSTRAINTS];
![Page 50: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/50.jpg)
Lu Wei 50
Access control
• Examples GRANT selectON employeesTO sue, rich;Grant succeeded.Grant succeeded.
GRANT selectON employeesTO sue, rich;Grant succeeded.Grant succeeded.
GRANT update (department_name, location_id)ON departmentsTO scott, manager;Grant succeeded.Grant succeeded.
GRANT update (department_name, location_id)ON departmentsTO scott, manager;Grant succeeded.Grant succeeded.
REVOKE select, insertON departmentsFROM scott;Revoke succeeded.Revoke succeeded.
REVOKE select, insertON departmentsFROM scott;Revoke succeeded.Revoke succeeded.
![Page 51: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/51.jpg)
Lu Wei 51
Access control
• GRANT ALL PRIVILEGES
GRANT ALL PRIVILIGES
ON Staff
TO Manager
WITH GRANT OPTION;
GRANT ALL PRIVILIGES
ON Student, Course
TO U1;
![Page 52: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/52.jpg)
Lu Wei 52
Access control
• GRANT specific privileges
GRANT SELECT, UPDATE (salary)
ON Staff
TO Personnel, Director;
![Page 53: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/53.jpg)
Lu Wei 53
Access control
• GRANT specific privileges to PUBLIC
GRANT SELECT
ON Branch
TO PUBLIC;
![Page 54: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/54.jpg)
Lu Wei 54
Access control
• REVOKE specific privileges from PUBLIC
REVOKE SELECT
ON Branch
FROM PUBLIC;
![Page 55: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/55.jpg)
Lu Wei 55
Access control
• GRANT specific privileges from named user
REVOKE ALL PRIVILEGES
ON Staff
FROM Director;
![Page 56: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/56.jpg)
Lu Wei 56
Access control
• About WITH ADMIN OPTION in system privilege DBA
GRANT
REVOKE
Jeff Emi
Jeff EmiDBA
![Page 57: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/57.jpg)
Lu Wei 57
Access control
• About WITH GRANT OPTION in object privilege
GRANT
REVOKE
Bob Jeff Emi
EmiJeffBob
![Page 58: Lu Wei1 Outline Introduction Basic SQL Setting Up and Using PostgreSQL Advanced SQL Embeded SQL](https://reader035.vdocuments.mx/reader035/viewer/2022070400/56649f145503460f94c29988/html5/thumbnails/58.jpg)
Lu Wei 58
Summary
• In this part you should have learned:– How to create and drop view and index– The concept of transaction– How to define integrity constraint– How to grant and revoke privileges