Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

คำสั่ง SQL WHERE:A How-To Guide

ส่วนคำสั่ง 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