53
Suphitcha Chanrueang 7121311 การบริหารและจัดการฐานข้อมูล

Chapter Database

Embed Size (px)

Citation preview

Page 1: Chapter Database

Suphitcha Chanrueang7121311 การบรหิารและจดัการฐานขอ้มลู

Page 2: Chapter Database

ประวตัแิละความเป็นมาของ SQLSQL (Structured Query Language ) เป็นภาษามาตรฐานบนระบบฐานข้อมลู

เชิงสมัพนัธ์ ชดุคําสัง่ หรือภาษา SQL นัน่ถกูพฒันาจากแนวความคิดทางคณิตศาสตร์ คือ

Relational Algebra และ Relational Calculus ตอ่มาได้ถกูกําหนดให้เป็นรูปแบบมาตรฐานโดยสถาบนั American National 

Standards Institue(ANSI)  ระบบการจดัการฐานข้อมลูที่รองรับ SQL เชน่ ORACLE, DB2, SYBASE, Informix, MS‐SQL, MS‐Access และ MS‐FoxPro

Page 3: Chapter Database

วตัถปุระสงคข์อง SQL

• สร้างฐานข้อมลูและโครงสร้างรีเลชนั

• สนบัสนนุงานด้านการจดัการข้อมลูพืน้ฐาน การเพิ่ม การปรับปรุง และการลบ

ข้อมลูจากรีเลชนั

• สนบัสนนุการควิรีข้อมลูพืน้ฐานตลอดจนคิวรีข้อมลูขัน้สงูที่มีความซบัซ้อน รวมทัง้

ความสามารถในการแปลงข้อมลูดิบให้เป็นสารสนเทศ

Page 4: Chapter Database

การใชง้านภาษา SQL

• แบบโต้ตอบ (Interactive SQL)– ยสูเซอร์สามารถใช้งานชดุคําสัง่ SQL โดยโต้ตอบกนับนจอภาพ

• แบบฝังในตวัโปรแกรม (Embedded SQL)เป็นการเขียนชดุคําสัง่ภาษา SQL ไว้ในโปรแกรม– Embedded SQL Statements  – Application Programming Interface (API)

Page 5: Chapter Database

ประเภทของคําสัง่ภาษา SQL

• ภาษานิยามข้อมลู (Data Definition Language : DDL)– ใช้ในการสร้างฐานข้อมลู กําหนดโครงสร้างข้อมลู

• ภาษาจดัการข้อมลู (Data Manipulation Language : DML)– ใช้ในการอปัเดต เพิ่ม ปรับปรุง และการคิวรีข้อมลูในฐานข้อมลู

• ภาษาควบคมุข้อมลู (Data Control Language : DCL)– ใช้ในการกําหนดสทิธิในการเข้าถงึข้อมลูในฐานข้อมลู

Page 6: Chapter Database

ภาษานยิามขอ้มลู (Data Definition Language : DDL)

• CREATE   คําสัง่ที่ใช้ในการสร้าง– CREATE TABLE สร้างตาราง

– CREATE INDEX สร้างดชันี

– CREATE VIEW สร้างวิว

• DROP  คําสัง่ที่ใช้ในการลบ– DROP TABLE ลบตาราง

– DROP INDEX  ลบดชันี

– DROP VIEW ลบวิว

• ALTER  คําสัง่ที่ใช้ในการเปลีย่นแปลงโครงสร้างตาราง

Page 7: Chapter Database

การสรา้งตาราง (CREATE TABLE)CREATE TABLE tablename(

column_name datatype [ NULL |NOT NULL][DEFAULT default_value] [column_constraint_clause]…[,column_name datatype [ NULL |NOT NULL][DEFAULT default_value] [column_constraint_clause]…]…[table_constraint_clause]..);

CREATE TABLE staff(sno VARCHAR(5) NOT NULL,fname VARCHAR(15) NOT NULL,lname VARCHAR(15) NOT NULL,sex CHAR(1) NOT NULL DEFAULT F,dob DATETIME NOT NULL);

รูปแบบ

ตวัอย่าง

Page 8: Chapter Database

การลบตาราง (DROP TABLE)

DROP TABLE tablename;

DROP TABLE property_for_rent;

รูปแบบ

ตวัอย่าง

Page 9: Chapter Database

การสรา้งดชันแีละลบดชันี

CREATE [UNIQUE] INDEX index_name ON table_name (column [ASC|DESC] […]);

CREATE INDEX sno_ind ON staff(sno);CREATE INDEX pno_ind ON property_for_rent(pno);CREATE INDEX rent_ind ON property_for_rent (area,rent);CREATE INDEX rent_ind ON property_for_rent (area);

รูปแบบ

ตวัอย่าง

DROP INDEX index_name;

DROP INDEX rent_ind;

Page 10: Chapter Database

การเปลีย่นแปลงโครงสรา้งตาราง (ALTER TABLE)

ALTER TABLE tablename[COMMAND [COLUMN] column_name data_type [CONSTRAINT]];

ALTER TABLE staffADD (bonus DECIMAL(7,2));

รูปแบบ

ตัวอย่าง

โดยที่ COMMAND สามมารถเป็นคาํสั่งต่าง ๆ เช่น

- ADD คือการเพิ่มคอลัมน์หรือข้อจาํกัด (constraint)

- MODIFY คือการแก้ไขเปลี่ยนแปลงคอลัมน์

- DROP คือการลบคอลัมน์

ALTER TABLE staffMODIFY (bonus DECIMAL(9,2));

ALTER TABLE staffDROP bonus;

Page 11: Chapter Database

การสรา้งววิ (CREATE VIEW)

CREATE VIEW view_name [(column_name [, …])]AS subselect [WITH [CASCADED | LOCAL] CHECK OPTION];

รูปแบบ

CREATE VIEW STAFF_VIEWAS SELECT sno, fname, lname, position, bnoFROM staff;

ตัวอย่าง

Page 12: Chapter Database

ภาษาจัดการขอ้มลู (Data Manipulation Language : DML)

• SELECT  ใช้สําหรับคิวรีข้อมลูในฐานข้อมลู

• INSERT ใช้สําหรับเพิ่มข้อมลูในตาราง

• UPDATE ใช้สําหรับการอปัเดตข้อมลูในตาราง

• DELETE  ใช้สําหรับลบข้อมลูจากตาราง

Page 13: Chapter Database

SELECT Statement

SELECT [DISTINCT | ALL] { * | column_expression[ AS new_name ]][, ...]}FROM table_name [ alias ] [ , … ][ WHERE condition ][ GROUP BY column_list ] [ HAVING condition ][ ORDER BY column_list ] ;

รูปแบบ

โดยลําดับการประมวลผลในชดุคําสัง่ SELECT มดีงันี้- FROM กําหนดตารางทีต่อ้งการใชง้าน- WHERE สรา้งเงือ่นไขเพือ่กรอง (filters) แถวทีต่อ้งการ- GROUP BY จัดกลุม่แถวทีม่คีา่คอลัมนเ์ดยีวกนั- HAVING กรองกลุม่เนือ้หาในบางเงือ่นไขจาก GROUP BY- ORDER BY กําหนดใหเ้รยีงลําดบัผลลพัธ ์โดยที่

ASC เรยีงจากนอ้ยไปมากDESC เรยีงจากมากไปนอ้ย

Page 14: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECT

SELECT sno, fname, lname, address, tel_no, position, sex, dob, salary, bnoFROM staff;

หรอืSELECT *FROM staff;

การเรียกดขู้อมูลทุก ๆ คอลัมน์

แสดงรายละเอียดของ Staff ทกุ ๆ คน

Page 15: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการเรียกดขู้อมูลบางคอลัมน์

แสดงรหสั ชื่อ และเงินเดือน ของ Staff

SELECT sno, fname, lname, salaryFROM staff ORDER BY sno DESC ;

การเรียกดขู้อมูลด้วยการไม่ให้แสดงข้อมูลที่ซํา้ ๆ

แสดงรหสับ้านเชา่ (Property) ที่มีลกูค้ามาเยี่ยมชม

SELECT DISTINCT pnoFROM viewing;

Page 16: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการคาํนวณค่าในคอลัมน์ด้วยนิพจน์ทางคณิตศาสตร์ + , - , * , /

คํานวณคา่คอมมิชชนั 5 % จากยอดเงินเดือน

SELECT sno, fname, lname, salary*0.05FROM staff;

กําหนดชื่อคอลมัน์ใหมท่ี่ได้จากการคํานวณ

SELECT sno, fname, lname, salary*0.05 AS commissionFROM staff;

Page 17: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการใช้เงื่อนไขเพื่อเปรียบเทยีบ

แสดงรายชื่อพนกังาน (Staff) ที่มีเงินเดือนมากกวา่ 10,000 บาท

SELECT sno, fname, lname, position, salaryFROM staffWHERE salary>10000;

เครือ่งหมายเปรยีบเทยีบ (comparison operatiors)

= เทา่กบั< นอ้ยกวา่> มากกวา่<= นอ้ยกวา่หรอืเทา่กบั>= มากกวา่หรอืเทา่กบั<> ไมเ่ทา่กบั

Page 18: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการใช้เครื่องหมายทางตรรกะ (logical operators)

โดยใช้ข้อความ AND , OR และ NOT

SELECT bno, street, area, city, pcodeFROM branchWHERE city = ‘Chaingmai’ OR city = ‘Bangkok’;

Page 19: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการใช้เงื่อนไข BETWEEN / NOT BETWEEN

แสดงข้อมลูพนกังานที่มีเงินเดือนระหวา่ง 20,000 ถงึ 30,000 บาท

SELECT sno, fname, lname, position, salaryFROM staffWHERE salary BETWEEN 20000 AND 30000;

หรอืSELECT sno, fname, lname, position, salaryFROM staffWHERE salary >= 20000 AND salary <= 30000;

Page 20: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการใช้เงื่อนไข IN / NOT IN

แสดงข้อมลู Staff ทัง้หมดที่มีตําแหน่งเป็น ‘Manager’ และ ‘Deputy’

SELECT sno, fname, lname, positionFROM staffWHERE position IN (‘Manager’, ‘Deputy’);

หรอืSELECT sno, fname, lname, positionFROM staffWHERE position = ‘Manager’ OR position = ‘Deputy’;

Page 21: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECT

LIKE และ NOT LIKE เป็นโอเปอเรเตอร์ที่ใช้ในการค้นหาข้อมลูตวัอกัษร โดยใช้สญัลกัษณ์ % และ _  โดยที่

% แทนตวัอกัษรหลายตวั เชน่ sno LIKE ‘SG%’  หมายถงึ ค้นหา Staff_No ที่ขึน้ต้นด้วย SG ทัง้หมด

_  แทนตวัอกัษร 1 ตวัอกัษร เชน่ fname LIKE ‘_o%’  หมายถงึ ค้นหาชื่อที่มีตวัอกัษรขึน้ต้นด้วยอะไรก็ได้หนึง่ตวั ตวัอกัษรที่สองต้องเป็นตวั o และที่เหลือคืออกัษรใด ๆ ก็ได้

ใน MS‐Access ใช้สญัลกัษณ์ * แทน % และใช้ ? แทน _

Page 22: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTค้นหา Staff ที่มีที่อยู ่ อยูใ่นกรุงเทพฯ

SELECT sno, fname, lname, address, salaryFROM staffWHERE address LIKE ‘*Bangkok*’;

ค้นหา Staff ที่ไมไ่ด้ อยูใ่นกรุงเทพฯ

SELECT sno, fname, lname, address, salaryFROM staffWHERE address NOT LIKE ‘*Bangkok*’;

Page 23: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการใช้เงื่อนไข IS NULL / IS NOT NULL

แสดงรายละเอียดของ Viewing ของ Property PG04 ที่ลกูค้าไมไ่ด้ comment ใดๆ

SELECT rno, dateFROM viewingWHERE pno = ‘PG04’ AND comment IS NULL;

Page 24: Chapter Database

ตวัอยา่งการใชค้ําสัง่ SELECTการเรียงลาํดบัคอลัมน์เดยีว (Single column ordering)

แสดงข้อมลู Staff ด้วยการเรียงลําดบัตามเงินเดือนจากมากไปน้อย

SELECT sno, fname, lname, salaryFROM staffORDER BY salary DESC;

การเรียงลาํดบัหลายคอลัมน์ (Multiple column ordering)

SELECT pno, type, rooms, rentFROM property_for_rentORDER BY type,rent DESC;

Page 25: Chapter Database

การใชฟ้ังกช์นัการรวมใน SQL(The SQL Aggregate Functions)

• COUNT  ฟังก์ชนัการนบัจํานวน

• SUM   ฟังก์ชนัหาผลรวม

• AVG ฟังก์ชนัหาคา่เฉลี่ย

• MIN ฟังก์ชนัหาคา่ตํ่าสดุ

• MAX  ฟังก์ชนัหาคา่สงูสดุ

Page 26: Chapter Database

การใชฟ้ังกช์นัการรวมใน SQL(The SQL Aggregate Functions)

การใช้ฟังก์ชัน COUNT

เชน่ อยากทราบจํานวนบ้านเช่าที่มีคา่เช่ามากกวา่ 350 บาทตอ่วนั

SELECT COUNT(*) AS countFROM property_for_rentWHERE rent >350;

การใช้ฟังก์ชัน COUNT ร่วมกับฟังก์ชัน SUM

เชน่ ต้องการทราบวา่มีผู้จดัการอยูก่ี่คน และยอดรวมของเงินเดือนของผู้จดัการ

ทัง้หมดคือจํานวนเทา่ไร

SELECT COUNT(sno) AS count, SUM(salary) AS sumFROM staffWHERE position = ‘Manager’;

Page 27: Chapter Database

การใชฟ้ังกช์นัการรวมใน SQL(The SQL Aggregate Functions)

การใช้ฟังก์ชัน MIN, MAX, AVG

เชน่ ต้องการทราบยอดตํ่าสดุ ยอดสงูสดุ และยอดเฉลี่ยของเงินเดือนพนกังาน

(Staff)SELECT MIN(salary) AS min, MAX(salary) AS max,AVG(salary) AS avgFROM staff;

Page 28: Chapter Database

การใชป้ระโยค GROUP BY

เป็นการจดักลุม่แยกตามประเภทคา่ในแตล่ะคอลมัน์

การใช้ GROUP BY

เชน่ ต้องการทราบจํานวนพนกังานที่ทํางานอยูใ่นแตล่ะสาขา และทําการ

หายอดรวมเงินเดือนพนกังานที่จะต้องจ่ายในแตล่ะสาขา

SELECT bno, COUNT(sno) AS count, SUM(salary) AS sumFROM staffGROUP BY bnoORDER BY bno;

Page 29: Chapter Database

การใชป้ระโยค HAVING

จะใช้งานร่วมกบัประโยค GROUP BY เสมอ โดยเป็นการสร้างเงื่อนไขเพื่อดขู้อมลูบางสว่น

การใช้ HAVING

เชน่ แสดงสาขาที่มีจํานวนสมาชิกของ Staff ที่มากกวา่หนึง่คน, ค้นหา

จํานวน Staff ที่ทํางานในแตล่ะสาขา และหาผลรวมของเงินเดือน

SELECT bno, COUNT(sno) AS count, SUM(salary) AS sumFROM staffGROUP BY bnoHAVING COUNT(sno)>1ORDER BY bno;

Page 30: Chapter Database

Subqueries หรอื Nested query

การใช้คําสัง่ SELECT ซ้อนกนัเพื่อให้แสดงผลที่ซบัซ้อนขึน้

เชน่ ต้องการแสดงข้อมลู Staff ที่ทํางานในสาขาที่ตัง้อยูท่ี่ 143

Wipavadee Rd.

SELECT bno, fname, lname, positionFROM staffWHERE bno =

(SELECT bnoFROM branchWHERE street =‘143 Wipavadee Rd.’);

Page 31: Chapter Database

Subqueries หรอื Nested query

การใช้ Subquery ร่วมกับฟังก์ชันการรวม (Aggregate function)

เชน่ ให้แสดงข้อมลู Staff ที่มีเงินเดือนสงูกวา่เงินเดือนเฉลี่ย (average

salary) รวมทัง้แสดงสว่นตา่งของเงินเดือนวา่สงูกวา่เงินเดือนเฉลี่ยจํานวนเทา่ไร

SELECT sno, fname, lname, position, salary-(SELECT avg(salary) FROM staff)AS sal_diffFROM staffWHERE salary > (SELECT avg(salary)

FROM staff);

Page 32: Chapter Database

Subqueries หรอื Nested query

การใช้ Nested Subquery ด้วยการใช้ IN

เชน่ แสดงบ้านเช่า (properties) ที่ดแูลโดย Staff ที่ทํางานอยูใ่นสาขาที่

ตัง้อยูท่ี่ 143 Wipavadee Rd.

SELECT pno, street, area, city, pcode, type, rooms, rentFROM property_for_rentWHERE sno IN

(SELECT snoFROM staffWHERE bno =

(SELECT bnoFROM branchWHERE street = ‘143 Wipavadee Rd.’));

Page 33: Chapter Database

การ Join อยา่งงา่ย

การ Join เป็นการนําตารางสองตารางขึน้ไปมารวมกนัใต้เงื่อนไขที่กําหนด

การ Join อย่างง่าย (Simple join)

เชน่ จงแสดงชื่อของผู้ เช่า (Renters) หรือลกูค้าที่มาดบู้านเชา่ (Property)

ทัง้หมด

SELECT r.rno, fname, lname, pno, commentFROM renter AS r, viewing AS vWHERE r.rno = v.rnoORDER BY r.rno;

Page 34: Chapter Database

การ Join อยา่งงา่ยจงแสดงสาขาตา่ง ๆ ด้วยการแสดงชื่อของ Staff ที่ดแูลจดัการบ้านเช่า

รวมทัง้บ้านเชา่ที่ได้รับการดแูลจาก Staff

SELECT s.bno, s.sno, fname, lname, pnoFROM staff AS s, property_for_rent AS pWHERE s.sno = p.snoORDER BY s.bno, s.sno;

Page 35: Chapter Database

การ Join อยา่งงา่ย

การ Join สามตาราง

จงแสดงรายการสาขาตา่ง ๆ ซึง่ประกอบด้วย Staff ที่ดแูลบ้านเชน่ โดยให้

มีรายละเอียด City ของแตล่ะสาขาด้วย

SELECT b.bno, b.city, s.sno, fname, lname, pnoFROM branch AS b, staff AS s, property_for_rent AS pWHERE b.bno = s.bno AND s.sno = p.snoORDER BY b.bno, s.sno, pno;

Page 36: Chapter Database

Inner Join

ตาราง 1 ตาราง 2

ขอ้มลูทีต่รงกนั

Inner Join เป็นการเลือกข้อมลูจากหลายตารางโดยการ

จบัคูแ่ถวที่มีข้อมลูตรงกนัของ 2 ตาราง ที่ Join กนั

SELECT ชือ่คอลมัน1์ , ชือ่คอลมัน2์ , ....... FROM ชือ่ตาราง1 INNER JOIN ชือ่ตาราง2ON ชือ่ตาราง1.ชือ่คอลมัน ์= ชือ่ตาราง2.ชือ่คอลมัน์

รูปแบบ

Page 37: Chapter Database

INNER JOIN

SELECT *FROM Worker INNER JOIN AssignON Worker.WK_ID = Assign.WK_ID

Page 38: Chapter Database

Left Outer Join

ตาราง 1 ตาราง 2

ขอ้มลูทีต่รงกนั

แสดงผลลพัธ์เป็นแถวทัง้หมดในตารางที่อยูท่างซ้ายของคําสัง่ Left

Outer Join สว่นแถวของตารางทางด้านขวาที่ไมส่ามารถจบัคูไ่ด้จะแสดง

เป็นคา่วา่ง

SELECT ชือ่คอลมัน1์ , ชือ่คอลมัน2์ , ....... FROM ชือ่ตาราง1 LEFT OUTER JOIN ชือ่ตาราง2ON ชือ่ตาราง1.ชือ่คอลมัน ์= ชือ่ตาราง2.ชือ่คอลมัน์

Page 39: Chapter Database

Left Outer Join

SELECT Worker.WK_ID, Worker.WK_NAME, Assign.BLDG_IDFROM Worker LEFT JOIN Assign ON Worker.WK_ID = Assign.WK_ID;

Page 40: Chapter Database

การ UNION, INTERSECT, EXCEPT

การ UNION

จงแสดง area ทัง้หมดของสาขา(branch) และบ้านเช่า (property)

(SELECT areaFROM branch WHERE area IS NOT NULL)UNION(SELECT areaFROM property_for_rentWHERE area IS NOT NULL);

Page 41: Chapter Database

การ UNION, INTERSECT, EXCEPT

การ INTERSECT

จงแสดง city ที่มีอยูท่ัง้ในสาขา(branch) และบ้านเช่า (property)

(SELECT cityFROM branch )INTERSECT(SELECT cityFROM property_for_rent);

Page 42: Chapter Database

การ UNION, INTERSECT, EXCEPT

การใช้ EXCEPT

แสดง city ที่มีอยูใ่นสาขา(branch) แตไ่มม่ีในบ้านเช่า

(SELECT cityFROM branch )EXCEPT(SELECT cityFROM property_for_rent);

Page 43: Chapter Database

การบนัทกึขอ้มลู ( INSERT )

• การป้อนข้อมลูใหมล่งในตาราง

INSERT INTO table_name [(column_list)]VALUES (data_value_list);

รูปแบบ

INSERT INTO staff(sno, fname, lname, position, salary, bno)VALUES (‘SG44’, ‘Thidarat’, ‘Srithanachai’, ‘Assistant’, 10000, ‘B3’);

ตัวอย่าง

INSERT INTO staffVALUES (‘SG44’, ‘Thidarat’, ‘Srithanachai’,NULL, NULL ‘Assistant’,

NULL, NULL, 10000, ‘B3’);

Page 44: Chapter Database

การบนัทกึขอ้มลู ( INSERT )

• การคดัลอกตาราง

INSERT INTO table_name [(column_list)]SELECT

รูปแบบ

INSERT INTO staff_managerSELECT *FROM staffWHERE position=‘Manager’;

ตัวอย่าง

Page 45: Chapter Database

การปรับปรงุขอ้มลู (UPDATE)

UPDATE table_nameSET column_name1 = data_value1 [,column_name2 = data_value2…][WHERE search_condition];

รูปแบบ

UPDATE staffSET salary = salary * 1.05;

ตัวอย่าง เช่น ต้องการขึน้เงนิเดอืนเพิ่มขึน้ 5 % ให้กับพนักงานทุกคน

UPDATE staffSET salary = salary * 1.07WHERE position=‘Manager’;

ต้องการขึน้เงนิเดอืน 7 % ให้กับผู้จัดการ

Page 46: Chapter Database

การลบขอ้มลู (DELETE)

DELETE from table_name[WHERE search_condition];

รูปแบบ

Delete from viewingWHERE pno = ‘PG04’;

ตัวอย่าง

Delete from viewing

Page 47: Chapter Database

ภาษาควบคมุขอ้มลู (Data Control Language : DCL)

• คําสัง่ GRANT ใช้สําหรับกําหนดสิทธิในการเข้าถงึข้อมลูวา่จะใช้ยสูเซอร์คนใดมีสทิธิ์ในการจดัการข้อมลูในตารางหรือวิว

ใดบ้าง

• คําสัง่ REVOKEใช้สําหรับยกเลกิสิทธิบางสิทธิ

Page 48: Chapter Database

คําสัง่ GRANT

GRANT { privilege_list | ALL PRIVILEGES }ON object_nameTO { authorization_id_list | PUBLIC }

[ WITH GRANT OPTION ]

รูปแบบ

Privilege_list คือสทิธิที่อาจกําหนดได้มากกวา่หนึง่ ซึง่ประกอบด้วย

SELECT

DELETE

INSERT [ (column_name [ , …] ) ]

UPDATE [ (column_name [ , …] ) ]

REFERENCES [ (column_name [ , …] ) ]

USAGE

Page 49: Chapter Database

คําสัง่ GRANT

GRANT ALL PRIVILEGESON staffTO manager WITH GRANT OPTION;

กําหนดให้ยสูเซอร์ผู้จดัการ (manager) มีสทิธิเต็มรูปแบบ (full privileges) ใน

ตาราง Staff นัน่หมายถงึ ยสูเซอร์ manager สามารถทําการ SELECT, INSERT, UPDATE,

DELETE ในตาราง Staff

GRANT SELECT, UPDATE(salary)ON staffTO admin;

กําหนดให้ยสูเซอร์ admin มีสทิธิในการ UPDATE คอลมัน์ salary ในตาราง Staff

Page 50: Chapter Database

คําสัง่ GRANT

GRANT SELECTON staffTO personnel, deputy;

กําหนดให้ยสูเซอร์ personnel และ deputy มีสทิธิในการเรียกดขู้อมลูจากตาราง

Staff

GRANT SELECTON branch;TO PUBLIC;

กําหนดให้ยสูเซอร์ทกุ ๆ คน มีสทิธิในการเรียกดขู้อมลูจากตาราง Branch

Page 51: Chapter Database

คําสัง่ REVOKE

REVOKE [GRANT OPTION FOR] {privilege_list | ALL PRIVILEGER}ON object_nameFROM {authorizationL_id_list | PUBLIC} [RESTRICT | CASCADE];

รูปแบบ

REVOKE SELECTON branchFROM PUBLIC;

ตัวอย่าง

ยกเลกิสทิธิของยสูเซอร์ทกุ ๆ คนในการเรียกดขู้อมลูจากตาราง Branch

Page 52: Chapter Database

คําสัง่ REVOKE

REVOKE ALL PRIVILEGESON staffFROM deputy;

ยกเลกิสทิธิทัง้หมดของยเูซอร์ deputy ในการจดัการกบัตาราง Staff

Page 53: Chapter Database

คําสัง่ REVOKE