Skip to main content

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

Anonim

Structured Query Language (SQL) ให้ผู้ใช้ฐานข้อมูลที่มีความสามารถในการสร้างแบบสอบถามที่กำหนดเองเพื่อดึงข้อมูลจากฐานข้อมูล ในบทความก่อนหน้านี้เราได้สำรวจข้อมูลที่สกัดจากฐานข้อมูลโดยใช้แบบสอบถาม SQL SELECT ลองขยายการสนทนาและสำรวจว่าคุณสามารถใช้ข้อความค้นหาขั้นสูงเพื่อดึงข้อมูลที่ตรงกับเงื่อนไขเฉพาะได้อย่างไรลองพิจารณาตัวอย่างจากฐานข้อมูล Northwind ที่ใช้บ่อยๆซึ่งมักมาพร้อมกับผลิตภัณฑ์ฐานข้อมูลในรูปแบบการสอน

นี่เป็นข้อความที่ตัดตอนมาจากตารางผลิตภัณฑ์ของฐานข้อมูล:

ตารางผลิตภัณฑ์
ProductIDชื่อผลิตภัณฑ์SupplierIDQuantityPerUnitราคาต่อหน่วยUnitsInStock
1ชัย110 กล่อง x 20 ถุง18.0039
2ช้าง1ขวด 24 - 12 ออนซ์19.0017
3น้ำเชื่อมอะเกรัปชัน1ขวด 12 - 550 มล10.0013
4เครื่องปรุงรส Cajun ของ Chef Anton248 - 6 ออนซ์ขวด22.0053
5Chef Anton's Gumbo Mix2กล่อง 36 ชิ้น21.350
6การแพร่กระจาย Boysenberry ของยาย312 - 8 ออนซ์ขวด25.00120
7หมูแห้งอินทรีย์ของลุงบ๊อบ312 - 1 ปอนด์ pkgs30.0015

เงื่อนไขเขตแดนง่าย

ข้อ จำกัด แรกที่เราจะเสนอในแบบสอบถามของเราเกี่ยวข้องกับเงื่อนไขขอบเขตที่เรียบง่าย เราสามารถระบุสิ่งเหล่านี้ได้ในประโยค 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 ได้