SQL Where Clause

สวัสดีครับทุกท่าน เนื้อหาสัปดาห์นี้เราจะมาใช้ SQL ให้มีความสามารถมากยิ่งขึ้นด้วยการใช้ Where Clause ครับ โดยจะทำให้เราสามารถใช้เงื่อนไขต่างๆในการดึงข้อมูลด้วยภาษา SQL ได้นะครับ ติดตามกันได้จากบทความนี้กันนะครับ

 

วิธีการใช้ Where Clause

SELECT column1, column2, …

FROM table_name

WHERE condition

สิ่งที่น่าสนใจคือคำสั่ง WHERE นั่นเองครับ เพื่อบอกว่าเรากำลังจะใช้เงื่อนไขในการดึงข้อมูลอย่างไร โดยจะกำหนดเงื่อนไขในส่วน condition นั่นเองครับ โดยรูปแบบของ condition เป็นแบบนี้ครับ

Column name  Operator  ค่าที่ต้องการเทียบ

เช่น Customer_id = 5 โดยเทียบกับโครงสร้างได้ดังนี้

Column name >> Customer_id
Operator >> “=”
ค่าที่ต้องการเทียบ >> 5

ก็เป็นการบอกว่าเราต้องการข้อมูลเฉพาะ Customer_id ที่เป็น 5 เท่านั้น

โดย Operator ที่น่าสนใจและใช้บ่อยๆมีดังนี้ครับ

โดยเราจะมีตัวอย่างเป็นตารางลูกค้าดังนี้ครับ

 

Equal Operator (=)

โดยมาดูตัวอย่างการใช้งานกันนะครับ เริ่มด้วย Operator “=”

ซึ่งตัวอย่างจะเป็นการเขียน Code ด้านซ้ายและผลลัพธ์จะอยู่ด้านขวานะครับ

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า เฉพาะรหัสลูกค้า = C00001 นั่นเองครับ

 

Not Equal Operator (<>)

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า และอายุ โดยที่อายุไม่เท่ากับ 26 ครับ

 

Greater Operator (>)

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า และอายุ โดยที่อายุมากกว่า 25 ครับ

 

Greater or Eqaul Operator (>=)

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า และอายุ โดยที่อายุมากกว่าหรือเท่ากับ 25 ครับ

 

Less than Operator (<)

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า และอายุ โดยที่อายุน้อยกว่า 26 ครับ

 

Less than or Eqaul Operator (<)

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า และอายุ โดยที่อายุน้อยกว่าหรือเท่ากับ 26 ครับ

 

Between Operator (BETWEEN __ AND __)

ตัวอย่างนี้คือดึงข้อมูลรหัสลูกค้า และชื่อลูกค้า และอายุ โดยที่อายุอยู่ระหว่าง 20-26 (นับรวม 20 และ 26 ด้วย)

 

LIKE Operator

คำสั่ง LIKE นี้ไม่ใช่การกด like นะครับ 555 คำสั่งนี้ผมเดาว่าน่าจากมาจาก look like ที่ดูเหมือนกับว่าอย่างนั้นอย่างนี้ คำสั่ง LIKE นี้ เราต้องมีโครงสร้างว่าการเทียบข้อมูลเป็นการเทียบกับหน้าตาแบบไหน โดยจะมีตัวอักษรพิเศษ 2 ตัวที่ควรรู้สำหรับใช้ร่วมกับคำสั่ง LIKE นี้คือ

?  แทนตัวอักษรอะไรก็ได้ 1 ตัวอักษร

* แทนตัวอักษรอะไรก็ได้ กี่ตัวอักษรก็ได้ รวมไปถึงจะไม่มีตัวอักษรเลยก็ได้

มาดูตัวอย่างแรกกันนะครับ

อันนี้ผมใช้ like “*ย*” เพื่อเอาเฉพาะ CustomerName ที่มีตัวอักษร “ย” ต่ำแหน่งไหนก็ได้ใน CustomerName โดยแต่ละตัวอธิบายได้ดังนี้ครับ

ร่ำรวย >> ที่สามารถดึงออกมาได้เพราะมี ย อยู่ตัวสุดท้ายครับ โดยเงื่อนไขที่ว่าข้างหน้า ย แทนด้วย * ที่เป็นตัวอะไรก็ได้ กี่ตัวก็ได้ ทำให้ตรงกับเงื่อนไขอันแรก และ * อีกตัวที่อยู่หลัง ย นั้น ถึงแม้ว่า ร่ำรวย นั้น ตัว ย จะเป็นตัวอักษรสุดท้ายซึ่งไม่มีตัวอักษรต่อท้าย แต่ก็เข้าเงื่อนไข * ที่เป็นตัวอักษรอะไรก็ได้ กี่ตัวก็ได้ หรือจะไม่มีตัวอักษรเลยก็ใช้ได้ครับ มาดูอีกตัวอย่างหนึ่งกันครับ

ตัวอย่างนี้ผมเปลี่ยนมาใช้ like “?ย*” แทน ความหมายอันนี้คือ ผมต้องการตัวอักษรที่สองเป็น “ย” เท่านั้น ตัวแรกจะเป็นอะไรก็ได้ และหลังจาก ย จะเป็นอะไรก็ได้ ทำให้ผลลัพธ์ออกมาจึงได้เฉพาะ ขยัน เท่านั้น ที่ตรงเงื่อนไขนี้ครับ

จริงๆมียังมีตัวอักษรพิเศษที่ใช้คู่กับ like เช่น # แทนตัวเลขใดๆ 1 ตัว, [a-c] แทนตัวอักษร 1 ตัวเฉพาะ a – c เท่านั้น หรือ [!a-c] คือ แทนตัวอักษร 1 ตัวที่ไม่ใช่ a – c ซึ่งสามารถศึกษาเพิ่มเติมกันได้ครับ แต่หลักๆผมใช้แค่ ? และ * ก็ค่อนข้างครอบคลุมการใช้งานทั้งหมดแล้วครับ

IN Operator

ตัว IN operator นี้ใช้คู่กับ list ครับ โดย list เราจะต้องทำในรูปแบบ ( ___ , ___ , …) คือใส่ค่าและใช้ “,” เป็นตัวคั่นของแต่ละค่าและปิด list ด้วย “(” และ “)” ครับ ตัวอย่างนี้ผมอยากได้เป็น CustomerName ที่ชื่อ มั่งมี และ ขยัน ครับ จึงเขียนได้เป็น LIKE (“มั่งมี”,”ขยัน”) และได้ผลลัพธ์เฉพาะที่อยู่ใน list เท่านั้นครับ

 

สัปดาห์นี้ก็ลองฝึกเล่นกันดูนะครับ ว่าเราใส่เงื่อนไขแล้วข้อมูลที่ดึงออกมาได้ตรงตามที่ต้องการหรือไม่ หากมีข้อสงสัยหรือข้อเสนอแนะ สามารถพูดคุยกันได้ที่เพจ Ping2Share นะครับ แล้วพบกันใหม่ในบทความถัดไปครับ สวัสดีครับ

No Comments

Leave a Comment