ส่วนคำสั่ง SQL WHERE จะจำกัดจำนวนเร็กคอร์ดที่ส่งคืนหรือได้รับผลกระทบจากคำสั่ง ใช้กับส่วนคำสั่ง SELECT, UPDATE และ DELETE คุณสามารถใช้คีย์เวิร์ด AND เพื่อระบุหลายเงื่อนไขที่คุณต้องการให้เร็กคอร์ดได้รับผลกระทบจากคำสั่งของคุณตอบสนอง
คุณอาจต้องการกรองผลลัพธ์ของแบบสอบถามโดยใช้เงื่อนไขเฉพาะ ตัวอย่างเช่น คุณอาจต้องการรับรายชื่อพนักงานที่เป็นผู้จัดการฝ่ายขาย หรือคุณอาจต้องการค้นหาว่าใครเริ่มทำงานให้กับบริษัทหลังจากวันที่กำหนด
คุณสามารถใช้ส่วนคำสั่ง WHERE เพื่อกรองเร็กคอร์ดเฉพาะขณะรันคำสั่ง SQL คำสั่งนี้สามารถทำงานร่วมกับส่วนคำสั่ง SELECT, UPDATE และ DELETE ในคู่มือนี้ เราจะอธิบายวิธีใช้คำสั่ง WHERE เพื่อกรองระเบียนใน SQL
SQL WHERE ข้อ
ตัวกรองคำสั่ง SQL WHERE จะกรองเร็กคอร์ดที่ตรงตามเงื่อนไขเฉพาะ หรือชุดของเงื่อนไข ส่วนคำสั่ง WHERE จะอยู่หลังส่วนคำสั่ง “FROM” ในคำสั่ง SQL
นี่คือไวยากรณ์สำหรับคำสั่งนี้:
SELECT * FROM table WHERE column comparison value;
“ตาราง SELECT * FROM” เป็นคิวรีแบบใช้เลือกข้อมูลมาตรฐาน เราใช้คำสั่ง WHERE เพื่อจำกัดระเบียนที่แบบสอบถามของเราส่งคืน “คอลัมน์” หมายถึงคอลัมน์ที่ต้องปฏิบัติตามเงื่อนไข “การเปรียบเทียบ” และ “ค่า” แสดงถึงการเปรียบเทียบที่เราต้องการจะทำ
การเปรียบเทียบที่เป็นไปได้ ได้แก่ :
WHERE name == "Jeff"; WHERE age > 15; WHERE salary < 50000;
คุณสามารถระบุคำสั่ง WHERE ได้หลายรายการโดยใช้คีย์เวิร์ด SQL AND:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
SELECT * FROM ตาราง WHERE column1 comparison1 value1 AND column2 comparison2 value2;
มาดูตัวอย่างของคำสั่ง WHERE กัน
SQL โดยที่ ตัวอย่าง:SELECT
เราต้องการรับรายชื่อพนักงานที่เป็นพนักงานขายอาวุโส ในการทำเช่นนั้น เราสามารถใช้คำสั่ง SQL SELECT ต่อไปนี้:
SELECT name, title FROM employees WHERE title = 'Senior Sales Associate';
แบบสอบถามส่งคืนแถวต่อไปนี้ที่ตรงกับเกณฑ์ของเรา:
ชื่อ | ชื่อเรื่อง
——-+————
เจฟฟ์ | พนักงานขายอาวุโส
อดัม | พนักงานขายอาวุโส
(2 แถว)
พนักงานทั้งหมดข้างต้นมีตำแหน่ง “พนักงานขายอาวุโส”
ลองใช้ตัวอย่างอื่น สมมติว่าเราต้องการรับรายชื่อพนักงานทุกคนที่มีรายได้มากกว่า 35,000 ดอลลาร์ต่อปีและไม่ใช่อดัม เราสามารถใช้คำสั่ง SQL ต่อไปนี้:
SELECT name, salary FROM employees WHERE salary > 35000 AND name <> "Adam";
แบบสอบถามของเราส่งคืนรายการต่อไปนี้:
ชื่อ | เงินเดือน
——-+——–
เจฟฟ์ | 38000
เอ็มม่า | 50000
โยนาห์ | 50000
อดัม | 38000
(4 แถว)
ชื่อของอดัมไม่ได้อยู่ในผลงานของเราแม้ว่าเขาจะมีรายได้มากกว่า 35,000 ดอลลาร์ต่อปีก็ตาม เนื่องจากเรายกเว้นชื่อของเขาด้วยตัวดำเนินการ <> ในข้อความค้นหาของเรา
WHERE SQL Clause:อัปเดตและลบ
คำสั่ง SQL WHERE ทำงานกับคำสั่ง UPDATE และ DELETE.
ตัวอย่างเช่น สมมติว่าคุณต้องการอัปเดตชื่อสาขาที่พนักงานแต่ละคนทำงานหากมีการปรับโครงสร้างบริษัท คุณสามารถทำได้โดยใช้คำสั่ง UPDATE
เราต้องการเปลี่ยนสาขาของลุคจาก "บอสตัน" เป็น "เคมบริดจ์" ซึ่งสำนักงานใหม่ของเขาอาศัยอยู่ เราสามารถทำได้โดยใช้คำสั่ง SQL UPDATE:
UPDATE employees SET branch = 'Cambridge' WHERE name = 'Luke';
หากเราสอบถามเพื่อหาสาขาของลุค เราจะได้ชุดผลลัพธ์ดังต่อไปนี้:
ชื่อ | สาขา
——+———–
ลุค | เคมบริดจ์
(1 แถว)
เราสามารถใช้ WHERE clause กับคำสั่ง SQL DELETE ได้
สมมติว่าเราต้องการลบบันทึกของพนักงานทุกคนที่ทำงานที่สาขาของออลบานีซึ่งถูกปิดไปแล้ว เราสามารถทำได้โดยใช้คำสั่งต่อไปนี้:
เมื่อเราได้รับรายชื่อพนักงาน จำนวนแถวที่ส่งคืนคือหกแทนที่จะเป็นแปด:
DELETE FROM employees WHERE branch = 'Albany';
รหัสของเราส่งคืนหกแถว:
ชื่อ | สาขา
——–+—
ไมค์ | สแตมฟอร์ด
ฮันนาห์ | ซานฟรานซิสโก
เจฟฟ์ | ซานฟรานซิสโก
อเล็กซิส | บอสตัน
อดัม | ซาคราเมนโต
ลุค | เคมบริดจ์
(6 แถว)
ตัวดำเนินการ SQL
ส่วนคำสั่ง SQL WHERE ใช้ตัวดำเนินการเชิงตรรกะเพื่อกรองระเบียนออก ในตัวอย่างแรก เราใช้ตัวดำเนินการ "เท่ากับ" เพื่อตรวจสอบชื่อพนักงานขายอาวุโส
มีตัวดำเนินการเชิงตรรกะจำนวนหนึ่งที่เราสามารถใช้เพื่อกรองระเบียนออกเมื่อใช้ส่วนคำสั่ง ดังต่อไปนี้:
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
= | เท่ากับ | ชื่อไหน ='เจค' |
> | มากกว่า | อายุ> 20 |
< | น้อยกว่า | อายุ <20 |
>= | มากกว่าหรือเท่ากับ | เงินเดือน => 50000 |
<= | น้อยกว่าหรือเท่ากับ | เงินเดือน <=40000 |
ถูกใจ | การจับคู่รูปแบบ | ชื่อ LIKE 'โจ*' |
IN | ตรวจสอบว่าค่าที่ระบุตรงกับค่าใดๆ ในรายการหรือไม่ | title IN ('Sales Associate', 'Director of Sales') |
ระหว่าง | ตรวจสอบว่าค่าที่ระบุอยู่ภายในช่วงของค่าอื่นหรือไม่ | employee_month_awards ระหว่าง 1 ถึง 5 |
บทสรุป
ส่วนคำสั่ง SQL WHERE จะกรองเร็กคอร์ดที่ได้รับผลกระทบจากคำสั่ง คุณสามารถใช้ส่วนคำสั่ง WHERE ใน SQL กับคำสั่ง SELECT, UPDATE และ DELETE คุณสามารถระบุส่วนคำสั่ง WHERE ได้หลายส่วนโดยใช้คำสั่ง AND แต่คุณต้องใช้คีย์เวิร์ด WHERE เพียงครั้งเดียวเท่านั้น
ในบทช่วยสอนนี้ เราได้กล่าวถึงการสืบค้น ส่วนคำสั่ง SQL WHERE และวิธีใช้ส่วนคำสั่งย่อยในการดำเนินการอัปเดตหรือลบ เราได้พูดถึงตัวดำเนินการตามเงื่อนไขที่สามารถใช้กับประโยคนี้ได้
คุณสนใจที่จะเป็นนักพัฒนา SQL มืออาชีพหรือไม่? ดูคู่มือวิธีการเรียนรู้ SQL ของเรา คู่มือนี้ประกอบด้วยรายการทรัพยากรการเรียนรู้ชั้นนำที่จะช่วยให้คุณเชี่ยวชาญ SQL