logging in or signing up sql suthip Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 223 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: February 11, 2012 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript ภาษามาตรฐานสำหรับการนิยามข้อมูล และการใช้ข้อมูล (Structure Query Language : SQL): 1 ภาษามาตรฐานสำหรับการนิยามข้อมูล และการใช้ข้อมูล (Structure Query Language : SQL)SQL (Structured Query Language): 2 SQL (Structured Query Language) เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์ ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS) ที่สนับสนุนการใช้คำสั่ง SQL เช่น ORACLE, DB2, MS-SQL, MS-Access นอกจากนี้ภาษา SQL ถูกนำมาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา C/C++, Visual Basic ,PHP, Java เป็นต้น ประเภทของคำสั่งในภาษา SQL: 3 ประเภทของคำสั่งในภาษา SQL ภาษานิยามข้อมูล (Data Definition Language : DDL) เป็นคำสั่งที่ใช้ในการสร้างฐานข้อมูล กำหนดโครงสร้างข้อมูลว่ามีคอลัมย์ใด ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และการสร้างดัชนี คำสั่ง : CREATE, DROP, ALTER ภาษาจัดการข้อมูล (Data Manipulation Language :DML) เป็นคำสั่งที่ใช้ในการเรียกใช้ เพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในตาราง คำสั่ง : SELECT, INSERT, UPDATE, DELETE ภาษาควบคุมข้อมูล (Data Control Language : DCL) เป็นคำสั่งที่ใช้ในการกำหนดสิทธิการอนุญาติ หรือ ยกเลิก การเข้าถึงฐานข้อมูล เพื่อป้องกันความปลอดภัยของฐานข้อมูล คำสั่ง : GRANT, REVOKEPowerPoint Presentation: 4 ภาษา SQL (Structure Query Language) ภาษานิยามข้อมูล (DDL) CREATE ALTER DROP ภาษาจัดการข้อมูล (DML) SELECT UPDATE INSERT DELETE ภาษาควบคุมข้อมูล (DCL) GRANT REVOKEภาษาสำหรับการนิยามข้อมูล DDL: 5 ภาษาสำหรับการนิยามข้อมูล DDL คำสั่ง การทำงาน CREAT TABLE นิยามโครงสร้างข้อมูลในตารางที่สร้างขึ้น DROP TABLE ลบโครงสร้างข้อมูลออกจากระบบ ALTER TABLE แก้ไขปรับปรุงโครงสร้างตาราง รายละเอียดข้อมูล (Data Dictionary) ของตารางที่ต้องการสร้างเพื่อเก็บข้อมูลในฐานข้อมูล: 6 รายละเอียดข้อมูล (Data Dictionary) ของตารางที่ต้องการสร้างเพื่อเก็บข้อมูลในฐานข้อมูล ชื่อตาราง ชื่อคอลัมน์ ประเภทข้อมูล ความหมาย อ้างถึง CUSTOMER PRODUCT IDcustomer (PK) Char (6) รหัสลูกค้า C_name Varchar (40) ชื่อลูกค้า C_address Varchar (30) ที่อยู่ C_Telephone Varchar(10) เบอร์โทรศัพท์ C_Creditlim number วงเงินการให้สินเชื่อ C_currbal number ยอดสินเชื่อคงเหลือ IDproduct (PK) Char (6) รหัสสินค้า p_name Varchar (20) ชื่อสินค้า p_unitprice number ราคาต่อหน่วย(บาท) P_onhand number จำนวนสินค้าคงเหลือ P_orderpt number จำนวนต่ำสุดที่ต้องสั่งซื้อเพิ่ม P_orderqty number จำนวนที่ต้องสั่งซื้อเพิ่มรายละเอียดข้อมูล (Data Dictionary): 7 รายละเอียดข้อมูล (Data Dictionary) ชื่อเท เบิล ชื่อคอลัมน์ ประเภทข้อมูล ความหมาย อ้างถึง EMPLOYEE ORDER IDemployee (PK) Char (6) รหัสพนักงาน e_name Varchar (40) ชื่อพนักงานขาย e_salary number(8,2) เงินเดือนปัจจุบัน e_address Varchar(30) ที่อยู่ e_telephone Char(10) เบอร์โทรศัพท์ IDorder (PK) Char (6) รหัสใบสั่งซื้อสินค้า IDproduct Char (6) รหัสสินค้า product qty number จำนวนสินค้าที่สั่งซื้อ discount number ส่วนลด( % ) IDcustomer Char (6) รหัสลูกค้า Customer IDemployee Char (6) รหัสพนักงานขาย employee การสร้างตาราง (Create Table): 8 การสร้างตาราง (Create Table) CREATE TABLE < Table_name > ( ชื่อคอลัมย์ 1 ประเภทข้อมูล [ เงื่อนไข ] ชื่อคอลัมย์ 2 ประเภทข้อมูล [ เงื่อนไข ] … … … [ PRIMARY KEY ( ชื่อคอลัมน์ ,)] [ FOREIGN KEY ( ชื่อคอลัมน์ ) REFERENCES ชื่อตารางที่อ้างอิง ( ชื่อคอลัมน์ )]); การสร้างตารางด้วย SQL สามารถทำได้ด้วยคำสั่ง CREATE TABLE ซึ่งกำหนดลักษณะของข้อมูลเป็นคอลัมน์ โดยมีรูปแบบดังนี้ รูปแบบคำสั่งPowerPoint Presentation: 9 CREATE TABLE employee ( em_id char(6) NOT NULL UNIQUE, em_name varchar (20) NOT NULL, em_salary integer em_address varchar (100), PRIMARY KEY ( em_id ) ); คำอธิบาย SQL กำหนดให้ em_id เป็นคีย์หลัก ดังนั้นจะใส่ PRIMARY KEY (em_id) เข้าไปด้วย และในคอลัมน์ em_id ต้องมีค่าเสมอ(NOT NULL) และมีค่าไม่ซ้ำกัน (UNIQUE) และในแต่ละแถวคอลัมน์ em_name จะต้องมีค่าเสมอ (NOT NULL) เนื่องจากความเป็นจริงที่ ข้อมูลพนักงาน ทุกคนต้องมีชื่อ โจทย์ >> สร้างตาราง customer ตามที่ได้ออกแบบรายละเอียดตารางไว้PowerPoint Presentation: 10 โจทย์ เพิ่มคอลัมน์ที่เป็นรหัสแผนก(dep_id) ในตาราง employee เพื่อบอกว่าพนักงานสังกัดอยู่แผนกใด SQL >> ALTER TABLE employee ADD dep_id char(6) ; การเปลี่ยนโครงสร้างของตาราง (Alter Table) เพิ่มคอลัมน์ให้กับตาราง ใช้คำสั่ง ADD ALTER TABLE < ชื่อตารางที่จะเปลี่ยนแปรง > ADD < ชื่อคอลัมน์ > < ประเภทข้อมูล > ; รูปแบบ >>PowerPoint Presentation: 11 โจทย์ >> ลบ คอลัมน์ที่เป็นรหัสแผนก (dep_id) ในตาราง employee SQL >> ALTER TABLE employee DROP dep_id ; การเปลี่ยนโครงสร้างของตาราง (Alter Table) ลบคอลัมน์ใช้คำสั่ง DROP ALTER TABLE < ชื่อตารางที่ต้องการลบ > DROP < ชื่อคอลัมน์ที่ต้องการลบ > ; รูปแบบ >>การแก้ไขคอลัมน์ในตาราง (MODIFY): 12 การแก้ไขคอลัมน์ในตาราง (MODIFY) โจทย์ >> เปลี่ยนขนาดของข้อมูลในคอลัมน์ dep_id ในตาราง employee จากขนาด 6 ตัวอักษร เป็นขนาด 5 ตัวอักษร SQL >> ALTER TABLE employee MODIFY (dep_id char(5)) ; ALTER TABLE < ชื่อตารางที่ต้องการแก้ไข > MODIFY < ชื่อคอลัมน์ > < ประเภทของข้อมูล > ; รูปแบบ >>การลบตารางออกจากฐานข้อมูล (Drop Table): 13 การลบตารางออกจากฐานข้อมูล (Drop Table) DROP TABLE Order DROP TABLE < ชื่อตารางที่ต้องการลบ >; รูปแบบ DROP TABLE ORDER; SQL ต้องการลบเทเบิล ORDER ออกจากฐานข้อมูล โจทย์PowerPoint Presentation: 14 ภาษาสำหรับจัดการข้อมูล (DML) คำสั่ง ความหมาย SELECT เรียกดูข้อมูลในที่เก็บในฐานข้อมูล UPDATE แก้ไขข้อมูลที่เก็บในฐานข้อมูล INSERT เพิ่มข้อมูลที่ต้องการเก็บในฐานข้อมูล DELETE ลบข้อมูลที่ไม่ต้องการในฐานข้อมูลPowerPoint Presentation: 15 คำสั่ง SELECT เป็นคำสั่งการเรียกค้นข้อมูลจากตารางต่าง ๆ ในฐานข้อมูล ตามเงื่อนไขที่ระบุไว้ โดยเงื่อนไขสามารถระบุได้ คำสั่งเรียกค้นข้อมูล (SELECT)PowerPoint Presentation: 16 ความหมาย เครื่องหมายที่ใช้เปรียบเทียบ ตัวอย่าง เท่ากับ = X = Y ไม่เท่ากับ < > X < > Y มากกว่า > X > Y น้อยกว่า < X < Y มากกว่าหรือเท่ากับ >= X >= Y น้อยกว่าหรือเท่ากับ <= X <= Y ตัวดำเนินการเชิงเปรียบเทียบ (Comparison Operators)PowerPoint Presentation: 17 สัญลักษณ์ ความหมาย AND ใช้เชื่อมการกระทำ (Operand) ตั้งแต่ 2 ตัว ขึ้นไป ซึ่งนิพจน์จะเป็นจริงก็ต่อเมื่อทุก Operand จะต้องเป็นจริง OR ใช้เชื่อมการกระทำ (Operand) ตั้งแต่ 2 ตัว ขึ้นไป ซึ่งนิพจน์จะเป็นจริงก็ต่อเมื่อทุก Operand ตัวใดตัวหนึ่งหรือทุกตัวเป็นจริง NOT ใช้นำหน้าการกระทำ (Operand) ถ้านำหน้า Operand ที่เป็นจริง จะทำให้นิพจน์เป็นเท็จ ถ้านำหน้า Operand ที่เป็นเท็จ จะทำให้นิพจน์เป็นจริง เครื่องหมาย Operator ที่ใช้สัญลักษณ์ทางตรรกศาสตร์PowerPoint Presentation: 18 SELECT < ชื่อคอลัมน์ที่ต้องการดูข้อมูล ,…> FROM < ชื่อตาราง ,…> WHERE < เงื่อนไขที่ต้องการระบุ > รูปแบบ >> การสอบถามข้อมูล (SELECT) SELECT เป็นคำสั่งให้ทำการเรียกค้นข้อมูลในคอลัมน์ของตาราง โดยสามารถระบุได้ 1 หรือมากว่า 1 คอลัมน์ ถ้ามากกว่าให้คั่นด้วยเครื่องหมาย , ถ้าต้องการเลือกทุกคอลัมน์ ให้ ใส่เครื่องหมาย * FROM บอกชื่อตารางที่ต้องการดูข้อมูล WHERE ใช้ในการระบุเงื่อนไขที่ต้องการค้นPowerPoint Presentation: 19 SELECT * FROM ชื่อตาราง ; 1) คำสั่งให้แสดงข้อมูลของคอลัมน์ที่ต้องการ คำสั่ง SQL อย่างง่ายจากตารางเดียว 2) คำสั่งให้แสดงข้อมูลของทุกๆ คอลัมน์ SELECT ชื่อคอลัมน์ที่ 1, ชื่อคอลัมน์ที่ 2,…. FROM ชื่อตาราง ;PowerPoint Presentation: 20 SELECT * FROM พนักงาน ; ตัวอย่าง SELECT รหัสพนักงาน , ชื่อสกุล FROM พนักงาน ; พนักงาน ( รหัสพนักงาน , ชื่อสกุล , ที่อยู่ , เบอร์โทร , เงินเดือน ) โจทย์ : ให้แสดง รหัสพนักงาน และ ชื่อสกุลของพนักงานทั้งหมด โจทย์ : ให้แสดงข้อมูลของพนักงานทั้งหมดPowerPoint Presentation: 21 SELECT DISTINCT ที่อยู่ FROM พนักงาน ; SQL >> ให้แสดงข้อมูลที่อยู่พนักงานของบริษัทว่าอยู่ที่ใดบ้าง โจทย์ >> SELECT DISTINCT ชื่อคอลัมน์ FROM ชื่อตาราง ; รูปแบบ >> คำสั่ง แสดงข้อมูลที่ไม่ซ้ำกันด้วย DISTINCT พนักงาน ( รหัสพนักงาน , ชื่อสกุล , ที่อยู่ , เบอร์โทร )PowerPoint Presentation: 22 SELECT รหัส , ชื่อ FROM พนักงาน ORDER BY รหัส ; SQL น้อยไปหามาก ต้องการทราบ รหัสและชื่อ ของลูกค้าทั้งหมด โดยแสดงผลแบบเรียงตามลำดับชื่อลูกค้าจากน้อยไปหามาก และ มากไปน้อย โจทย์ >> จัดเรียง ข้อมูล ด้วย ORDER BY ORDER BY ชื่อคอลัมน์ [DESC] ; เรียงจากมากไปน้อย รูปแบบคำสั่ง >> ORDER BY ชื่อคอลัมน์ ; เรียงจากน้อยไปมาก SELECT รหัส , ชื่อ FROM พนักงาน ORDER BY ขื่อ DESC; SQL มากไปหาน้อย สคีมา ( โครงสร้าง ) ของตาราง : พนักงาน ( รหัส , ชื่อ, ที่อยู่, เบอร์โทร , เงินเดือน)PowerPoint Presentation: 23 การจัดกลุ่มข้อมูล (SELECT… GROUP BY) SELECT รหัส , ชื่อสกุล , ที่อยู่ FROM พนักงาน GROUP BY ที่อยู่ ; SQL >> ต้องการทราบ รหัส ชื่อสกุล ที่อยู่ ของพนักงาน และให้เรียงข้อมูลตาม ชื่อสกุล โจทย์ >> SELECT ชื่อคอลัมน์ FROM ชื่อตาราง GROP BY ชื่อคอลัมน์ ; รูปแบบ >> พนักงาน ( รหัสพนักงาน , ชื่อสกุล , ที่อยู่ , เบอร์โทร , เงินเดือน )PowerPoint Presentation: 24 SQL >> ต้องการข้อมูลทั้งหมดของลูกค้าเฉพาะที่อาศัยอยู่ในBangkok โจทย์ >> SELECT ชื่อคอลัมน์ FROM ชื่อตาราง WHERE เงื่อนไขที่ต้องการ ; รูปแบบ >> การสอบถามข้อมูลแบบมีเงื่อนไข SELECT * FROM customer WHERE address = ‘Bangkok’ ;PowerPoint Presentation: 25 SQL >> สอบถามข้อมูลของลูกค้าที่อยู่ Bangkok และมีวงเงินมากกว่า 500,000 บาท โจทย์ >> SELECT * FROM customer WHERE (C_address = ‘Bangkok’) AND (C_creditlim> 500000) ; ระบุหลายเงื่อนไขโดยใช้ OR SQL >> สอบถามข้อมูลของลูกค้าที่อยู่ Bangkok หรือมีวงเงินมากกว่า 500,000 บาท SELECT * FROM customer WHERE (C_address = ‘Bangkok’) OR (C_creditlim> 500000) ; โจทย์ >>PowerPoint Presentation: 26 SQL 1 >> สอบถามข้อมูลของลูกค้าที่อยู่ Bangkok, Rayong หรือ Ayuthaya โจทย์ >> SELECT * FROM customer WHERE (C_address = ‘Bangkok’) OR (C_address = ‘Rayong’) OR (C_address = ‘Ayuthaya’) ; ระบุหลายเงื่อนไขโดยใช้ IN SQL 2 >> SELECT * FROM customer WHERE address IN (‘Bangkok’, ‘Rayong’ , ‘Ayuthaya’)PowerPoint Presentation: 27 SQL1 >> สอบถามข้อมูลของลูกค้าที่ไม่อยู่ในBangkok โจทย์ >> SELECT * FROM customer WHERE C_address <> ‘Bangkok’ ; SQL2 >> SELECT * FROM customer WHERE NOT C_address = ‘Bangkok’; ระบุหลายเงื่อนไขโดยใช้ NOTPowerPoint Presentation: 28 SELECT ชื่อคอลัมน์ FROM ชื่อตาราง WHERE ชื่อคอลัมน์ BETWEEN ค่าที่ 1 AND ค่าที่ 2 ; รูปแบบ >> เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND *** สำหรับเลือกแสดงข้อมูลที่อยู่ระหว่างค่าที่กำหนด(values1) และ values2*** SELECT ชื่อคอลัมน์ FROM ชื่อตาราง WHERE ชื่อคอลัมน์ NOT BETWEEN ค่าที่ 1 AND ค่าที่ 2 ; รูปแบบ >> *** สำหรับเลือกแสดงข้อมูลที่มีค่าไม่อยู่ระหว่างค่าที่กำหนด ***PowerPoint Presentation: 29 SQL1 >> แสดงชื่อของพนักงานที่มีเงินเดือนอยู่ระหว่าง 3,500 และ 5,000 บาท โจทย์ >> SELECT e_name FROM employee WHERE (salary >= 3500) AND (salary <= 5000) ; SQL2 >> เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND SELECT e_name FROM employee WHERE salary BETWEEN 3500 AND 5000 ;PowerPoint Presentation: 30 คำสั่ง SQL สามารถกำหนดเงื่อนไขเพื่อเลือกข้อมูลโดยใช้คำว่า “LIKE” และ ‘_’ โดยมีรายละเอียดดังนี้ เลือกข้อมูลที่ตรงกับความต้องการด้วย LIKE เครื่องหมาย / คำ การแทนค่า ‘_’ แทนตัวอักษรใดๆ 1 ตัวอักษร ‘%’ แทนตัวอักษรกี่ตัวก็ได้ หรือเป็น 0 (ไม่มีข้อมูลเลยก็ได้)PowerPoint Presentation: 31 SQL1 >> แสดงชื่อของลูกค้าที่ขึ้นต้นด้วย ‘So’ โจทย์ >> SELECT C_name FROM customer WHERE c_name like ‘So % ’ ; เลือกข้อมูลที่ตรงกับความต้องการด้วย LIKE SQL1 >> แสดงชื่อของลูกค้าที่ขึ้นต้นด้วย ‘Si’ และตามด้วยอักษรได้ก็ได้ 3 ตัว โจทย์ >> SELECT C_name FROM customer WHERE c_name like ‘Si _ _ _’ ; C_name ------------ Sopha Somchai Somsak ผลลัพธ์ >> C_name ------------ Silee ผลลัพธ์ >>PowerPoint Presentation: 32 ฟังก์ชั่นสำหรับหาค่าของกลุ่มข้อมูล ฟังก์ชั่น หน้าที่ AVG ผลลัพธ์เป็นค่าเฉลี่ยของข้อมูลทั้งกลุ่ม SUM ผลลัพธ์เป็นผลบวกของข้อมูลทั้งกลุ่ม MIN ผลลัพธ์เป็นค่าน้อยที่สุดของข้อมูลทั้งกลุ่ม MAX ผลลัพธ์เป็นค่ามากที่สุดของข้อมูลทั้งกลุ่ม COUNT ผลลัพธ์เป็นจำนวนรายการของข้อมูลทั้งกลุ่ม SELECT Function ( ชื่อคอลัมน์ ) FROM ชื่อตาราง ; รูปแบบ >>PowerPoint Presentation: 33 SQL1 >> ต้องการทราบค่าเฉลี่ยเงินเดือนพนักงานทุกคน โจทย์ >> SELECT AVG (salary) FROM employee ; ผลลัพธ์ >> หาค่าเฉลี่ยด้วย AVG() , MAX() AVG(salary) ------------ 4971 SQL1 >> ต้องการทราบวงเงินสูงสุดที่ให้แก่ลูกค้ามีค่าเท่าไหร่ โจทย์ >> SELECT MAX(C_creditlim) FROM Customer ; ผลลัพธ์ >> MAX(C_creditlim) ------------ 900000PowerPoint Presentation: 34 SQL1 >> แสดงจำนวนรายการสั่งซื้อสินค้าทั้งหมด พร้อมระบุจำนวนรายการสินค้าทั้งหมดที่มีการสั่งซื้อ โจทย์ >> SELECT COUNT (*) AS “TOTAL” , COUNT ( DISTINCT IDorder) AS “ORDER” FROM Order; การนับจำนวน COUNT, DISTINCT ผลลัพธ์ >> TOTAL ORDER ------------ ------------ 6 5 SQL1 >> ต้องการทราบจำนวนลูกค้าของบริษัท โจทย์ >> SELECT COUNT(*) FROM customer ; ผลลัพธ์ >> count(*) ------------ 9คำสั่งการเรียกค้น (SELECT)ข้อมูลจากหลายตาราง: คำสั่งการเรียก ค้น (SELECT) ข้อมูล จากหลายตาราง 35 em_id em_name dep_id EM001 นายขวัญชัย มีจิต DEP04 EM002 นายเอกชัย ใจเพชร DEP02 EM003 นายเกื้อกูล ใจงาม DEP03 EM004 นายณรงค์ มีศิลป์ DEP02 course_id c_name C001 การทำอาหาร C002 การซ่อมรถยนต์ C003 การทำขนม C004 การทำตุ๊กตา em_id course_id date EM001 C001 10/02/53 EM002 C002 11/02/53 EM003 C001 10/02/53 EM004 C004 13/02/53 employee course dep_id dep_name DEP01 แผนกต้อนรับ DEP02 แผนกซ่อมบำรุง DEP03 แผนกการเงิน DEP04 แผนกบัญชี department trainingตัวอย่างการเชื่อมข้อมูลจากหลายตาราง: ตัวอย่างการเชื่อมข้อมูลจากหลายตาราง โจทย์ ) ต้องการทราบ ชื่อ (em_name) ของพนักงานที่อบรมหลักสูตร C001 36 SELECT em_name FROM employee,training WHERE employee.em_id = training.em_id AND course_id = ‘C001’ ดึงข้อมูลจาก ตาราง employee และ ตาราง trainingPowerPoint Presentation: โจทย์ ) ต้องการทราบว่า พนักงาน ที่มีรหัสแผนก dep04 เข้าอบรมหลักสูตรใดบ้าง 37 SELECT c_name FROM employee,training,course WHERE employee.dep_id = “dep04” AND employee.em_id = training.em_id AND training.course_id = course.course_idคำสั่งการเรียกค้นข้อมูลแบบซ้อนกัน (Sub queries): คำสั่งการเรียกค้นข้อมูลแบบซ้อนกัน (Sub queries) SELECT < ชื่อคอลัมน์ > FROM < ชื่อตาราง > WHERE < ชื่อคอลัมน์ > IN ( SELECT < ชื่อคอลัมน์ > FROM < ชื่อตาราง > WHERE < ชื่อคอลัมน์ > ) คือ การเรียกค้นข้อมูลที่ประกอบด้วย การเรียกค้นหลัก กับ การเรียกค้นย่อย โดยการเรียกค้นหลักจะใช้ผลลัพธ์ของ การเรียกค้นย่อยไปเป็นเงื่อนไขในการกลั่นกรองข้อมูล หลักการทำงาน ต้องหาการเรียกค้นย่อยก่อนแล้วจึงนำไปใช้งานกับการเรียกค้นหลักตัวอย่าง : ต้องการทราบชื่อพนักงานที่อยู่แผนกเดียวกับ khanchai: ตัวอย่าง : ต้องการทราบชื่อพนักงานที่อยู่แผนกเดียวกับ khanchai SELECT em_name FROM employee WHERE dep_id IN ( SELECT em_name FROM employee WHERE em_name = “ khanchai ”) การเพิ่มข้อมูลแต่ละแถว (INSERT): 40 การเพิ่มข้อมูลแต่ละแถว (INSERT) INSERT INTO < ชื่อตาราง > VALUES ([<value 1>, <value 2>,… ) ; รูปแบบ >> INSERT INTO customer VALUES (‘101’,‘Supaporn’, ‘Pattani’,‘073658758’, 150000 ,100000 ) ; SQL >> ป้อนข้อมูลของลูกค้าใหม่ ซึ่งมีรหัส 101 ชื่อ Supaporn อาศัยอยู่ Pattani เบอร์โทรศัพท์ 073658758 มีวงเงิน 150,000 บ. และยอดเงินคงเหลือ100,000 บ. โจทย์ >>PowerPoint Presentation: 41 การเพิ่มข้อมูลแต่ละแถว (INSERT) ( ต่อ ) INSERT INTO <Table_name><(list of columnname)> VALUES <( list of matching value)> ; รูปแบบ >> INSERT INTO customer ( IDcustomer , C_name ) VALUES (‘150’,‘Walaiporn’) ; SQL >> ป้อนข้อมูลของลูกค้าใหม่ ซึ่งมีรหัส 150 ชื่อ Walaiporn โจทย์ >> ในกรณีที่อาจการเพิ่มข้อมูลเฉพาะบางคอลัมน์ สามารถเขียนคำสั่งได้ดังนี้PowerPoint Presentation: 42 UPDATE employee SET E_salary = 15000 WHERE E_name =‘ Piyanuch ’ ; การแก้ไขข้อมูล (Update) SQL >> ต้องการปรับเงินเดือนพนักงานชื่อ Piyanuch จากเดิม 14,400 บาท เป็น 15,000 โจทย์ >> ในกรณีที่เพิ่มข้อมูลในตารางแล้ว และต้องการแก้ไขข้อมูลที่มีอยู่สามารถเขียนคำสั่งได้ดังนี้ UPDATE <Table_name> SET <columnname> = new_value WHERE <condition>; รูปแบบ >>PowerPoint Presentation: 43 UPDATE customer SET C_credit = C_credit + 50000 WHERE C_address =‘Bangkok’ ; SQL >> ต้องการเพิ่มวงเงินให้แก่ลูกค้าที่อาศัยอยู่ใน Bangkok อีกคนละ 50,000 บาท โจทย์ >> หากต้องการแก้ไขข้อมูลที่มีอยู่ ครั้งละหลายแถวสามารถเขียนคำสั่งได้ดังนี้ การแก้ไขข้อมูล (Update)PowerPoint Presentation: 44 DELETE FROM employee WHERE E_name = ‘Walai’ ; SQL >> ในกรณีที่พนักงานชื่อ ‘Walai’ ลาออกจากบริษัท โจทย์ >> DELETE <Table_name> WHERE <condition>; รูปแบบ >> การลบข้อมูล (Delete)แบบฝึกหัด: แบบฝึกหัด ต้องการทราบชื่อพนักงาน อยู่แผนก DEP02 ต้องการทราบชื่อพนักงานที่อยู่ แผนกเดียวกับ นายเอกชัย ใจเพชร ต้องการทราบชื่อหลักสูตรที่ นายขวัญชัย ใจเพชร เข้าอบรม ต้องการทราบว่าหลักสูตรการทำอาหารมีใครเรียนบ้าง ต้องการหาชื่อพนักงานที่อบรมในระหว่าง วันที่ 10/02/53– 11/02/53 ต้องการหาชื่อพนักงานที่มีชื่อขึ้นด้วย ข ต้องการหาข้อมูลของพนักงานที่มีตัวอักษร อกเฉลย 1: เฉลย 1 SELECT em_name FROM employee WHERE dep_id = "dep02"ข้อ 2: ข้อ 2 SELECT em_name FROM employee WHERE dep_id IN (SELECT dep_id FROM employee WHERE em_name =“ นายเอกชัย ใจเพชร ") AND em_name != “ นายเอกชัย ใจเพชร "ข้อ 3: ข้อ 3 SELECT c_name FROM employee,training,course WHERE employee.em_name = "khanchai" AND employee.em_id=training.em_id AND training.course_id = course.course_idข้อ 4: ข้อ 4 SELECT em_name FROM employee,training,course WHERE (c_name ="cooking") AND (training.em_id=employee.em_id) AND (training.course_id =course.course_id)ข้อ 5: ข้อ 5 SELECT em_name FROM employee,training WHERE employee.em_id = training.em_id AND (date BETWEEN “10/02/53" AND “11/02/53")ข้อ 6: ข้อ 6 SELECT em_name FROM employee WHERE em_name LIKE “ ข %"ข้อ 7: ข้อ 7 SELECT * FROM employee WHERE em_name LIKE "% อก %" You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
sql suthip Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 223 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: February 11, 2012 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript ภาษามาตรฐานสำหรับการนิยามข้อมูล และการใช้ข้อมูล (Structure Query Language : SQL): 1 ภาษามาตรฐานสำหรับการนิยามข้อมูล และการใช้ข้อมูล (Structure Query Language : SQL)SQL (Structured Query Language): 2 SQL (Structured Query Language) เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์ ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS) ที่สนับสนุนการใช้คำสั่ง SQL เช่น ORACLE, DB2, MS-SQL, MS-Access นอกจากนี้ภาษา SQL ถูกนำมาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา C/C++, Visual Basic ,PHP, Java เป็นต้น ประเภทของคำสั่งในภาษา SQL: 3 ประเภทของคำสั่งในภาษา SQL ภาษานิยามข้อมูล (Data Definition Language : DDL) เป็นคำสั่งที่ใช้ในการสร้างฐานข้อมูล กำหนดโครงสร้างข้อมูลว่ามีคอลัมย์ใด ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และการสร้างดัชนี คำสั่ง : CREATE, DROP, ALTER ภาษาจัดการข้อมูล (Data Manipulation Language :DML) เป็นคำสั่งที่ใช้ในการเรียกใช้ เพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในตาราง คำสั่ง : SELECT, INSERT, UPDATE, DELETE ภาษาควบคุมข้อมูล (Data Control Language : DCL) เป็นคำสั่งที่ใช้ในการกำหนดสิทธิการอนุญาติ หรือ ยกเลิก การเข้าถึงฐานข้อมูล เพื่อป้องกันความปลอดภัยของฐานข้อมูล คำสั่ง : GRANT, REVOKEPowerPoint Presentation: 4 ภาษา SQL (Structure Query Language) ภาษานิยามข้อมูล (DDL) CREATE ALTER DROP ภาษาจัดการข้อมูล (DML) SELECT UPDATE INSERT DELETE ภาษาควบคุมข้อมูล (DCL) GRANT REVOKEภาษาสำหรับการนิยามข้อมูล DDL: 5 ภาษาสำหรับการนิยามข้อมูล DDL คำสั่ง การทำงาน CREAT TABLE นิยามโครงสร้างข้อมูลในตารางที่สร้างขึ้น DROP TABLE ลบโครงสร้างข้อมูลออกจากระบบ ALTER TABLE แก้ไขปรับปรุงโครงสร้างตาราง รายละเอียดข้อมูล (Data Dictionary) ของตารางที่ต้องการสร้างเพื่อเก็บข้อมูลในฐานข้อมูล: 6 รายละเอียดข้อมูล (Data Dictionary) ของตารางที่ต้องการสร้างเพื่อเก็บข้อมูลในฐานข้อมูล ชื่อตาราง ชื่อคอลัมน์ ประเภทข้อมูล ความหมาย อ้างถึง CUSTOMER PRODUCT IDcustomer (PK) Char (6) รหัสลูกค้า C_name Varchar (40) ชื่อลูกค้า C_address Varchar (30) ที่อยู่ C_Telephone Varchar(10) เบอร์โทรศัพท์ C_Creditlim number วงเงินการให้สินเชื่อ C_currbal number ยอดสินเชื่อคงเหลือ IDproduct (PK) Char (6) รหัสสินค้า p_name Varchar (20) ชื่อสินค้า p_unitprice number ราคาต่อหน่วย(บาท) P_onhand number จำนวนสินค้าคงเหลือ P_orderpt number จำนวนต่ำสุดที่ต้องสั่งซื้อเพิ่ม P_orderqty number จำนวนที่ต้องสั่งซื้อเพิ่มรายละเอียดข้อมูล (Data Dictionary): 7 รายละเอียดข้อมูล (Data Dictionary) ชื่อเท เบิล ชื่อคอลัมน์ ประเภทข้อมูล ความหมาย อ้างถึง EMPLOYEE ORDER IDemployee (PK) Char (6) รหัสพนักงาน e_name Varchar (40) ชื่อพนักงานขาย e_salary number(8,2) เงินเดือนปัจจุบัน e_address Varchar(30) ที่อยู่ e_telephone Char(10) เบอร์โทรศัพท์ IDorder (PK) Char (6) รหัสใบสั่งซื้อสินค้า IDproduct Char (6) รหัสสินค้า product qty number จำนวนสินค้าที่สั่งซื้อ discount number ส่วนลด( % ) IDcustomer Char (6) รหัสลูกค้า Customer IDemployee Char (6) รหัสพนักงานขาย employee การสร้างตาราง (Create Table): 8 การสร้างตาราง (Create Table) CREATE TABLE < Table_name > ( ชื่อคอลัมย์ 1 ประเภทข้อมูล [ เงื่อนไข ] ชื่อคอลัมย์ 2 ประเภทข้อมูล [ เงื่อนไข ] … … … [ PRIMARY KEY ( ชื่อคอลัมน์ ,)] [ FOREIGN KEY ( ชื่อคอลัมน์ ) REFERENCES ชื่อตารางที่อ้างอิง ( ชื่อคอลัมน์ )]); การสร้างตารางด้วย SQL สามารถทำได้ด้วยคำสั่ง CREATE TABLE ซึ่งกำหนดลักษณะของข้อมูลเป็นคอลัมน์ โดยมีรูปแบบดังนี้ รูปแบบคำสั่งPowerPoint Presentation: 9 CREATE TABLE employee ( em_id char(6) NOT NULL UNIQUE, em_name varchar (20) NOT NULL, em_salary integer em_address varchar (100), PRIMARY KEY ( em_id ) ); คำอธิบาย SQL กำหนดให้ em_id เป็นคีย์หลัก ดังนั้นจะใส่ PRIMARY KEY (em_id) เข้าไปด้วย และในคอลัมน์ em_id ต้องมีค่าเสมอ(NOT NULL) และมีค่าไม่ซ้ำกัน (UNIQUE) และในแต่ละแถวคอลัมน์ em_name จะต้องมีค่าเสมอ (NOT NULL) เนื่องจากความเป็นจริงที่ ข้อมูลพนักงาน ทุกคนต้องมีชื่อ โจทย์ >> สร้างตาราง customer ตามที่ได้ออกแบบรายละเอียดตารางไว้PowerPoint Presentation: 10 โจทย์ เพิ่มคอลัมน์ที่เป็นรหัสแผนก(dep_id) ในตาราง employee เพื่อบอกว่าพนักงานสังกัดอยู่แผนกใด SQL >> ALTER TABLE employee ADD dep_id char(6) ; การเปลี่ยนโครงสร้างของตาราง (Alter Table) เพิ่มคอลัมน์ให้กับตาราง ใช้คำสั่ง ADD ALTER TABLE < ชื่อตารางที่จะเปลี่ยนแปรง > ADD < ชื่อคอลัมน์ > < ประเภทข้อมูล > ; รูปแบบ >>PowerPoint Presentation: 11 โจทย์ >> ลบ คอลัมน์ที่เป็นรหัสแผนก (dep_id) ในตาราง employee SQL >> ALTER TABLE employee DROP dep_id ; การเปลี่ยนโครงสร้างของตาราง (Alter Table) ลบคอลัมน์ใช้คำสั่ง DROP ALTER TABLE < ชื่อตารางที่ต้องการลบ > DROP < ชื่อคอลัมน์ที่ต้องการลบ > ; รูปแบบ >>การแก้ไขคอลัมน์ในตาราง (MODIFY): 12 การแก้ไขคอลัมน์ในตาราง (MODIFY) โจทย์ >> เปลี่ยนขนาดของข้อมูลในคอลัมน์ dep_id ในตาราง employee จากขนาด 6 ตัวอักษร เป็นขนาด 5 ตัวอักษร SQL >> ALTER TABLE employee MODIFY (dep_id char(5)) ; ALTER TABLE < ชื่อตารางที่ต้องการแก้ไข > MODIFY < ชื่อคอลัมน์ > < ประเภทของข้อมูล > ; รูปแบบ >>การลบตารางออกจากฐานข้อมูล (Drop Table): 13 การลบตารางออกจากฐานข้อมูล (Drop Table) DROP TABLE Order DROP TABLE < ชื่อตารางที่ต้องการลบ >; รูปแบบ DROP TABLE ORDER; SQL ต้องการลบเทเบิล ORDER ออกจากฐานข้อมูล โจทย์PowerPoint Presentation: 14 ภาษาสำหรับจัดการข้อมูล (DML) คำสั่ง ความหมาย SELECT เรียกดูข้อมูลในที่เก็บในฐานข้อมูล UPDATE แก้ไขข้อมูลที่เก็บในฐานข้อมูล INSERT เพิ่มข้อมูลที่ต้องการเก็บในฐานข้อมูล DELETE ลบข้อมูลที่ไม่ต้องการในฐานข้อมูลPowerPoint Presentation: 15 คำสั่ง SELECT เป็นคำสั่งการเรียกค้นข้อมูลจากตารางต่าง ๆ ในฐานข้อมูล ตามเงื่อนไขที่ระบุไว้ โดยเงื่อนไขสามารถระบุได้ คำสั่งเรียกค้นข้อมูล (SELECT)PowerPoint Presentation: 16 ความหมาย เครื่องหมายที่ใช้เปรียบเทียบ ตัวอย่าง เท่ากับ = X = Y ไม่เท่ากับ < > X < > Y มากกว่า > X > Y น้อยกว่า < X < Y มากกว่าหรือเท่ากับ >= X >= Y น้อยกว่าหรือเท่ากับ <= X <= Y ตัวดำเนินการเชิงเปรียบเทียบ (Comparison Operators)PowerPoint Presentation: 17 สัญลักษณ์ ความหมาย AND ใช้เชื่อมการกระทำ (Operand) ตั้งแต่ 2 ตัว ขึ้นไป ซึ่งนิพจน์จะเป็นจริงก็ต่อเมื่อทุก Operand จะต้องเป็นจริง OR ใช้เชื่อมการกระทำ (Operand) ตั้งแต่ 2 ตัว ขึ้นไป ซึ่งนิพจน์จะเป็นจริงก็ต่อเมื่อทุก Operand ตัวใดตัวหนึ่งหรือทุกตัวเป็นจริง NOT ใช้นำหน้าการกระทำ (Operand) ถ้านำหน้า Operand ที่เป็นจริง จะทำให้นิพจน์เป็นเท็จ ถ้านำหน้า Operand ที่เป็นเท็จ จะทำให้นิพจน์เป็นจริง เครื่องหมาย Operator ที่ใช้สัญลักษณ์ทางตรรกศาสตร์PowerPoint Presentation: 18 SELECT < ชื่อคอลัมน์ที่ต้องการดูข้อมูล ,…> FROM < ชื่อตาราง ,…> WHERE < เงื่อนไขที่ต้องการระบุ > รูปแบบ >> การสอบถามข้อมูล (SELECT) SELECT เป็นคำสั่งให้ทำการเรียกค้นข้อมูลในคอลัมน์ของตาราง โดยสามารถระบุได้ 1 หรือมากว่า 1 คอลัมน์ ถ้ามากกว่าให้คั่นด้วยเครื่องหมาย , ถ้าต้องการเลือกทุกคอลัมน์ ให้ ใส่เครื่องหมาย * FROM บอกชื่อตารางที่ต้องการดูข้อมูล WHERE ใช้ในการระบุเงื่อนไขที่ต้องการค้นPowerPoint Presentation: 19 SELECT * FROM ชื่อตาราง ; 1) คำสั่งให้แสดงข้อมูลของคอลัมน์ที่ต้องการ คำสั่ง SQL อย่างง่ายจากตารางเดียว 2) คำสั่งให้แสดงข้อมูลของทุกๆ คอลัมน์ SELECT ชื่อคอลัมน์ที่ 1, ชื่อคอลัมน์ที่ 2,…. FROM ชื่อตาราง ;PowerPoint Presentation: 20 SELECT * FROM พนักงาน ; ตัวอย่าง SELECT รหัสพนักงาน , ชื่อสกุล FROM พนักงาน ; พนักงาน ( รหัสพนักงาน , ชื่อสกุล , ที่อยู่ , เบอร์โทร , เงินเดือน ) โจทย์ : ให้แสดง รหัสพนักงาน และ ชื่อสกุลของพนักงานทั้งหมด โจทย์ : ให้แสดงข้อมูลของพนักงานทั้งหมดPowerPoint Presentation: 21 SELECT DISTINCT ที่อยู่ FROM พนักงาน ; SQL >> ให้แสดงข้อมูลที่อยู่พนักงานของบริษัทว่าอยู่ที่ใดบ้าง โจทย์ >> SELECT DISTINCT ชื่อคอลัมน์ FROM ชื่อตาราง ; รูปแบบ >> คำสั่ง แสดงข้อมูลที่ไม่ซ้ำกันด้วย DISTINCT พนักงาน ( รหัสพนักงาน , ชื่อสกุล , ที่อยู่ , เบอร์โทร )PowerPoint Presentation: 22 SELECT รหัส , ชื่อ FROM พนักงาน ORDER BY รหัส ; SQL น้อยไปหามาก ต้องการทราบ รหัสและชื่อ ของลูกค้าทั้งหมด โดยแสดงผลแบบเรียงตามลำดับชื่อลูกค้าจากน้อยไปหามาก และ มากไปน้อย โจทย์ >> จัดเรียง ข้อมูล ด้วย ORDER BY ORDER BY ชื่อคอลัมน์ [DESC] ; เรียงจากมากไปน้อย รูปแบบคำสั่ง >> ORDER BY ชื่อคอลัมน์ ; เรียงจากน้อยไปมาก SELECT รหัส , ชื่อ FROM พนักงาน ORDER BY ขื่อ DESC; SQL มากไปหาน้อย สคีมา ( โครงสร้าง ) ของตาราง : พนักงาน ( รหัส , ชื่อ, ที่อยู่, เบอร์โทร , เงินเดือน)PowerPoint Presentation: 23 การจัดกลุ่มข้อมูล (SELECT… GROUP BY) SELECT รหัส , ชื่อสกุล , ที่อยู่ FROM พนักงาน GROUP BY ที่อยู่ ; SQL >> ต้องการทราบ รหัส ชื่อสกุล ที่อยู่ ของพนักงาน และให้เรียงข้อมูลตาม ชื่อสกุล โจทย์ >> SELECT ชื่อคอลัมน์ FROM ชื่อตาราง GROP BY ชื่อคอลัมน์ ; รูปแบบ >> พนักงาน ( รหัสพนักงาน , ชื่อสกุล , ที่อยู่ , เบอร์โทร , เงินเดือน )PowerPoint Presentation: 24 SQL >> ต้องการข้อมูลทั้งหมดของลูกค้าเฉพาะที่อาศัยอยู่ในBangkok โจทย์ >> SELECT ชื่อคอลัมน์ FROM ชื่อตาราง WHERE เงื่อนไขที่ต้องการ ; รูปแบบ >> การสอบถามข้อมูลแบบมีเงื่อนไข SELECT * FROM customer WHERE address = ‘Bangkok’ ;PowerPoint Presentation: 25 SQL >> สอบถามข้อมูลของลูกค้าที่อยู่ Bangkok และมีวงเงินมากกว่า 500,000 บาท โจทย์ >> SELECT * FROM customer WHERE (C_address = ‘Bangkok’) AND (C_creditlim> 500000) ; ระบุหลายเงื่อนไขโดยใช้ OR SQL >> สอบถามข้อมูลของลูกค้าที่อยู่ Bangkok หรือมีวงเงินมากกว่า 500,000 บาท SELECT * FROM customer WHERE (C_address = ‘Bangkok’) OR (C_creditlim> 500000) ; โจทย์ >>PowerPoint Presentation: 26 SQL 1 >> สอบถามข้อมูลของลูกค้าที่อยู่ Bangkok, Rayong หรือ Ayuthaya โจทย์ >> SELECT * FROM customer WHERE (C_address = ‘Bangkok’) OR (C_address = ‘Rayong’) OR (C_address = ‘Ayuthaya’) ; ระบุหลายเงื่อนไขโดยใช้ IN SQL 2 >> SELECT * FROM customer WHERE address IN (‘Bangkok’, ‘Rayong’ , ‘Ayuthaya’)PowerPoint Presentation: 27 SQL1 >> สอบถามข้อมูลของลูกค้าที่ไม่อยู่ในBangkok โจทย์ >> SELECT * FROM customer WHERE C_address <> ‘Bangkok’ ; SQL2 >> SELECT * FROM customer WHERE NOT C_address = ‘Bangkok’; ระบุหลายเงื่อนไขโดยใช้ NOTPowerPoint Presentation: 28 SELECT ชื่อคอลัมน์ FROM ชื่อตาราง WHERE ชื่อคอลัมน์ BETWEEN ค่าที่ 1 AND ค่าที่ 2 ; รูปแบบ >> เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND *** สำหรับเลือกแสดงข้อมูลที่อยู่ระหว่างค่าที่กำหนด(values1) และ values2*** SELECT ชื่อคอลัมน์ FROM ชื่อตาราง WHERE ชื่อคอลัมน์ NOT BETWEEN ค่าที่ 1 AND ค่าที่ 2 ; รูปแบบ >> *** สำหรับเลือกแสดงข้อมูลที่มีค่าไม่อยู่ระหว่างค่าที่กำหนด ***PowerPoint Presentation: 29 SQL1 >> แสดงชื่อของพนักงานที่มีเงินเดือนอยู่ระหว่าง 3,500 และ 5,000 บาท โจทย์ >> SELECT e_name FROM employee WHERE (salary >= 3500) AND (salary <= 5000) ; SQL2 >> เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND SELECT e_name FROM employee WHERE salary BETWEEN 3500 AND 5000 ;PowerPoint Presentation: 30 คำสั่ง SQL สามารถกำหนดเงื่อนไขเพื่อเลือกข้อมูลโดยใช้คำว่า “LIKE” และ ‘_’ โดยมีรายละเอียดดังนี้ เลือกข้อมูลที่ตรงกับความต้องการด้วย LIKE เครื่องหมาย / คำ การแทนค่า ‘_’ แทนตัวอักษรใดๆ 1 ตัวอักษร ‘%’ แทนตัวอักษรกี่ตัวก็ได้ หรือเป็น 0 (ไม่มีข้อมูลเลยก็ได้)PowerPoint Presentation: 31 SQL1 >> แสดงชื่อของลูกค้าที่ขึ้นต้นด้วย ‘So’ โจทย์ >> SELECT C_name FROM customer WHERE c_name like ‘So % ’ ; เลือกข้อมูลที่ตรงกับความต้องการด้วย LIKE SQL1 >> แสดงชื่อของลูกค้าที่ขึ้นต้นด้วย ‘Si’ และตามด้วยอักษรได้ก็ได้ 3 ตัว โจทย์ >> SELECT C_name FROM customer WHERE c_name like ‘Si _ _ _’ ; C_name ------------ Sopha Somchai Somsak ผลลัพธ์ >> C_name ------------ Silee ผลลัพธ์ >>PowerPoint Presentation: 32 ฟังก์ชั่นสำหรับหาค่าของกลุ่มข้อมูล ฟังก์ชั่น หน้าที่ AVG ผลลัพธ์เป็นค่าเฉลี่ยของข้อมูลทั้งกลุ่ม SUM ผลลัพธ์เป็นผลบวกของข้อมูลทั้งกลุ่ม MIN ผลลัพธ์เป็นค่าน้อยที่สุดของข้อมูลทั้งกลุ่ม MAX ผลลัพธ์เป็นค่ามากที่สุดของข้อมูลทั้งกลุ่ม COUNT ผลลัพธ์เป็นจำนวนรายการของข้อมูลทั้งกลุ่ม SELECT Function ( ชื่อคอลัมน์ ) FROM ชื่อตาราง ; รูปแบบ >>PowerPoint Presentation: 33 SQL1 >> ต้องการทราบค่าเฉลี่ยเงินเดือนพนักงานทุกคน โจทย์ >> SELECT AVG (salary) FROM employee ; ผลลัพธ์ >> หาค่าเฉลี่ยด้วย AVG() , MAX() AVG(salary) ------------ 4971 SQL1 >> ต้องการทราบวงเงินสูงสุดที่ให้แก่ลูกค้ามีค่าเท่าไหร่ โจทย์ >> SELECT MAX(C_creditlim) FROM Customer ; ผลลัพธ์ >> MAX(C_creditlim) ------------ 900000PowerPoint Presentation: 34 SQL1 >> แสดงจำนวนรายการสั่งซื้อสินค้าทั้งหมด พร้อมระบุจำนวนรายการสินค้าทั้งหมดที่มีการสั่งซื้อ โจทย์ >> SELECT COUNT (*) AS “TOTAL” , COUNT ( DISTINCT IDorder) AS “ORDER” FROM Order; การนับจำนวน COUNT, DISTINCT ผลลัพธ์ >> TOTAL ORDER ------------ ------------ 6 5 SQL1 >> ต้องการทราบจำนวนลูกค้าของบริษัท โจทย์ >> SELECT COUNT(*) FROM customer ; ผลลัพธ์ >> count(*) ------------ 9คำสั่งการเรียกค้น (SELECT)ข้อมูลจากหลายตาราง: คำสั่งการเรียก ค้น (SELECT) ข้อมูล จากหลายตาราง 35 em_id em_name dep_id EM001 นายขวัญชัย มีจิต DEP04 EM002 นายเอกชัย ใจเพชร DEP02 EM003 นายเกื้อกูล ใจงาม DEP03 EM004 นายณรงค์ มีศิลป์ DEP02 course_id c_name C001 การทำอาหาร C002 การซ่อมรถยนต์ C003 การทำขนม C004 การทำตุ๊กตา em_id course_id date EM001 C001 10/02/53 EM002 C002 11/02/53 EM003 C001 10/02/53 EM004 C004 13/02/53 employee course dep_id dep_name DEP01 แผนกต้อนรับ DEP02 แผนกซ่อมบำรุง DEP03 แผนกการเงิน DEP04 แผนกบัญชี department trainingตัวอย่างการเชื่อมข้อมูลจากหลายตาราง: ตัวอย่างการเชื่อมข้อมูลจากหลายตาราง โจทย์ ) ต้องการทราบ ชื่อ (em_name) ของพนักงานที่อบรมหลักสูตร C001 36 SELECT em_name FROM employee,training WHERE employee.em_id = training.em_id AND course_id = ‘C001’ ดึงข้อมูลจาก ตาราง employee และ ตาราง trainingPowerPoint Presentation: โจทย์ ) ต้องการทราบว่า พนักงาน ที่มีรหัสแผนก dep04 เข้าอบรมหลักสูตรใดบ้าง 37 SELECT c_name FROM employee,training,course WHERE employee.dep_id = “dep04” AND employee.em_id = training.em_id AND training.course_id = course.course_idคำสั่งการเรียกค้นข้อมูลแบบซ้อนกัน (Sub queries): คำสั่งการเรียกค้นข้อมูลแบบซ้อนกัน (Sub queries) SELECT < ชื่อคอลัมน์ > FROM < ชื่อตาราง > WHERE < ชื่อคอลัมน์ > IN ( SELECT < ชื่อคอลัมน์ > FROM < ชื่อตาราง > WHERE < ชื่อคอลัมน์ > ) คือ การเรียกค้นข้อมูลที่ประกอบด้วย การเรียกค้นหลัก กับ การเรียกค้นย่อย โดยการเรียกค้นหลักจะใช้ผลลัพธ์ของ การเรียกค้นย่อยไปเป็นเงื่อนไขในการกลั่นกรองข้อมูล หลักการทำงาน ต้องหาการเรียกค้นย่อยก่อนแล้วจึงนำไปใช้งานกับการเรียกค้นหลักตัวอย่าง : ต้องการทราบชื่อพนักงานที่อยู่แผนกเดียวกับ khanchai: ตัวอย่าง : ต้องการทราบชื่อพนักงานที่อยู่แผนกเดียวกับ khanchai SELECT em_name FROM employee WHERE dep_id IN ( SELECT em_name FROM employee WHERE em_name = “ khanchai ”) การเพิ่มข้อมูลแต่ละแถว (INSERT): 40 การเพิ่มข้อมูลแต่ละแถว (INSERT) INSERT INTO < ชื่อตาราง > VALUES ([<value 1>, <value 2>,… ) ; รูปแบบ >> INSERT INTO customer VALUES (‘101’,‘Supaporn’, ‘Pattani’,‘073658758’, 150000 ,100000 ) ; SQL >> ป้อนข้อมูลของลูกค้าใหม่ ซึ่งมีรหัส 101 ชื่อ Supaporn อาศัยอยู่ Pattani เบอร์โทรศัพท์ 073658758 มีวงเงิน 150,000 บ. และยอดเงินคงเหลือ100,000 บ. โจทย์ >>PowerPoint Presentation: 41 การเพิ่มข้อมูลแต่ละแถว (INSERT) ( ต่อ ) INSERT INTO <Table_name><(list of columnname)> VALUES <( list of matching value)> ; รูปแบบ >> INSERT INTO customer ( IDcustomer , C_name ) VALUES (‘150’,‘Walaiporn’) ; SQL >> ป้อนข้อมูลของลูกค้าใหม่ ซึ่งมีรหัส 150 ชื่อ Walaiporn โจทย์ >> ในกรณีที่อาจการเพิ่มข้อมูลเฉพาะบางคอลัมน์ สามารถเขียนคำสั่งได้ดังนี้PowerPoint Presentation: 42 UPDATE employee SET E_salary = 15000 WHERE E_name =‘ Piyanuch ’ ; การแก้ไขข้อมูล (Update) SQL >> ต้องการปรับเงินเดือนพนักงานชื่อ Piyanuch จากเดิม 14,400 บาท เป็น 15,000 โจทย์ >> ในกรณีที่เพิ่มข้อมูลในตารางแล้ว และต้องการแก้ไขข้อมูลที่มีอยู่สามารถเขียนคำสั่งได้ดังนี้ UPDATE <Table_name> SET <columnname> = new_value WHERE <condition>; รูปแบบ >>PowerPoint Presentation: 43 UPDATE customer SET C_credit = C_credit + 50000 WHERE C_address =‘Bangkok’ ; SQL >> ต้องการเพิ่มวงเงินให้แก่ลูกค้าที่อาศัยอยู่ใน Bangkok อีกคนละ 50,000 บาท โจทย์ >> หากต้องการแก้ไขข้อมูลที่มีอยู่ ครั้งละหลายแถวสามารถเขียนคำสั่งได้ดังนี้ การแก้ไขข้อมูล (Update)PowerPoint Presentation: 44 DELETE FROM employee WHERE E_name = ‘Walai’ ; SQL >> ในกรณีที่พนักงานชื่อ ‘Walai’ ลาออกจากบริษัท โจทย์ >> DELETE <Table_name> WHERE <condition>; รูปแบบ >> การลบข้อมูล (Delete)แบบฝึกหัด: แบบฝึกหัด ต้องการทราบชื่อพนักงาน อยู่แผนก DEP02 ต้องการทราบชื่อพนักงานที่อยู่ แผนกเดียวกับ นายเอกชัย ใจเพชร ต้องการทราบชื่อหลักสูตรที่ นายขวัญชัย ใจเพชร เข้าอบรม ต้องการทราบว่าหลักสูตรการทำอาหารมีใครเรียนบ้าง ต้องการหาชื่อพนักงานที่อบรมในระหว่าง วันที่ 10/02/53– 11/02/53 ต้องการหาชื่อพนักงานที่มีชื่อขึ้นด้วย ข ต้องการหาข้อมูลของพนักงานที่มีตัวอักษร อกเฉลย 1: เฉลย 1 SELECT em_name FROM employee WHERE dep_id = "dep02"ข้อ 2: ข้อ 2 SELECT em_name FROM employee WHERE dep_id IN (SELECT dep_id FROM employee WHERE em_name =“ นายเอกชัย ใจเพชร ") AND em_name != “ นายเอกชัย ใจเพชร "ข้อ 3: ข้อ 3 SELECT c_name FROM employee,training,course WHERE employee.em_name = "khanchai" AND employee.em_id=training.em_id AND training.course_id = course.course_idข้อ 4: ข้อ 4 SELECT em_name FROM employee,training,course WHERE (c_name ="cooking") AND (training.em_id=employee.em_id) AND (training.course_id =course.course_id)ข้อ 5: ข้อ 5 SELECT em_name FROM employee,training WHERE employee.em_id = training.em_id AND (date BETWEEN “10/02/53" AND “11/02/53")ข้อ 6: ข้อ 6 SELECT em_name FROM employee WHERE em_name LIKE “ ข %"ข้อ 7: ข้อ 7 SELECT * FROM employee WHERE em_name LIKE "% อก %"