1 / 56

Chapter 5- 2 กลุ่มคำสั่ง Data Query Language (DQL)

Chapter 5- 2 กลุ่มคำสั่ง Data Query Language (DQL). โดยอาจารย์ เกศแก้ว ประดิษฐ์ สาขาวิชาการจัดการเทคโนโลยีสารสนเทศ Kate_psu08@hotmail.com. เนื้อหาที่เรียนในบทนี้ คำสั่งที่ใช้ในการเลือกทุกรายการจาก Relation มาแสดงผล คำสั่งที่ใช้ในการเลือกข้อมูลมาแสดงแบบมีเงื่อนไข

rachel
Download Presentation

Chapter 5- 2 กลุ่มคำสั่ง Data Query Language (DQL)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 5-2กลุ่มคำสั่ง Data Query Language (DQL) โดยอาจารย์ เกศแก้ว ประดิษฐ์ สาขาวิชาการจัดการเทคโนโลยีสารสนเทศ Kate_psu08@hotmail.com

  2. เนื้อหาที่เรียนในบทนี้ • คำสั่งที่ใช้ในการเลือกทุกรายการจาก Relation มาแสดงผล • คำสั่งที่ใช้ในการเลือกข้อมูลมาแสดงแบบมีเงื่อนไข • Operator ที่ใช้ในคำสั่ง SQL • การใช้ Wildcard และคำสั่ง LIKE • คำสั่งที่ใช้ในการเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว Data Query Language (DQL)

  3. เนื้อหาที่เรียนในบทนี้ (ต่อ) • คำสั่งที่ใช้ในการแสดงผลทุกรายการโดยมีข้อมูลซ้ำกัน • คำสั่งที่ใช้ในการเลือกข้อมูลจาก Relation ที่สัมพันธ์กัน • คำสั่งที่ใช้ในการเรียงลำดับ • ฟังก์ชันใน SQL • ฟังก์ชัน Group By • ฟังก์ชัน Having Data Query Language (DQL)

  4. Data Query Language (DQL) • Data Query Language (DQL) เป็นกลุ่มคำสั่งที่ใช้ในการเลือกข้อมูลจาก Relation ต่างๆ ออกมาแสดงผลในรูปแบบตามที่ต้องการ ประกอบไปด้วย 3 ส่วนหลักคือ • SELECT เป็นคำสั่งที่ใช้สำหรับกำหนดรายชื่อ Attribute ของ Relation ที่ต้องการให้แสดงผล • FROM เป็นคำสั่งที่ใช้สำหรับกำหนดรายชื่อ Relation ที่เป็นแหล่งข้อมูลที่ต้องการเลือกมาแสดงผล • WHERE เป็นคำสั่งที่ใช้สำหรับกำหนดเงื่อนไขในการเลือกข้อมูลจาก Relation ที่กำหนดไว้ในส่วนของ FROM ขึ้นมาแสดงผล หากไม่กำหนดแสดงว่าแสดงทุก Tuple ของ Relation นั้น

  5. Data Query Language (DQL) • รูปแบบคำสั่ง SQL จะมีรูปแบบดังต่อไปนี้ • SELECT ……FROM…….[WHERE………….]

  6. คำสั่งที่ใช้ในการเลือกทุกรายการจาก Relation • คำสั่งโดยทั่วไป • ในกรณีที่ต้องการนำข้อมูลในทุก Tuple ของ Relation ใดๆ ขึ้นมาแสดงผล จะใช้เพียงการกำหนดคำสั่งเฉพาะในส่วนของคำสั่ง Select และ From ด้วยรูปแบบคำสั่งต่อไปนี้ • SELECT {* | attribute 1, attribute 2 ,…..,attribute N } FROM Table1 [,Table2,……,Table N ] • โดยที่ attribute หมายถึง ชื่อ attribute ที่ต้องการให้แสดงในกรณีที่ต้องการทุก attribute ให้ใช้ * แทน • Table หมายถึง ชื่อ Relation ที่เป็นเจ้าของข้อมูลที่ต้องการ

  7. คำสั่งที่ใช้ในการเลือกทุกรายการจาก Relation • จากโครงสร้างและตัวอย่างข้อมูลของ Relation “INVENTORY” ต่อไปนี้

  8. คำสั่งที่ใช้ในการเลือกทุกรายการจาก Relation • ให้นักศึกษาแสดงค่าข้อมูลทั้งหมดในตาราง INVENTORY • SELECT * FROM INVENTORY;

  9. คำสั่งที่ใช้ในการเลือกทุกรายการจาก Relation • กรณีที่ต้องการแสดงบาง attribute ของ Relation ขึ้นมาแสดงผล เช่นเดียวกับการใช้คำสั่ง Project ดังนี้ • ให้นักศึกษาแสดงเฉพาะข้อมูลในส่วนของ รหัสสินค้า ชื่อสินค้า จำนวนในคลังสินค้า และราคาสินค้า • SELECT P_CODE , P_DESCRIPT , ON_HAND , PRICE FROM INVENTORY;

  10. คำสั่งที่ใช้ในการเลือกข้อมูลขึ้นมาแสดงผลแบบมีเงื่อนไขคำสั่งที่ใช้ในการเลือกข้อมูลขึ้นมาแสดงผลแบบมีเงื่อนไข • เมื่อต้องการใช้คำสั่ง SQL เพื่อกำหนดขอบเขตของข้อมูลที่ต้องการให้แสดงผล ไม่ว่าจะเป็นคำสั่งโดยทั่วไป หรือคำสั่งใน Microsoft Access จะต้องกำหนดเงื่อนไขหลังคำสั่ง WHERE ประกอบกับคำสั่ง SELECT……FROM……. ดังนี้ • SELECT {* | attribute 1, attribute 2 ,…..,attribute N } FROM Table1 [,Table2,……,Table N ] • [WHERE condition] • โดยที่ attribute หมายถึง ชื่อ attribute ที่ต้องการให้แสดงในกรณีที่ต้องการทุก attribute ให้ใช้ * แทน • Table หมายถึง ชื่อ Relation ที่เป็นเจ้าของข้อมูลที่ต้องการ • Condition หมายถึง เงื่อนไขในการเลือกข้อมูล

  11. คำสั่งที่ใช้ในการเลือกข้อมูลขึ้นมาแสดงผลแบบมีเงื่อนไขคำสั่งที่ใช้ในการเลือกข้อมูลขึ้นมาแสดงผลแบบมีเงื่อนไข • ให้นักศึกษาเลือกข้อมูลของสินค้าเฉพาะรหัส “003” จาก Relation “INVENTORY” ต่อไปนี้ • SELECT * FROM INVENTORY WHERE P_CODE = “003”;

  12. Operator ที่ใช้ในคำสั่ง SQL • การกำหนดเงื่อนไขให้กับคำสั่ง SQL หลังคำสั่ง WHERE จะมีความสมบูรณ์ได้ ต้องประกอบกับ Operator ต่างๆ

  13. Operator ที่ใช้ในคำสั่ง SQL

  14. Operator ที่ใช้ในคำสั่ง SQL • ให้นักศึกษาเลือกข้อมูลของสินค้าที่มีจำนวนสินค้าในคลังน้อยกว่า100 จาก Relation “INVENTORY” ต่อไปนี้ • SELECT * FROM INVENTORY WHERE ON_HAND < 100;

  15. Arithmetic Operator • ได้แก่ Operator ที่ใช้ในการคำนวณ ซึ่งมีหน้าที่แตกต่างกันไปดังนี้

  16. Arithmetic Operator • ให้นักศึกษาแสดงต้นทุนของสินค้าที่ผลิตจากผู้ผลิต(V_Code) รหัส “45555”ทุกตัว จาก Relation “INVENTORY” ต่อไปนี้ • SELECT P_CODE , P_DESCRIPT , STOCK_DATE , ON_HAND * PRICE AS COST • FROM INVENTORY WHERE V_CODE = 45555;

  17. Logical Operator • Operator ที่ใช้เปรียบเทียบค่าระหว่าง 2 เงื่อนไข โดยให้ผลออกมาเป็นจริง(True) หรือ เท็จ(False) Operator กลุ่มนี้ได้แก่ • NOT ผลที่ได้ของการนำเงื่อนไขมาใช้กับ Operator นี้จะได้ผลที่ตรงข้ามกับค่าเริ่มต้นเสมอ ดังตาราง

  18. Logical Operator • ให้นักศึกษาเลือกข้อมูลของรายการสินค้าที่มีประเภทการขายไม่ใช่ประเภทที่ 1 จาก Relation “INVENTORY” ต่อไปนี้ • SELECT * FROM INVENTORY WHERE NOT SALE_CODE = “1”;

  19. Logical Operator • SELECT * FROM INVENTORY WHERE NOT SALE_CODE = “1”; • ผลลัพธ์ที่ได้

  20. Logical Operator • Operator ที่ใช้เปรียบเทียบค่าระหว่าง 2 เงื่อนไข โดยให้ผลออกมาเป็นจริง(True) หรือ เท็จ(False) Operator กลุ่มนี้ได้แก่ • AND ผลที่ได้ของการนำเงื่อนไขมาใช้กับ Operator นี้จะได้ผลออกมาจริง ก็ต่อเมื่อทั้ง 2 เงื่อนไขมีค่าเป็นจริง ดังตาราง

  21. Logical Operator • ให้นักศึกษาแสดงรายการสินค้าที่จำนวนสินค้าในคลังอยู่ระหว่าง 50 ถึง 100 จาก Relation “INVENTORY” ต่อไปนี้ • SELECT * FROM INVENTORY • WHERE ON_HAND >= 50 AND ON_HAND < =100;

  22. Logical Operator • SELECT * FROM INVENTORY • WHERE ON_HAND >= 50 AND ON_HAND < =100; • ผลลัพธ์ที่ได้

  23. Logical Operator • Operator ที่ใช้เปรียบเทียบค่าระหว่าง 2 เงื่อนไข โดยให้ผลออกมาเป็นจริง(True) หรือ เท็จ(False) Operator กลุ่มนี้ได้แก่ • OR ผลที่ได้ของการนำ 2 เงื่อนไขมาใช้กับ Operator นี้จะได้ผลออกมาเป็นเท็จ ก็ต่อเมื่อทั้ง 2 เงื่อนไขมีค่าเป็นเท็จ ดังตาราง

  24. Logical Operator • ให้นักศึกษาแสดงรายการสินค้าที่มีประเภทการขายเป็น 1 และ 5 จาก Relation “INVENTORY” ต่อไปนี้ • SELECT * FROM INVENTORY • WHERE SALE_CODE = “1” OR SALE_CODE =“5”;

  25. Logical Operator • SELECT * FROM INVENTORY • WHERE SALE_CODE = “1” OR SALE_CODE =“5”; • ผลลัพธ์ที่ได้

  26. การใช้ Wildcard และคำสั่ง Like • เครื่องหมาย “%” เป็นเครื่องหมายที่ใช้แทนข้อความใดๆ ที่จะใช้กำหนดไว้ด้านหน้า หรือด้านหลังข้อความที่กำหนด เพื่อหาคำที่คล้ายกับข้อความที่กำหนดนั้น

  27. การใช้ Wildcard และคำสั่ง Like • ให้นักศึกษาแสดงรายการสินค้าที่มีชื่อขึ้นต้นด้วยคำว่า “เหล็ก” จาก Relation “INVENTORY” ต่อไปนี้ • SELECT * FROM INVENTORY • WHERE P_DESCRIPT LIKE = “เหล็ก%”;

  28. การใช้ Wildcard และคำสั่ง Like • SELECT * FROM INVENTORY • WHERE P_DESCRIPT LIKE = “เหล็ก%”; • ผลลัพธ์ที่ได้

  29. การใช้ Wildcard และคำสั่ง Like • เครื่องหมาย “_” หรือ “?”เป็นเครื่องหมายที่ใช้แทนข้อความใดๆ ที่ใช้ร่วมกับข้อความที่กำหนด เพื่อหาคำที่คล้ายกับข้อความที่กำหนดนั้น

  30. การใช้ Wildcard และคำสั่ง Like • ให้นักศึกษาแสดงชื่อที่มีขนาด 4 ตัวอักษร และตัวอักษรแรกเป็น “H” ตัวอักษรที่ 2 เป็นอะไรก็ได้ ส่วนตัวอักษรที่ 3 และ 4 เป็นตัวอักษร “I” จาก Relation “PERSONAL” ต่อไปนี้

  31. การใช้ Wildcard และคำสั่ง Like • SELECT * FROM PERSONAL • WHERE P_NAME LIKE = “H_II”; • ผลลัพธ์ที่ได้

  32. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • การใช้คำสั่ง SQL เพื่อเลือกรายการที่ต้องการออกมาแสดงผล บ่อยครั้งที่จะปรากฏรายการที่มีค่าซ้ำกันออกมาเนื่องจาก ใน Relation มีรายการที่มีค่าซ้ำกันปรากฏอยู่ เช่นใน ตาราง Inventory

  33. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • คำสั่ง DISTINCT เป็นคำสั่งที่ใช้จัดการรายการที่มีข้อมูลซ้ำกันให้เหลือเพียงรายการเดียว โดยการพิจารณาการซ้ำกันของข้อมูล จะพิจารณาเฉพาะข้อมูลใน Field ต่างๆ ที่กำหนดในคำสั่ง SELECT • SELECT DISTINCT P_CODE , P_DESCRIPT,ON_HAND , PRICE FROM INVENTORY • WHERE ON_HAND < 200 ;

  34. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • คำสั่ง DISTINCT เป็นคำสั่งที่ใช้จัดการรายการที่มีข้อมูลซ้ำกันให้เหลือเพียงรายการเดียว โดยการพิจารณาการซ้ำกันของข้อมูล จะพิจารณาเฉพาะข้อมูลใน Field ต่างๆ ที่กำหนดในคำสั่ง SELECT • SELECT DISTINCT FIRST_NAME FROM PEOPLE ;

  35. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • ผลลัพธ์ที่ได้ • SELECT DISTINCT FIRST_NAME FROM PEOPLE ;

  36. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • คำสั่ง DISTINCTROW เป็นคำสั่งที่มีหน้าที่เช่นเดียวกับ DISTINCTแต่การพิจารณาการซ้ำกันของข้อมูล จะพิจารณาจากค่าของทุก Field ใน Table เช่นตัวอย่างข้อมูล ตาราง PEOPLE ดังนี้

  37. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • ตาราง PEOPLE • SELECT DISTINCTROW * FROM PEOPLE;

  38. การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว การเลือกข้อมูลที่ซ้ำกันให้แสดงผลเพียงรายการเดียว • ผลลัพธ์ที่ได้

  39. การแสดงทุกรายการแม้มีข้อมูลซ้ำกัน การแสดงทุกรายการแม้มีข้อมูลซ้ำกัน • คำสั่ง ALL คู่กับคำสั่ง SELECT ตามตัวอย่างข้อมูล ตาราง PEOPLE ดังนี้

  40. การแสดงทุกรายการแม้มีข้อมูลซ้ำกัน การแสดงทุกรายการแม้มีข้อมูลซ้ำกัน • SELECT ALL * FROM PEOPLE;

  41. การเลือกข้อมูลจาก Relation ที่สัมพันธ์กัน • คำสั่งในกลุ่มนี้จะมีลักษณะเช่นเดียวกับคำสั่ง JOIN เลือกข้อมูลจาก 2 Relation หรือมากว่าที่มีความสัมพันธ์กันด้วย Foreign key ตามรูปแบบดังต่อไปนี้ • SELECT …… FROM Table1 ,Table2…. ] • [WHERE Table1.attribute1 = Table2.attribute2 [and ……..] • โดยที่ Table n หมายถึง ชื่อ Relation ที่เป็นเจ้าของ attribute ที่ทำหน้าที่เป็น Foreign Key และ Candidate Key • attribute n หมายถึง ชื่อ attribute ที่ทำหน้าที่เป็น Foreign key และ • Candidate key

  42. การเลือกข้อมูลจาก Relation ที่สัมพันธ์กัน • ตาราง Inventory • ตาราง Vender

  43. การเลือกข้อมูลจาก Relation ที่สัมพันธ์กัน • ให้นักศึกษาแสดงคำสั่งการ JOIN กันระหว่าง ตาราง Inventory กับตาราง Vender • SELECT P_CODE , P_DESCRIPT , ON_HAND, PRICE,VENDER.V_CODE , V_NAME • FROM INVENTORY , VENDER • WHERE INVENTORY.V_CODE = VENDER.V_CODE;

  44. การเลือกข้อมูลจาก Relation ที่สัมพันธ์กัน • ให้นักศึกษาแสดงชื่อผู้ผลิตสินค้าที่มีจำนวนในคลังสินค้ามากกว่า 150 • SELECT P_CODE , P_DESCRIPT , ON_HAND, PRICE,VENDER.V_CODE , V_NAME • FROM INVENTORY , VENDER • WHERE INVENTORY.V_CODE = VENDER.V_CODE AND ON_HAND > 150;

  45. การเรียงลำดับข้อมูล • ใช้คำสั่ง ORDER BY ดังรูปแบบดังนี้ • SELECT ……FROM .........WHERE ORDER BY attribute 1 [ASC| DESC] [,attribute 2 [ASC | DESC]] • [,…..attribute n [ASC | DESC]]; • โดยที่ attribute หมายถึง ชื่อ attribute ที่ต้องการให้ข้อมูลใน Relation เรียงตาม • เช่น แสดงสินค้าในคลังสินค้าเรียงตามจำนวนคลังสินค้า และรหัสสินค้าตามลำดับ จากน้อยไปมาก

  46. การเรียงลำดับข้อมูล • เช่น แสดงสินค้าในคลังสินค้าเรียงตามจำนวนคลังสินค้า และรหัสสินค้าตามลำดับ จากน้อยไปมาก • SELECT * FROM INVENTORY ORDER BY ON_HAND ASC , P_CODE ASC;

  47. การเรียงลำดับข้อมูล • เช่น แสดงสินค้าในคลังสินค้าเรียงตามจำนวนคลังสินค้า และรหัสสินค้าตามลำดับ จากมากไปน้อย • SELECT * FROM INVENTORY ORDER BY ON_HAND DESC , P_CODE DESC;

  48. ฟังก์ชันใน SQL • ฟังก์ชัน SUM ยกตัวอย่างเช่น จงหาผลรวมของจำนวนสินค้าทั้งหมดในคลังสินค้า จากตาราง INVENTORY • SELECT SUM (ON_HAND) FROM INVENTORY; • ยกตัวอย่างเช่น แสดงผลรวมของยอดคงคลังของสินค้าทั้งหมดในคลังสินค้า • SELECT DISTINCTROW SUM (UnitsInStock) AS SumOfUnitsInStock FROM PRODUCT;

  49. ฟังก์ชันใน SQL • ฟังก์ชัน COUNT ใช้สำหรับนับจำนวนแถว ที่มีค่าเป็นไปตามเงื่อนไขที่กำหนด ยกตัวอย่างเช่น แสดงจำนวนรายการสินค้าทั้งหมดในคลังสินค้า • SELECT COUNT (P_CODE) FROM INVENTORY; • ยกตัวอย่างเช่น แสดงจำนวนรายการสินค้าทั้งหมดในคลังสินค้า • SELECT DISTINCTROW COUNT (UnitsInStock) AS CountOfUnitsInStock FROM PRODUCT;

  50. ฟังก์ชันใน SQL • ฟังก์ชัน MIN ใช้สำหรับหาแถว ที่มีค่า Attribute ที่กำหนดน้อยที่สุด ยกตัวอย่างเช่น แสดงราคาต่ำสุดของสินค้าทั้งหมดในคลังสินค้า • SELECT MIN (PRICE) FROM INVENTORY; • ยกตัวอย่างเช่น แสดงราคาต่ำสุดของสินค้าทั้งหมดในคลังสินค้า • SELECT DISTINCTROW MIN (UnitsPrice) AS MinPrice FROM PRODUCT;

More Related