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

คำสั่ง SQL WHERE: คู่มือกรองข้อมูล

Clause SQL WHERE จำกัดจำนวนเรคอร์ดที่คืนค่าหรือได้รับผลกระทบจากคำสั่ง ใช้กับ SELECT, UPDATE, และ DELETE clauses สามารถใช้คีย์เวิร์ด AND ระบุหลายเงื่อนไขที่ต้องการให้เรคอร์ดตรงตาม

คุณอาจต้องการกรองผลลัพธ์คิวรี่ด้วยเงื่อนไขเฉพาะ เช่น ต้องการรายชื่อพนักงานที่เป็นผู้จัดการขาย หรือต้องการรู้ว่าใครเริ่มทำงานหลังวันที่กำหนด

สามารถใช้ clause WHERE กรองเรคอร์ดเฉพาะขณะรันคำสั่ง SQL คำสั่งนี้ทำงานร่วมกับ SELECT, UPDATE, และ DELETE clauses ในคู่มือนี้ เราจะครอบคลุมวิธีใช้ WHERE clause กรองเรคอร์ดใน SQL

SQL WHERE Clause

Clause SQL WHERE กรองเรคอร์ดที่ตรงเงื่อนไขเฉพาะหรือชุดเงื่อนไข WHERE clause มาหลัง clause "FROM" ในคำสั่ง SQL

ไวยากรณ์:

SELECT * FROM table WHERE column comparison value;

"SELECT * FROM table" เป็นคิวรี่ select มาตรฐาน เราใช้ WHERE statement จำกัดเรคอร์ดที่คิวรี่คืน "column" หมายถึงคอลัมน์ที่เงื่อนไขต้องตรง "comparison" และ "value" แทนการเปรียบเทียบที่ต้องการ

ตัวเปรียบเทียบที่เป็นไปได้:

WHERE name == "Jeff"; WHERE age > 15; WHERE salary < 50000;

สามารถระบุหลาย WHERE statements ด้วยคีย์เวิร์ด SQL AND:

SELECT * FROM table WHERE column1 comparison1 value1 AND column2 comparison2 value2;

ตัวอย่าง SQL WHERE: SELECT

ต้องการรายชื่อพนักงานที่เป็น Senior Sales Associate ใช้คำสั่ง SQL SELECT:

SELECT name, title FROM employees WHERE title = 'Senior Sales Associate';

คิวรี่คืนแถวที่ตรงเงื่อนไข:

 name  |     title          

——-+————————

 Geoff | Senior Sales Associate

 Adam  | Senior Sales Associate

(2 แถว)

พนักงานทั้งสองมีตำแหน่ง "Senior Sales Associate"

ตัวอย่างอีกอย่าง: ต้องการพนักงานที่เงินเดือนเกิน $35,000 และชื่อไม่ใช่ Adam ใช้คำสั่ง:

SELECT name, salary FROM employees WHERE salary > 35000 AND name <> "Adam";

ผลลัพธ์:

 name  | salary 

——-+——–

 Geoff |  38000

 Emma  | 50000

 Jonah |  50000

 Adam  | 38000

(4 แถว)

ชื่อ Adam ไม่อยู่ในผลลัพธ์ แม้เงินเดือนเกิน $35,000 เพราะเรากรองชื่อเขาออกด้วย operator <>

WHERE SQL Clause: Update และ Delete

SQL WHERE clause ทำงานกับ UPDATE และ DELETE statements

เช่น ต้องการอัปเดตชื่อสาขาที่พนักงานทำงาน หากมีการปรับโครงสร้างองค์กร ใช้ UPDATE statement

ต้องการเปลี่ยนสาขาของ Luke จาก "Boston" เป็น "Cambridge" ที่สำนักงานใหม่ ใช้ SQL UPDATE:

UPDATE employees SET branch = 'Cambridge' WHERE name = 'Luke';

ถ้าสืบค้นสาขาของ Luke ได้ผลลัพธ์:

 name |  branch   

——+———–

 Luke | Cambridge

(1 แถว)

สามารถใช้ WHERE clause ร่วมกับ SQL DELETE command

สมมติต้องการลบเรคอร์ดพนักงานทุกคนในสาขา Albany ที่ปิดทำการ ใช้คำสั่ง:

DELETE FROM employees WHERE branch = 'Albany';

เมื่อดูรายชื่อพนักงาน จำนวนแถวเหลือ 6 จากเดิม 8:

  name  | branch     

——–+—————

 Mike   | Stamford

 Hannah | San Francisco

 Geoff  | San Francisco

 Alexis | Boston

 Adam   | Sacramento

 Luke   | Cambridge

(6 แถว)

SQL Operators (ตัวดำเนินการ)

SQL WHERE clause ใช้ logical operators กรองเรคอร์ด ในตัวอย่างแรก เราใช้ operator "เท่ากับ" (is equal to) ตรวจสอบชื่อ Senior Sales Associates

มี logical operators หลายตัวสำหรับกรองเรคอร์ดกับ clause นี้:

OperatorDescriptionExample
=เท่ากับ (Is equal to)WHERE name = ‘Jake’
>มากกว่า (Is greater than)age > 20
<น้อยกว่า (Is less than)age < 20
>=มากกว่าหรือเท่ากับ (Greater than or equal to)salary >= 50000
<=น้อยกว่าหรือเท่ากับ (Less than or equal to)salary <= 40000
LIKEจับคู่รูปแบบ (Pattern matching)name LIKE ‘Jo*’
INตรวจสอบค่าที่ตรงกับรายการ (Check if value matches any in list)title IN (‘Sales Associate’, ‘Director of Sales’)
BETWEENตรวจสอบค่าอยู่ในช่วง (Check if value within range)employee_month_awards BETWEEN 1 AND 5

สรุป

Clause SQL WHERE กรองเรคอร์ดที่ได้รับผลกระทบจากคำสั่ง ใช้กับ SELECT, UPDATE, และ DELETE statements สามารถระบุหลาย WHERE clauses ด้วย AND statement แต่ต้องใช้คีย์เวิร์ด WHERE เพียงครั้งเดียว

ในบทช่วยสอนนี้ เราครอบคลุมคิวรี่ SQL WHERE clauses และวิธีใช้ใน update หรือ delete operation พร้อมตัวดำเนินการเงื่อนไขที่ใช้กับ clause นี้

สนใจเป็น SQL developer มืออาชีพ? ดูคู่มือ How to Learn SQL ของเรา มีรายการแหล่งเรียนรู้ชั้นนำช่วยคุณเชี่ยวชาญ SQL