แนะนำเงื่อนไข WHERE และเงื่อนไข BETWEEN
Structured Query Language (SQL) ให้ผู้ใช้ฐานข้อมูลที่มีความสามารถในการสร้างแบบสอบถามที่กำหนดเองเพื่อดึงข้อมูลจากฐานข้อมูล ในบทความก่อนหน้านี้เราได้สำรวจ ข้อมูลที่สกัดจากฐานข้อมูลโดยใช้แบบสอบถาม SQL SELECT ลองขยายการสนทนาและสำรวจว่าคุณสามารถใช้ ข้อความค้นหา ขั้นสูงเพื่อดึงข้อมูลที่ตรงกับเงื่อนไขเฉพาะได้อย่างไร
ลองพิจารณาตัวอย่างจากฐานข้อมูล Northwind ที่ใช้บ่อยๆซึ่งมักมาพร้อมกับผลิตภัณฑ์ฐานข้อมูลในรูปแบบการสอน
นี่เป็นข้อความที่ตัดตอนมาจากตารางผลิตภัณฑ์ของฐานข้อมูล:
ProductID | ชื่อผลิตภัณฑ์ | SupplierID | QuantityPerUnit | ราคาต่อหน่วย | UnitsInStock |
---|---|---|---|---|---|
1 | ชัย | 1 | 10 กล่อง x 20 ถุง | 18.00 | 39 |
2 | ช้าง | 1 | ขวด 24 - 12 ออนซ์ | 19.00 | 17 |
3 | น้ำเชื่อมอะเกรัปชัน | 1 | ขวด 12 - 550 มล | 10.00 | 13 |
4 | เครื่องปรุงรส Cajun ของ Chef Anton | 2 | 48 - 6 ออนซ์ขวด | 22.00 | 53 |
5 | Chef Anton's Gumbo Mix | 2 | กล่อง 36 ชิ้น | 21.35 | 0 |
6 | การแพร่กระจาย Boysenberry ของยาย | 3 | 12 - 8 ออนซ์ขวด | 25.00 | 120 |
7 | หมูแห้งอินทรีย์ของลุงบ๊อบ | 3 | 12 - 1 ปอนด์ pkgs | 30.00 | 15 |
เงื่อนไขเขตแดนง่าย
ข้อ จำกัด แรกที่เราจะเสนอในแบบสอบถามของเราเกี่ยวข้องกับเงื่อนไขขอบเขตที่เรียบง่าย เราสามารถระบุสิ่งเหล่านี้ได้ในประโยค WHERE ของแบบสอบถาม SELECT โดยใช้เงื่อนไขเงื่อนไขที่เรียบง่ายที่สร้างขึ้นด้วยตัวดำเนินการมาตรฐานเช่น <,>,> =, and <=.
อันดับแรกให้ลองแบบสอบถามง่ายๆที่ช่วยให้เราสามารถแยกรายการผลิตภัณฑ์ทั้งหมดในฐานข้อมูลที่มีมูลค่าหน่วยได้มากกว่า 20.00:
นี่เป็นรายการสี่ผลิตภัณฑ์ดังที่แสดงด้านล่าง:
ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun Seasoning 22.00 ยายของ Boysenberry Spread 25.00 หมูแห้งอินทรีย์ของลุงบ๊อบ 30.00นอกจากนี้เรายังสามารถใช้คำสั่ง WHERE ที่มีค่าสตริง นี่เท่ากับตัวอักษรเป็นตัวเลขโดย A แทนค่า 1 และ Z แทนค่า 26 ตัวอย่างเช่นเราสามารถแสดงผลิตภัณฑ์ทั้งหมดที่มีชื่อเริ่มต้นด้วย U, V, W, X, Y หรือ Z โดยใช้แบบสอบถามต่อไปนี้:
SELECT ProductName FROM products WHERE ProductName> = 'T'ซึ่งก่อให้เกิดผลลัพธ์:
ProductName ------- หมูแห้งอินทรีย์ของลุงบ๊อบการแสดงช่วงโดยใช้ขอบเขต
ประโยค WHERE ยังช่วยให้เราสามารถใช้เงื่อนไขช่วงบนค่าโดยใช้เงื่อนไขหลายเงื่อนไข ตัวอย่างเช่นหากเราต้องการใช้ข้อความค้นหาของเราด้านบนและ จำกัด ผลลัพธ์ให้กับผลิตภัณฑ์ที่มีราคาระหว่าง 15.00 ถึง 20.00 น. เราสามารถใช้ข้อความค้นหาต่อไปนี้:
SELECT ProductName, UnitPrice จากผลิตภัณฑ์ WHERE UnitPrice> 15.00 และ UnitPrice <20.00ผลลัพธ์นี้แสดงผลด้านล่าง:
ProductName UnitPrice ------- -------- Chai 18.00 น. Chang 19.00แสดงช่วงด้วย BETWEEN
SQL ยังมีทางลัดระหว่างไวยากรณ์ซึ่งจะช่วยลดจำนวนเงื่อนไขที่เราต้องรวมและทำให้การสืบค้นข้อมูลสามารถอ่านได้มากขึ้น ตัวอย่างเช่นแทนที่จะใช้สองเงื่อนไข WHERE ข้างต้นเราสามารถแสดงข้อความค้นหาเดียวกันได้เช่น:
SELECT ProductName, UnitPrice FROM products WHERE ราคาหน่วยระหว่าง 15.00 ถึง 20.00เช่นเดียวกับข้อตกลงเงื่อนไขอื่น ๆ ของเรา BETWEEN จะทำงานร่วมกับค่าสตริงด้วยเช่นกัน ถ้าเราต้องการสร้างรายชื่อประเทศทั้งหมดที่ขึ้นต้นด้วย V, W หรือ X เราจะใช้แบบสอบถาม:
SELECT ProductName FROM products WHERE ProductName ระหว่าง "A" และ "D"ซึ่งก่อให้เกิดผลลัพธ์:
ProductName ------- Aniseed Syrup Chai Chef Anton's Gumbo ผสมเชฟแอนตันของ Cajun Seasoningประโยค WHERE เป็นส่วนที่มีประสิทธิภาพของภาษา SQL ที่ช่วยให้คุณสามารถ จำกัด ผลลัพธ์ให้อยู่ในค่าที่อยู่ในช่วงที่ระบุ เป็นเรื่องปกติที่ใช้เพื่อช่วยในการแสดงออกทางธุรกิจและควรเป็นส่วนหนึ่งของชุดเครื่องมือของฐานข้อมูลทุกเครื่อง
มักเป็นประโยชน์ในการรวมข้อทั่วไปเข้ากับ กระบวนงานที่เก็บไว้ เพื่อให้สามารถเข้าถึงผู้ที่ไม่มีความรู้เกี่ยวกับ SQL ได้