การเลือกข้อมูลภายในช่วงใน SQL

แนะนำเงื่อนไข 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:

SELECT ProductName, UnitPrice FROM ผลิตภัณฑ์ WHERE UnitPrice> 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 ได้