CHARPTER 4 การสอบถามข้อมูลแบบมีเงื่อนไข ( SELECT WHERE )
สาระการเรียนรู้ 1.การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข 2.การเลือกข้อมูลโดยระบุหลาย ๆ เงื่อนไข ได้แก่ AND, OR, NOT 3.การเลือกข้อมูลที่ตรงตามชุดข้อมูลด้วย IN 4.เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND 5.เลือกข้อมูลที่ต้องการด้วยคำสั่ง LIKE 6. rtrtret
การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข ในบางครั้งการทำงานเราต้องการข้อมูลเฉพาะข้อมูลที่เราสนใจ อย่างเช่น ข้อมูลนักศึกษาชื่อ ที่อยู่ห้อง 6501 รายช่อนักศึกษาที่เรียนวิชา IT 3204 ในภาคเรียน ที่ 1 / 2546 หรือรายชื่อ อาจารย์ที่สอนวิชา IT 3203 เป็นต้น เพื่อคัดเลือกข้อมูลให้ตรง กับเงื่อนไข ต้องใช้ WHERE เข้ามาช่วยดังรูปแบบต่อไปนี้
การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข รูปแบบคำสั่ง SQL SELECT column1[, column2,…] or * FROM table-name WHERE condition; SELECT column เลือกคอลัมน์ที่เราต้องการ FROM table_name ชื่อตารางซึ่งเก็บขช้อมูลที่เราสนใจ WHERE ประโยคคำสั่งใช้กำหนดเงื่อนไขเพื่อเลือกเฉพาะแถว ที่ตรงกับเงื่อนไข Condition เงื่อนไชซึ่งใช้เลือกแถวที่ต้องการ มักจะเป็นการ เปรียบเทียบค่าของคอลัมน์กับค่าคงที่หรือค่าใน คอลัมน์
การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข ตัวดำเนินการเชิงเปรียบเทียบ (Comparison Operators) ในภาษา SQL
การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข ตัวอย่างที่ 4_1 จงทำการสอบถามข้อมูลจาก Database Northwind และให้ทำการสอบถามข้อมูลทั้งหมดในตาราง customers โดยมีเงื่อนไขแสดง ลูกค้าที่อยู่ London select * from customers; where city='london'; ผลลัพธ์
การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข ตัวอย่างที่ 4_2 จงทำการสอบถามข้อมูลจาก Database Northwind และให้ทำการสอบถามข้อมูลเฉพาะบาง Field ในตาราง customer โดยเลือกเลือกคอลัม รหัสลูกค้า, ชื่อลูกค้า โดยมีเงื่อนไขแสดง ลูกค้าที่อยู่ London SELECT customerid, companyname, city from customers where city='london';
การสอบถามข้อมูลด้วย SELECT แบบมีเงื่อนไข Exam 4_1 จงทำการสอบถามข้อมูลจาก Database Northwind และให้ทำการสอบถามข้อมูลทั้งหมด ในตาราง orders โดยอยากทราบว่า Filed order ID ‘10701’ ชื่อลูกค้าอะไรมีข้อมูลและพนักงานชื่ออะไร SELECT * from orders where orderid = 10270;
เลือกข้อมูลโดยระบุหลายเงื่อนไข บางครั้งอาจต้องการสอบถามข้อมูล โดยกำหนดเป็นหลายเงื่อนไข ซึ่งจะ สามารถแบ่งเป็น 3 กรณีดังนี้ การสอบถามข้อมูลจากการเชื่อมเงื่อนไขหลาย ๆเงื่อนไขด้วย AND การสอบถามข้อมูลจากการเชื่อมเงื่อนไขหลาย ๆเงื่อนไขด้วย OR การสอบถามข้อมูลด้วยการใช้ NOT กับเงื่อนไข
เลือกข้อมูลโดยระบุหลายเงื่อนไข กรณีที่ 1 ต้องการสอบถามข้อมูลที่ทุกเงื่อนไขเป็นจริงพร้อมกัน ให้เชื่อมด้วย AND ตัวอย่างที่ 4_3 จงทำการสอบถามในตาราง suppliers และสอบข้อมูลตัวแทนจำหน่วยที่ อยู่ London และ เมืองอยู่ที่ UK ทั้งหมดในตาราง suppliers SELECT * from suppliers where (city = 'london') and (country = 'uk'); ผลลัพธ์
เลือกข้อมูลโดยระบุหลายเงื่อนไข กรณีที่ 2 ต้องการสอบถามข้อมูลที่เงื่อนไขตัวใดตัวหนึ่งหรือทั้งหมดเป็นจริงให้เชื่อม ด้วย OR ตัวอย่างที่ 4_4 จงทำการสอบถามในตาราง suppliers และสอบข้อมูลตัวแทนจำหน่วยที่ อยู่ boston หรือ เมืองอยู่ที่ USA ทั้งหมดในตาราง suppliers SELECT * from suppliers where (city = 'boston') or (country = 'usa'); ผลลัพธ์
เลือกข้อมูลโดยระบุหลายเงื่อนไข กรณีที่ 3 สอบถามข้อมูลด้วยการใช้ NOT กับเงื่อนไข ตัวอย่างที่ 4_5 จงทำการสอบถามในตาราง suppliers และสอบข้อมูลตัวแทนจำลูกค้าที่ไม่ได้อยู่ใน USA select contactname, country from suppliers where not country = 'usa'; ผลลัพธ์
เลือกข้อมูลโดยระบุหลายเงื่อนไข ตาราง พิจารณาเปรียบเทียบสำหรับตัวดำเนินการเชิงเปรียบเทียบ
เลือกข้อมูลที่ตรงตามชุดข้อมูลด้วย IN นอกจากความสามารถที่กล่าวมาแล้วข้างต้น SQL ยังสามารถจัดการกับ ข้อมูลที่เป็นเซ็ตด้วยการใช้คำสงวน “IN” กำหนดเงื่อนไขในประโยคคำสั่งย่อย WHERE โดยมีรูปแบบ ดังนี้ SELECT <column-names> FROM <table-name> WHERE <column name> [NOT] IN (data set) ;
เลือกข้อมูลที่ตรงตามชุดข้อมูลด้วย IN ตัวอย่างที่ 4_6 จงทำการสอบถามข้อมูลจาก TABLE suppliers และสอบถามข้อมูลจาก Field city โดยเลือก LONDON, Berlin, Tokyo โดยใช้คำสั่ง IN SELECT * from suppliers where city in ('london','tokyo','berlin'); ผลลัพธ์
เลือกข้อมูลที่ตรงตามชุดข้อมูลด้วย IN กรณีที่ จะใช้คำสั่ง NOT IN ตัวอย่างที่ 4_7 จงทำการสอบถามข้อมูลจาก TABLEsuppliers และสอบถามข้อมูลจาก Field city โดยเลือกเมืองที่ไม่ใช่ LONDON, Berlin, Tokyo โดยใช้คำสั่ง IN SELECT * from suppliers where city not in ('london','tokyo','berlin');
เลือกข้อมูลที่ตรงตามชุดข้อมูลด้วย IN ผลลัพธ์
เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND ในการกำหนดเงื่อนไขเพื่อเลือกข้อมูลที่มีค่าเป็นช่วงระหว่างค่าหนึ่งกับอีก ค่าหนึ่ง ให้ใช่คำว่า BETWEEN และ NOT BETWEEN ในประโยคเงื่อนไข WHERE โดยมีรูปแบบดังนี้ SELECT <column-names> FROM <table-name> WHERE <column name> [NOT] BETWEEN <value-1> AND <value-2>;
เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND ตัวอย่างที่ 4_8 จงทำการสอบถามข้อมูลจาก TABLE product และสอบถามข้อมูลจาก Field Productname ,city โดยเลือกข้อมูลระหว่าง $18 - $30 SELECT productname, unitprice from products where unitprice between 18 and 30;
เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND ตัวอย่างที่ 4_9 จงทำการสอบถามข้อมูลจาก TABLE product และสอบถามข้อมูลจาก Field Productname ,city โดยเลือกข้อมูลระหว่าง $18 - $30 SELECT productname, unitprice from products where unitprice >=18 and unitprice <= 30;
เลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN…AND ผลลัพธ์
เลือกข้อมูลที่ต้องการด้วย LIKE คำสั่ง SQL สามารถกำหนดเงื่อนไขเพื่อเลือกข้อมูลที่มีรูปแบบตรงตามที่ กำหนด โดยใช้คำว่า “LIKE” และอักษร ‘_’ แทนอักษรใด ๆ 1 ตัวและ ‘%’ แทน อักษรใด ๆ 1 ตัว และ % แทนอักษรใด ๆ กี่ตัวก็ได้หรือไม่มีตัวอักษรที่ตำแหน่ง นั้น
เลือกข้อมูลที่ต้องการด้วย LIKE ตัวอย่างที่ 4_10 จงทำการสอบถามข้อมูลจาก TABLE suppliers และสอบถามข้อมูลจาก Field companyname ,country โดยเลือกเลือกข้อมูลเฉพาะที่ชอบ Germany SELECT companyname, country from suppliers where country like 'Germany'; ผลลัพธ์
THE END