a6f61e11bd36d528a037970037f98847.ppt
- Количество слайдов: 123
LOGO Chapter 10 : ภาษามาตรฐานสำหรบนยาม ขอ มล และการใชขอมล SQL - Structure ระบบฐานขอมล Query 4121203 A Language 1
วตถประสงค vสามารถอธบายแนวคดและการใช SQL ได vนำ SQL ไปใชเพอใหเกดประโยชนไ ด
ภาษา SQL vสามารถสรางและปฏบตการกบฐานข อมลเชงสมพนธโดยเฉพาะ v. Structured Query Language vสำหรบใชกบ Relational Database vอยในรปแบบของภาษาองกฤษ
ภาษา SQL • Structured Query Language
ภาษา SQL
ภาษา SQL
ภาษา SQL vสำหรบใชกบ Database Relational select name from student
ประเภทของคำสงของ ภาษา SQL 1. ภาษาสำหรบการนยามขอม ล (Data Definition Language : DDL (. 2 ภาษาสำหรบการจดการขอม ล (Data Manipulation
1. Data Definition Language : DDL v เปนกลมคำสงทใช กระทำกบโครงสรางของฐานข อมล v ตวอยางคำสง เชน § CREATE ใชสรางตาราง § ALTER
ชนดของขอมลทใช ในภาษา SQL § จำนวนเลข (Number( • เลขจำนวนจรง (Number) เกบเลขทเปนจำนวนเตมหร อเปนทศนยม รปแบบทใชคอ NUMBER • เลขจำนวนเตม (Integer) รองรบเลขได 11 หลก รปแบบทใชคอ INTEGER หรอ INT
ชนดของขอมลทใช ในภาษา SQL § ตวหนงสอ • ความยาวคงท (Fixed-length Character) เกบขอมลไดสงสด 255 ตวอกษร รปแบบทใชคอ CHAR • ความยาวไมคงท เกบขอมลไดสงสด 255 ตวอกษร (Variable-length
ชนดของขอมลใน Microsoft Access v ในโปรแกรม Microsoft Access สามารถใชชนดขอมลตามมาตร ฐานของSQL ได v หรอสามารถใชชนดขอมลข อง Microsoft Access ทระบขนเองกได อาทเชน
ชนดของขอมลใน Oracle vสงทกำหนดในโครงสรางเทเบล ไดแก คอลมน ซงจะตองระบประเภทขอมลทจดเกบต วอกษรประเภทข จำนวนเลข วนท กลมป ความหมายของประเภท อมล ออบเจคตหรอไบนาร (Binary) ตวอก CHAR(n) จดเกบตวอกษรหรอตวเลขท โดยแบงประเภทของขอมลไดดงตอไปน ษร (Charac ter( ไมไดนำไปคำนวน โดยมการกำหนดความยาวแบบคง ท และจดเกบตามความยาวทกำ หนดไว และจดเกบไดสงสด
ชนดของขอมลใน กลม ประเภทข ประเภท อมล ตวเลข Oracle ความหมายของประเภท จดเกบตวเลขทสามารถนำไปค ำนวณได โดยกำหนดไดทงจำนวนเตมแล ะทศนยม โดยท P คอความยาวทงหมด (รวมความยาว NUMBER s ดวย ) s คอความยาวของทศนยม เชน (p, s( ขอม ประเภทขอม คาทเกบ ลจรง ล 123. 8 NUMBER 123. 89
ชนดของขอมลใน กลม ประเภทข ประเภท อมล DATE วนท (Date( BLOP Oracle ความหมายของประเภท จดเกบวนทและเวลาไดแก ศตวรรษ ป เดอน วน ชวโมง นาท และวนาท ซงสามารถแสดงผลไดทงตวอ กษรและตวเลข โดยใชรวมกบ ฟงชน TO_CHAR จดเกบแบบไบนาร ไดแก รปภาพ และเสยง โดยสามารถจดเกบไดสงสด 4 กกะไบต
คำสง SQL : DDL v CREATE TABLE : สรางตาราง § รปแบบการใชคำสง CREATE TABLE ชอตาราง ( ชอคอลมน 1 ประเภทขอมล ชอคอลมน 2 ประเภทขอมล PRIMARY KEY (ชอคอลมน FOREIGN KEY (ชอคอลมน REFERENCES ชอตาราง , ; ( Constraint, , ( )
คำสง SQL : DDL ชอตาราง • CREATE TABLE – ตวอยาง ชนดข CREATE TABLE EMPLOYEE ( อมล Constraint ID CHAR(5) NOT NULL , NAME VARCHAR(35) NOT NULL , ADDRESS VARCHAR(15) NOT NULL , PHONE CHAR(8) NOT NULL , E-MAIL CHAR(1) NOT NULL , PRIMARY KEY (ID) ); ให ID เปน PK
คำสง SQL : DDL CREATE TABLE PRODUCT ( P_CODE VARCHAR(10) NOT NULL , P_DESCRIPT VARCHAR(35) NOT NULL , P_INDATE NOT NULL , P_ONHAND SMALLINT NOT NULL , P_MIN SMALLINT NOT NULL , P_PRICE NUMBER NOT NULL , P_DISCOUNT NUMBER NOT NULL , ID CHAR(5) , ให ID เปน FK PRIMARY KEY (P_CODE) , FOREIGN KEY (ID) REFERENCES EMPLOYEE(ID) );
คำสง SQL : DDL v ALTER TABLE : เปลยนแปลงตาราง § รปแบบการใชคำสง ALTER TABLE ชอตาราง (คำสงการเปลยนแปลง ชอคอลมน ชนดขอมล ); เชน - คำสงการเปลยนแปลง - ADD เพมคอลมน - ALTER เปลยนแปลงชนดขอมล - DROP ลบคอลมน
คำสง SQL : DDL v ALTER TABLE : เปลยนแปลงตาราง § ตวอยาง • ALTER TABLE PRODUCT ADD SALECODE VARCHAR(10); • ALTER TABLE PRODUCT ALTER Column SALECODE VARCHAR(50); • ALTER TABLE PRODUCT DROP SALECODE;
คำสง SQL : DDL v DROP TABLE : ลบตาราง § รปแบบการใชคำสง DROP TABLE ชอตาราง ; § ตวอยาง DROP TABLE PRODUCT; DROP TABLE EMPLOYEE; DROP TABLE PROJECT;
2. Data Manipulation Language : DML v เปนกลมคำสงทกระทำก บขอมลในฐานขอมล v ตวอยางคำสง เชน § SELECT ใชเรยกขอมลในตารางมาแสดงผ ล § INSERT ใชเพมขอมลเขาไปในตาราง
คำสง SQL : DML v SELECT <การเรยกดขอมล < § การเรยกดขอมลในคอลมนทต องการ • รปแบบ SELECT ชอคอลมนทตองการดขอมลท ชอคอลมนท 2, …, ชอคอลมนท FROM ชอตาราง ; 1, n
คำสง SQL : DML Emp_ID First_na Last_na Address Employees me me สมชาย ชาตร เชยงให 001 ม v ตวอยาง002แสดงชอและนามสกลของพนกงาน สมหญง งามแท อตรด ตถ SELECT First_name, Last_name FROM Employees; First_na Last_na me me สมชาย ชาตร
คำสง SQL : DML v SELECT <การเรยกดขอมล § การเรยกดขอมลในทก • รปแบบ < ๆ คอลมน SELECT * FROM ชอตาราง ;
คำสง SQL : DML Emp_ID First_na Last_na Address Employees me me สมชาย ชาตร เชยงให 001 ม v ตวอยาง002แสดงขอมลทงหมดของพนกงาน สมหญง งามแท อตรด ตถ SELECT * FROM Employees; Emp_ID First_na Last_na Address me me สมชาย ชาตร เชยงให 001 ม
คำสง SQL : DML v SELECT <การเรยกดขอมลเฉพาะบางแถวทตรงต ามเงอนไข < § การเรยกดขอมลในคอลมนทต องการ • รปแบบ SELECT ชอคอลมนทตองการดขอมลท ชอคอลมนท 2, …, ชอคอลมนท FROM ชอตาราง 1, n
คำสง SQL : DML Emp_ID First_na Last_na Address Employees me me สมชาย ชาตร เชยงให 001 ม v ตวอยาง แสดงชอ นามสกล อตรด 002 และทอยของพนกงาน สมหญง งามแท โดยจะแสดงขอมลเฉพาะพนกงาน ตถ Address ทอยจงหวดอตรดตถ คอลมนทเปนเ = คอ งอนไข SELECT First_name, Last_name, Address operator อตรดตถ FROM Employees WHERE Address = ‘อตรดตถ ; ’ คอ value First_n Last_na Addres ame me s
Operator (ตวปฏบตการ ) ทใชใน Where v. Operator ทสามารถใชกำหนดเงอนไขใน where มดงน vตวเปรยบเทยบ (Comparison operators( เชอมตอเงอนไขในกรณท , => , < , > , = § ไดแกเครองหมาย , =< มมากกวา 1 เงอนไข <> v ตวปฏบตการทางดานลอจก
Operators ในการเปรยบเทยบ v ตว Operators ในการเปรยบเทยบ –= เทากบ –> นอยกวา –=> นอยกวาหรอเทากบ –< มากกวา –=< มากกวาหรอเทากบ
Operators ทางลอจก v ตว Logical operators – AND – OR – NOT ไมเทากบ และ หรอ ตรงกนขาม ,
Operator (ตวปฏบตการ ) vตวปฏบตการพเศษ (Special ทใชใน Where operators( § BETWEEN…AND…. ตรวจสอบชวงของคาใน Attribute § IS NULL ตรวจสอบวา มคาวาง หรอไม § IS NOT NULL ตรวจสอบวา ไมมคาวาง หรอไม § LIKE ตรวจสอบคา String ใน Attribute วามสวน คลายกบทกำหนดไวหลง LIKE
ตวอยางการใช AND Emp_ID First_n Last_na Addres Salary Employees ame me s สมชาย ชาตร เชยงให 15000 001 ม v ตวอยาง แสดงชอ นามสกล ทอย สมหญง งามแท อตรด 002 6000 และเงนเดอน โดยจะแสดงขอมลเฉพาะพนกงานทอยจงหวดอต ตถ รดตถ และมเงนเดอนมากกวา 5000 บาท จากโจทย สงทตองแสดงคอ เงนเดอน จากตาราง พนกงาน ชอ นามสกล
ตวอยางการใช AND v จากโจทยจะเหนวา มสองเงอนไข และตองเปนจรงทงสองเงอนไข ดงนนจงตองใช AND เชอมระหวาง เงอนไข น vเขยน SQL ไดดงน 2 SELECT First_name, Last_name, Address, Salary FROM Employees WHERE Address = ‘อตรดตถ AND First_n Last_na Addres ’Salary > 5000; ame me s สมหญง งามแท อตรด 6000 จะเหนวาผลลพธทไดพนกงานคนนนตองอ ตถ
ตวอยางการใช OR Emp_ID First_n Last_na Addres Salary Employees ame me s สมชาย ชาตร เชยงให 15000 001 ม v ตวอยาง แสดงชอ นามสกล ทอย สมหญง งามแท อตรด 002 6000 และเงนเดอน โดยจะแสดงขอมลเฉพาะพนกงานทอยจงหวดอต ตถ รดตถ หรอ มเงนเดอนมากกวา 5000 บาท จากโจทย สงทตองแสดงคอ เงนเดอน จากตาราง พนกงาน ชอ นามสกล
ตวอยางการใช v จากโจทยจะเหนวา มสองเงอนไข แตโจทยใชคำวา หรอ แสดงวา มเงอนไขใดเงอนใดหนงเปนจรง หรอเปนจรงทงสองเงอนไขกได ดงนนจงตองใช OR เชอมระหวาง เงอนไข น vเขยน SQL ไดดงน OR 2 SELECT First_name, Last_name, Address, Salary Emp_ID First_n Last_na Addres Salary FROM Employees me ame s WHERE Address = ‘อตรดตถ ’ OR Salary > สมชาย ชาตร เชยงให 15000 001 5000; จะเหนวาผลลพธทได สมหญง งามแท 002 สมชายไมไดอยจงหวดอตรดตถ ม อตรด 6000
การใช Between…AND. … v Between…AND… <กำหนดเงอนไขใหกบ where โดยเลอกชวงขอมลทสนใจ < § การกำหนดเงอนไข โดยทสามารถกำหนดชวงขอมลได • รปแบบ SELECT ชอคอลมนทตองการดขอมลท 1, ชอคอลมนท 2, …, ชอคอลมนท n FROM ชอตาราง WHERE ชอคอลมน Between Value 1 AND value 2;
การใช Between…AND. … Emp_ID First_na Last_nam Addr Salar me e ess y Employees สมชาย ชาตร เชยง 1500 001 ใหม 0 สมหญง งามแท อตร 6000 002 v ตวอยาง แสดงชอ และเงนเดอนของพนกงาน ดตถ โดยจะแสดงขอมลเฉพาะพนกงานทมเงนเดอน 6000 ถง 15000 สมใจ สขสม แพร 5000 003 SELECT First_name, Salary First_na Salar FROM Employees me y WHERE Salary between 6000 AND 15000; 1500 สมชาย 0
การใช Not. Between…AND. … รวมกบ Between…. AND… การใช เปนการระบเงอนไขวาFirst_na Last_nam Addr Salar Emp_ID ขอมลตองไมอยในชวงทกำหนด e me ess y Employees สมชาย ชาตร เชยง 1500 001 ใหม 0 สมหญง งามแท อตร 6000 002 v ตวอยาง แสดงชอ และเงนเดอนของพนกงาน ดตถ โดยจะแสดงขอมลเฉพาะพนกงานทมเงนเดอน ไมอ ยในชวง 6000 ถง 15000 สมใจ สขสม แพร 5000 003 SELECT First_name, Salary First_na Salar FROM Employees me y WHERE Salary Not between 6000 AND 15000;
การใช Like v Like <ใชในการเปรยบเทยบคำในรปแบบ String เพอหาคำท ตองการ โดยขอความหรอคำทตองการคนหา จะทราบคาหรอระบเพยงบางสวน เทานน < § รปแบบ SELECT ชอคอลมนทตองการดขอมลท ชอคอลมนท 2, …, ชอคอลมนท FROM ชอตาราง 1, n
การใช Like SELECT ชอคอลมนทตองการดขอมลท 1, ชอคอลมนท 2, …, ชอคอลมนท n FROM ชอตาราง WHERE ชอคอลมน Like pattern ; คอสงทตองตองการคนหา โดย Pattern มรปแบบดงน %หมายถง ตวอกษรใด ๆ จำนวนไมจำกดตวอกษร _ หมายถง ตวอกษรใด ๆ จำนวน 1 ตวอกษร
ตวอยาง รปแบบ การใช Like ตวอย าง '%value' '%s' 'value%' 'N%' '%value%' '%a%' '%value%' '%a%e%' คำอธบาย ผลลพธ ตวอกษรดานหนาเปนอะไร กได ตวสดตองเปน s ขอความนนตองขนตนด วย N ขอความตองม a ประกอบอย ในขอความตองม a และ e ประกอบอยในขอความ แตลำดบของ a Sandnes , Louis Nerissa Baer, Louisa Nayer, Baer
การใช Not Like SELECT ชอคอลมนทตองการดขอมลท 1, ชอคอลมนท 2, …, ชอคอลมนท n FROM ชอตาราง WHERE ชอคอลมน Not Like pattern ; การใช Not Like คอการกำหนดเงอนวา ขอความทเราตองการคนหาตองไมใชทเราระบ ลงไปในPattern เชน SELECT last_name
การใช IN IN <เปนคำสงทใชสำหรบการระบเงอนไขก ารเลอกขอมลในตาราง (Table) โดยเลอกเฉพาะคาทกำหนด > รปแบบ SELECT ชอคอลมนทตองการดขอมลท ชอคอลมนท 2, …, ชอคอลมนท FROM ชอตาราง 1, n
การใช IN Emp_ID First_na me Employees สมชาย 001 Last_nam Addr Salar e ess y ชาตร เชยง 1500 ใหม 0 สมหญง งามแท อตร 6000 002 ดตถ v ตวอยาง แสดงรหส และชอของพนกงาน โดยจะแสดงขอมลเฉพาะพนกงานทมรหส 001 สมใจ สขสม Emp_ First_na แพร 5000 , 002, 004 003 me สมหวง ทกเรอง ID พะเยา 7800 004 SELECT Emp_ID, First_name 001 สมชาย FROM Employees 002 WHERE Emp_ID IN ('001', '002', 'C 004') สมหญง
การใช Not IN Emp_ID First_na me Employees สมชาย 001 Last_nam Addr Salar e ess y ชาตร เชยง 1500 ใหม 0 สมหญง งามแท อตร 6000 002 ดตถ v ตวอยาง แสดงรหส และชอของพนกงาน โดยจะแสดงขอมลเฉพาะพนกงานท ไมม รหส 001 สมใจ สขสม Emp_ First_na แพร 5000 , 002, 004 003 me สมหวง ทกเรอง ID พะเยา 7800 004 SELECT Emp_ID, First_name 003 สมใจ FROM Employees WHERE Emp_ID Not IN ('001', '002', 'C 004')
การใช IS NULL <เปนการระบเงอนไขวาคอลมนทตองการต องมคาเปน NULL> รปแบบ SELECT ชอคอลมนทตองการดขอมลท ชอคอลมนท 2, …, ชอคอลมนท FROM ชอตาราง WHERE ชอคอลมน IS NULL 1, n
การใช IS NULL Emp_ID First_na me Employees สมชาย 001 Last_nam Addr Salar e ess y ชาตร เชยง 1500 ใหม 0 สมหญง งามแท อตร 6000 002 ดตถ v ตวอยาง แสดงชอและทอยของพนกงาน โดยจะแสดงขอมลเฉพาะพนกงานท ไมไดระบทอ สมใจ สขสม 003 5000 First_n Address ย ame สมหวง ทกเรอง 004 7800 SELECT First_name, Address สมใจ FROM Employees สมหวง WHERE Address IS NULL
การใช IS NOT NULL IS NULL <เปนการระบเงอนไขวาคอลมนทตองการต อง ไมมคาเปน NULL> รปแบบ SELECT ชอคอลมนทตองการดขอมลท 1, ชอคอลมนท 2, …, ชอคอลมนท n FROM ชอตาราง WHERE ชอคอลมน IS NOT NULL
การใช IS NOT NULL Emp_ID First_na me Employees สมชาย 001 Last_nam Addr Salar e ess y ชาตร เชยง 1500 ใหม 0 สมหญง งามแท อตร 6000 002 ดตถ v ตวอยาง แสดงชอและทอยของพนกงาน โดยจะแสดงขอมลเฉพาะพนกงานท ระบทอย สมใจ สขสม 003 5000 First_n Address ame สมหวง ทกเรอง 004 7800 SELECT First_name, Address สมชาย เชยงใหม FROM Employees WHERE Address IS NOT NULL สมหญ อตรดตถ ง
การใช DISTINCT v. DISTINCT : ใชสำหรบการแสดงผลคาทซำ กนเพยง 1 คา § รปแบบการใชคำสง ใหใส รปแบบ DISTINCT ไวหนา ATTRIBUTE ทตองการใหแสดงผลคาซำเพยง 1 คา SELECT DISTINCT ชอคอลมน FROM ชอตาราง
การใช DISTINCT vตวอยาง § SELECT DISTINCT V_CODE FROM PRODUCT; ผลล พธ
การใช DISTINCT vหากไมใช DISTINCT ผลลพธจะไดคาทซำก น § SELECT V_CODE FROM PRODUCT; ผลล พธ
ตวอยาง : SELECT DISTINCT ตวอยาง SELECT DISTINCT Amphur FROM Personal First. Na Last. N Amp me ame hur มานะ พากเพ เมอง ยร อดทน ตงใ เมอง ผลลพธ Amph ur เมอง ปง
การใช EXISTS v. EXISTS เปนคำสงทใชสำหรบการระบเงอ นไขโดยทำการตรวจสอบขอมลจาก อกตารางหนงวามขอมล หรอวาไมมขอมลทตองการเปรยบเท รปแบบ ยบ SELECT ชอคอลมนทตองการดขอมลท 1, ชอคอลมนท 2, …, ชอคอลมนท n FROM ชอตาราง 1 WHERE EXISTS (SELECT ชอ คอลมน FROM ชอตารางท 2)
การใช EXISTS Custom er. ID Name win. weerachai@th aicreate. com john. smith@thaicr C 002 John Smith eate. com jame. born@thaicre C 003 Jame Born ate. com chalee. angel@thaic C 004 Chalee Angel reate. com Custom Name Email er. ID Win win. weerachai@th C 001 Weerachai aicreate. com john. smith@thaicr C 002 John Smith eate. com chalee. angel@thaic C 004 Chalee Angel reate. com C 001 Win Weerachai Email Country. Co Budget de 100000 TH 0 200000 EN 0 300000 US 0 400000 US 0 Country. Co Budget de 100000 TH 0 200000 EN 0 400000 US 0 Used 600000 800000 Table : custo 600000 100000 Used 600000 800000 100000 Table : custo
การใช EXISTS Sample 1 การเลอกขอมลจากตาราง customer 1 โดยขอมลจะเปรยบเทยบในตาราง customer 2 วามขอมลเหมอนกนหรอไม SELECT * FROM customer 1 WHERE EXISTS (SELECT * FROM customer 2) Custom er. ID Country. Co Budget de Win win. weerachai@th 100000 C 001 TH Weerachai aicreate. com 0 john. smith@thaicr 200000 C 002 John Smith EN eate. com 0 chalee. angel@thaic 400000 C 004 Chalee Angel US reate. com 0 Name Email Used 600000 800000 100000
การใช ORDER BY v. ORDER BY : ใชสำหรบการจดเรยงลำดบใ นการแสดงผล § รปแบบการใชคำสง SELECT columnlist FROM tablelist [WHERE conditionlist] [ORDER BY Columnlist [ ASC | DESC ]]; § โดย
ตวอยาง : ORDER BY SELECT * FROM Address ORDER BY Zip. Code DESC Address Amph Zip. Co ur de เมองพ 56000 ะเยา จน 56002 ผลลพธ Amph ur จน ปง เมองพ Zip. Co de 56002 56001 56000
แสดงรหส , ชอ , ทอย และเงนคาชำระของลกคาโดยเร ยงตามเงนคาชำระจากมากไปนอย Select Id, Name, Addr, Curr_Bal From customer order by Curr_Bal desc; Id Name ------197 วรชาต สคลำ 500000 110 ศร สขพานช 200000 Addr -----อยธยา กรงเทพฯ Curr_Bal ----
การใช ORDER BY vตวอยาง § ตองการดรหสสนคา ชอสนคา วนทสนคาเขามา และราคาสนคา โดยใหเรยงลำดบตามราคาสนคาจา กนอยไปมาก § SELECT P_CODE, P_DESCRIPT, P_INDATE, P_PRICE FROM PRODUCT ORDER BY P_PRICE;
การใช ORDER BY vตวอยาง § ตองการดรหสสนคา ชอสนคา วนทสนคาเขามา และราคาสนคา โดยใหเรยงลำดบตามราคาสนคาจา กมากไปนอย § SELECT P_CODE, P_DESCRIPT, P_INDATE, P_PRICE FROM PRODUCT
การใช ORDER BY vตวอยาง § ตองการดชอสนคา รหสผคาสง วนทสนคาเขามา และราคาสนคา โดยใหเรยงลำดบตามรหสผคาสง มากนอยไปหามาก ถาหากผคาสงเปนรายเดยวกนให แสดงผลเรยงลำดบตามราคาสนคา (P_PRICE) จากมากไปหานอย § SELECT P_DESCRIPT, V_CODE, P_INDATE, P_PRICE
การใช ORDER BY vตวอยาง § ตองการดชอสนคา รหสผคาสง และราคาสนคา โดยใหเรยงลำดบตามรหสผคาสง มากนอยไปหามาก ถาหากผคาสงเปนรายเดยวกนให แสดงผลเรยงลำดบตามราคาสนคา (P_PRICE) จากมากไปหานอย § SELECT P_DESCRIPT, V_CODE, P_PRICE FROM PRODUCT WHERE P_PRICE <=500
การใช ALIAS v. ALIAS เปนคำสงทใชสำหรบการระบเงอนไขกา รเลอกขอมลในตาราง (Table) โดย ALIAS คอการสรางชอจำลองขนมาใหมใหคอลมน ในขณะทแสดงผล รปแบบ SELECT ชอ คอลมนท 1 AS ชอคอลมนใหม , ชอคอลมนท FROM ชอตาราง หมายเหต จะเปลยนชอคอลมนในการแสดงผลเทานน 2…,
การใช ALIAS Emp_ID First_na me Employees สมชาย 001 Last_nam Addr Salar e ess y ชาตร เชยง 1500 ใหม 0 สมหญง งามแท อตร 6000 002 v ตวอยาง แสดงรหสและชอของพนกงานดตถ โดยมการเปลยนชอคอลมนรหส เปน “ID” ID First_na สมใจ สขสม 003 SELECT Emp_ID AS ID, First_name แพร 5000 me FROM Employees 001 สมชาย WHERE Salary between 6000 AND 15000; 002 สมหญง 003 สมใจ
Operators ในการคำนวณ v ตว Operators ในการคำนวณ –+ ––* –/ –^ บวก ลบ คณ หาร ยกกำลง
การคำนวณในคำสง SQL และการใชชอแทน vการคำนวณ (Alias( § SELECT P_DESCRIPT, P_ONHAND, P_PRICE, P_ONHAND*P_PRICE FROM PRODUCT; สงเกตเมอมกา รคำนวณโดยใช P_ONHAND*P_PRICE ผลลพธทไดจะแส ดงในคอลมน Expr 1003 ซงคอลมน
การคำนวณในคำสง SQL และการใชชอแทน (Alias( vการคำนวณและใชชอแทน (Alias( § ตองการหาวาสนคาทเหลออยในแต ละตวมมลคารวมแลวเทากบเทาไร § SELECT P_DESCRIPT, P_ONHAND, P_PRICE, P_ONHAND*P_PRICE AS TOTAL_VALUE FROM PRODUCT;
การคำนวณในคำสง SQL และการใชชอแทน (Alias( vการคำนวณและใชชอแทน (Alias( § ตองการแสดงวนทสนคาแตละตวจะ มวนสนสดการรบประกนเมอใด ในทนคดท 90 วน โดยการคดจะคดเรมจากวนทสนค านนเขามาในคลงสนคา § SELECT P_CODE, P_INDATE + 90 AS EXPIRE_DATE
ฟงกชน (Function) ชนดของฟงกชนใน SQL
ฟงกชนเดยว (Single Row function(
ฟงกชนเดยว (Single Row function( ฟงกชนในการจดการ ตวอกษร
ฟงกชนเดยว (Single Row function( ฟงกชนในการปรบเป ลยนตวอกษร
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ฟงกชนในการปรบเป ลยนตวอกษร
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ฟงกชนเกยวกบตวเลข การปดเศษทศนยม Function( ตามจำนวนตำแหนงทระบ โดยมการคำนงทศนยม (Number การปดเศษท ศนยมทง ตามจำนวนต ำแหนงท คอการหารท ระบ สนใจแตเ ศษ คำตอบทไ ดจะนำเศษ ทเหลอมา
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ฟงกชนเกยวกบ DATE SYSDATE เปนคำสงทใชในอานวนทปนจบนของ Oracle Database SELECT sysdate as "Date" FROM dual;
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ฟงกชนเกยวกบ DATE
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนเดยว (Single Row function( ตวอยางการนำไปใช
ฟงกชนสรป (Aggregate function(
ฟงกชนสรป (Aggregate function( vคำสงทใช § COUNT § MIN § MAX § SUM § AVG ใชสำหรบนบคา หาคาตำสด หาคาสงสด หาผลรวม หาคาเฉลย
Aggregate function v. COUNT : ใชสำหรบการนบคา vตวอยาง § ตองการนบจำนวนผคาสงทงหมด § SELECT COUNT(*) FROM VENDOR;
Aggregate function vตวอยาง § ตองการนบจำนวนผคาสงทงหมด ททำการสงสนคาใหเรา § SELECT COUNT(*) FROM ) SELECT DISTINCT V_CODE FROM PRODUCT WHERE V_CODE IS NOT NULL; (
Aggregate function vตวอยาง § ตองการนบจำนวนผคาสงทสงส นคาใหกบเรา และราคาสนคาทสงนอยกวา 100 § SELECT COUNT(*) FROM ) SELECT DISTINCT V_CODE FROM PRODUCT WHERE V_CODE IS NOT NULL
Aggregate function v. MAX : หาคาสงสด vตวอยาง § ตองการหาราคาสนคาทแพงทสดใ นราน § SELECT MAX(P_PRICE( FROM PRODUCT;
Aggregate function vตวอยาง § ตองการดรายละเอยดของสนคาทแพ งทสดในราน § SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT WHERE P_PRICE = (SELECT MAX(P_PRICE ( FROM PRODUCT; (
Aggregate function v. MIN : หาคาตำสด vตวอยาง § ตองการหาราคาสนคาทถกทสดใ นราน § SELECT MIN(P_PRICE( FROM PRODUCT;
Aggregate function vตวอยาง § ตองการดรายละเอยดของสนคาทถ กทสดในราน § SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT WHERE P_PRICE = (SELECT MIN(P_PRICE ( FROM PRODUCT; (
Aggregate function v. SUM : หาผลรวม vตวอยาง § ตองการหามลคาสนคาทมอยใน รานทงหมด § SELECT SUM(P_ONHAND * P_PRICE) AS TOTAL_VALUE FROM PRODUCT;
ตวอยาง : SUM SELECT Name, SUM(Amount) FROM Income Name Amoun t ANT 5500 BAT 4500 ANT 7100 ผลลพธ Name ANT BAT ANT SUM(Amo unt) 17100
Aggregate function v. AVG : หาคาเฉลย vตวอยาง § ตองการหามลคาสนคาเฉลยทอย ในราน § SELECT AVG(P_PRICE( FROM PRODUCT;
Aggregate function vตวอยาง § ตองการดสนคาทมราคาสงกวารา คาสนคาเฉลย § SELECT P_DESCRIPT, P_ONHAND, P_PRICE FROM PRODUCT WHERE P_PRICE > (SELECT AVG(P_PRICE (
GROUP BY และ HAVING v. GROUP BY เปนคำสงทใชสำหรบการแสดงผ ลในลกษณะจดกลม อาจใชรวมกบ HAVING ในการกำหนดเงอนไขของการแสดงผล vรปแบบการใชคำสง SELECT columnlist FROM tablelist [WHERE conditionlist] [GROUP BY columnlist]
ตวอยาง : ใช GROUP BY SELECT Name, SUM(Amount) FROM Income GROUP BY Name Income Name Amoun t ANT 5500 BAT 4500 ANT 7100 ผลลพธ Name ANT BAT SUM(Amo unt) 12600 4500
ตวอยาง : ใช GROUP BY และ HAVING ตวอยาง Income SELECT Name, SUM(Amount) FROM Income GROUP BY Name HAVING NAME = “ANT” ผลลพธ Name Amoun t ANT 5500 BAT 4500 ANT 7100 Name ANT SUM(Amo unt) 12600
GROUP BY และ HAVING vตวอยาง § ตองการดมลคารวมของสนคาทแต ละผคาสง สงสนคาใหกบเรา § SELECT V_CODE, SUM(P_PRICE * P_ONHAND( FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE;
GROUP BY และ HAVING vตวอยาง § ตองการดมลคาเฉลยของสนคาท แตละผคาสง สงสนคาใหกบเรา § SELECT V_CODE, AVG(P_PRICE( FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE;
GROUP BY และ HAVING vตวอยาง § ตองการดมลคาเฉลยของสนคาท แตละผคาสง สงสนคาใหกบเรา โดยดเฉพาะราคาเฉลยทตำกวา 100 § SELECT V_CODE, AVG(P_PRICE) FROM PRODUCT WHERE V_CODE <> NULL
GROUP BY และ HAVING vตวอยาง § ตองการดมลคาเฉลยของสนคาท แตละผคาสง สงสนคาใหกบเรา และใหนบจำนวนสนคาทผคาส งสงใหดวย โดยดเฉพาะราคาเฉลยทตำกวา 100 § SELECT V_CODE, COUNT(P_CODE), AVG(P_PRICE)
GROUP BY และ HAVING vตวอยาง § ใช Alias (ชอแทน ) เพอการแสดงผลทดยงขน § SELECT V_CODE, COUNT(P_CODE) AS AMOUNT_OF_PRODUCT, AVG(P_PRICE) AS PRICE_AVERAGE FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE
GROUP BY และ HAVING vตวอยาง § ตองการดมลคารวมของสนคาทแตล ะผคาสง สงสนคาใหกบเรา และใหแสดงผลเรยงตามราคาจากมากไปหาน อย § SELECT V_CODE , SUM(P_ONHAND * P_PRICE) AS TOTAL_PRICE FROM PRODUCT WHERE V_CODE <> NULL
การแสดงผลจากหลายตารางโ ดยการ Join (เชอม ( vตวอยาง § ตองการดรายละเอยดสนคา และตองการทราบชอผคาสง พนกงานทเราตดตอ และทอยของผคาสง § SELECT PRODUCT. P_DESCRIPT, PRODUCT. P_PRICE , VENDOR. V_NAME, VENDOR. V_CONTACT,
การแสดงผลจากหลายตาราง โดยการJoin (เชอม ( vตวอยาง § ตองการดรายละเอยดสนคาและผคาสง ทสงสนคา หลงวนท 15 - JAN-2004 § SELECT PRODUCT. P_DESCRIPT, PRODUCT. P_INDATE , PRODUCT. P_PRICE, VENDOR. V_NAME, VENDOR. V_AREACODE, VENDOR. V_PHONE FROM PRODUCT, VENDOR
คำสง SQL : DML v INSERT : เพมแถว Table § รปแบบการใชคำสง INSERT INTO ชอตาราง (ขอมลทกคอลมน ) (Row) ลงใน VALUES § ตวอยาง INSERT INTO VENDOR VALUES ('V 0001', 'บรษทไบรซน '223 -3234', 'TN', 'Y'); INSERT INTO PRODUCT VALUES ('P 0000001', 'หวพนส ', 'สมย ', '615', ', '03 -NOV-2003', 8,
ตวอยาง : INSERT INTO Orders(Prod. ID, Product, Emp. ID) VALUES (999, “Ram”, “ 02”) Orders Prod. ID Produc Emp. I t D 234 Printer 01 657 Table 03 865 Chair 03
คำสง SQL : DML v. UPDATE : แกไขขอมลในตาราง § รปแบบการใชคำสง UPDATE ชอตาราง SET ชอคอลมน = ขอมลใหม WHERE เงอนไข ;
คำสง SQL : DML v. UPDATE : แกไขขอมลใน Table § ตวอยาง • UPDATE PRODUCT SET P_DATE = ’ 18 -JAN-2004’ WHERE P_CODE = ‘P 0000007’; • แกไขขอมลวนทสนคาเขาคลง (P_DATE)
คำสง SQL : DML v. UPDATE : แกไขขอมลใน Table § ตวอยาง • UPDATE Book SET Author = ’สมโชค’ WHERE Book_name = ‘ระบบฐานขอมล ; ’ • แกไขขอมลผแตง (Author)
คำสง SQL : DML v. UPDATE : แกไขขอมลใน Table § ตวอยาง • UPDATE Book SET Author = ’สมควร’, publisher=‘ดอกหญา ’ WHERE Book_id = ‘ 00015; ’ แกไขขอมลผแตง (Author)
ตวอยาง : UPDATE แบบไมระบแถว UPDATE Employees SET Name = “FOX” Employees Emp. ID Name 01 ANT 02 BAT 03 CAT 04 DOG Emp. ID Name 01 FOX 02 FOX 03 FOX 04 FOX
ตวอยาง : UPDATE แบบระบแถว (WHERE( UPDATE Employees SET Name = “FOX” WHERE Emp. ID = “ 04” Employees Emp. ID Name 01 ANT 02 BAT 03 CAT 04 DOG Emp. ID Name 01 ANT 02 BAT 03 CAT 04 FOX
คำสง SQL : DML v. DELETE : ลบแถว (Row) ออกจากตาราง § รปแบบการใชคำสง DELETE FROM ชอตาราง WHERE เงอนไข ; § ตวอยาง DELETE FROM PRODUCT WHERE P_CODE = 'P 0000016'; DELETE FROM PRODUCT WHERE P_MIN = 5;
ตวอยาง : DELETE แบบระบแถว (WHERE( DELETE FROM Employees WHERE Emp. ID = “ 04” Employees Emp. ID Name 01 ANT 02 BAT 03 CAT 04 FOX Employees Emp. ID Name 01 ANT 02 BAT 03 CAT
ตวอยาง : DELETE แบบไมระบแถว DELETE FROM Employees Emp. ID Name 01 ANT 02 BAT 03 CAT 04 FOX Employees Emp. ID Name
3. Data Control Language : DCL v เปนคำสงทใชในการ กำหนดสทธการใชงานในฐ านขอมล v ตวอยางคำสง เชน § GRANT เปนคำสงใหสทธผ ใช (User(
อางอง v. Database system : Design, Implementation & Management 6 th edition, Rob & Coronel vระบบฐานขอมล รศ. ดร. วเชยร เปรมชยสวสด vระบบฐานขอมล รศ.
a6f61e11bd36d528a037970037f98847.ppt