跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

SELECT: ดึงข้อมูลจาก Table ด้วยเงื่อนไข WHERE

SELECT: ดึงข้อมูลจาก Table ด้วยเงื่อนไข WHERE

ในบทที่แล้ว เราได้เรียนรู้วิธีการสร้าง Table และจัดการข้อมูลด้วย INSERT, UPDATE, และ DELETE ในบทนี้ เราจะมาเรียนรู้วิธีการดึงข้อมูลจาก Table โดยใช้คำสั่ง SELECT และกำหนดเงื่อนไข WHERE เพื่อกรองข้อมูลที่เราต้องการ ซึ่งเป็นหัวใจสำคัญของการใช้งานฐานข้อมูลเลยทีเดียว

คำสั่ง SELECT

คำสั่ง SELECT ใช้สำหรับดึงข้อมูลจาก Table ในรูปแบบพื้นฐานที่สุดคือ:

SELECT column1, column2, ... FROM table_name;

โดย column1, column2, ... คือชื่อคอลัมน์ที่เราต้องการดึงข้อมูล และ table_name คือชื่อของ Table ที่เราต้องการดึงข้อมูลจาก

ถ้าเราต้องการดึงข้อมูลทุกคอลัมน์ใน Table เราสามารถใช้เครื่องหมาย * (ดอกจัน) แทนชื่อคอลัมน์ทั้งหมดได้:

SELECT * FROM table_name;

ตัวอย่าง: สมมติว่าเรามี Table ชื่อ customers ที่มีคอลัมน์ id, name, และ email หากเราต้องการดึงข้อมูล name และ email ของลูกค้าทั้งหมด เราจะใช้คำสั่ง:

SELECT name, email FROM customers;

หากเราต้องการดึงข้อมูลทุกคอลัมน์ของลูกค้าทั้งหมด เราจะใช้คำสั่ง:

SELECT * FROM customers;

การใช้ WHERE Clause

WHERE Clause ใช้สำหรับกำหนดเงื่อนไขในการกรองข้อมูลที่เราต้องการดึงจาก Table รูปแบบการใช้งานคือ:

SELECT column1, column2, ... FROM table_name WHERE condition;

โดย condition คือเงื่อนไขที่เราต้องการใช้ในการกรองข้อมูล

ตัวอย่าง: หากเราต้องการดึงข้อมูลของลูกค้าที่มี id เท่ากับ 1 เราจะใช้คำสั่ง:

SELECT * FROM customers WHERE id = 1;

คำสั่งนี้จะดึงข้อมูลทุกคอลัมน์ของลูกค้าที่มี id เท่ากับ 1 เท่านั้น

Operators ใน WHERE Clause

WHERE Clause รองรับ Operators หลายประเภทที่ช่วยให้เรากำหนดเงื่อนไขได้อย่างหลากหลาย ดังนี้:

  • = (เท่ากับ): ใช้สำหรับเปรียบเทียบว่าค่าสองค่าเท่ากัน
  • > (มากกว่า): ใช้สำหรับเปรียบเทียบว่าค่าหนึ่งมากกว่าอีกค่าหนึ่ง
  • < (น้อยกว่า): ใช้สำหรับเปรียบเทียบว่าค่าหนึ่งน้อยกว่าอีกค่าหนึ่ง
  • >= (มากกว่าหรือเท่ากับ): ใช้สำหรับเปรียบเทียบว่าค่าหนึ่งมากกว่าหรือเท่ากับอีกค่าหนึ่ง
  • <= (น้อยกว่าหรือเท่ากับ): ใช้สำหรับเปรียบเทียบว่าค่าหนึ่งน้อยกว่าหรือเท่ากับอีกค่าหนึ่ง
  • <> หรือ != (ไม่เท่ากับ): ใช้สำหรับเปรียบเทียบว่าค่าสองค่าไม่เท่ากัน
  • LIKE: ใช้สำหรับเปรียบเทียบข้อมูลที่เป็นข้อความ โดยใช้ Wildcards

ตัวอย่างการใช้งาน Operators

สมมติว่าเรามี Table ชื่อ products ที่มีคอลัมน์ id, name, และ price

  • ดึงข้อมูลสินค้าที่มีราคามากกว่า 100 บาท:
  • SELECT * FROM products WHERE price > 100;
  • ดึงข้อมูลสินค้าที่มีราคาน้อยกว่าหรือเท่ากับ 50 บาท:
  • SELECT * FROM products WHERE price <= 50;
  • ดึงข้อมูลสินค้าที่มีชื่อขึ้นต้นด้วยตัวอักษร "A":
  • SELECT * FROM products WHERE name LIKE 'A%';

    ในตัวอย่างนี้ LIKE ใช้ร่วมกับ Wildcard % ซึ่งหมายถึง "อักขระใดๆ ก็ได้ จำนวนเท่าใดก็ได้" ดังนั้น 'A%' หมายถึง "ข้อความที่ขึ้นต้นด้วย 'A' แล้วตามด้วยอะไรก็ได้"

  • ดึงข้อมูลสินค้าที่มีชื่อลงท้ายด้วยตัวอักษร "e":
  • SELECT * FROM products WHERE name LIKE '%e';
  • ดึงข้อมูลสินค้าที่มีชื่อมีคำว่า "book" อยู่ตรงกลาง:
  • SELECT * FROM products WHERE name LIKE '%book%';
  • ดึงข้อมูลสินค้าที่มีชื่อยาว 5 ตัวอักษร:
  • SELECT * FROM products WHERE name LIKE '_____';

    ในตัวอย่างนี้ LIKE ใช้ร่วมกับ Wildcard _ (Underscore) ซึ่งหมายถึง "อักขระใดๆ ก็ได้ 1 ตัว" ดังนั้น '_____' หมายถึง "ข้อความที่มี 5 ตัวอักษร"

กรณีใช้งานจริงและข้อผิดพลาดที่พบบ่อย

กรณีใช้งานจริง: สมมติว่าคุณมี Table ชื่อ orders ที่มีข้อมูลการสั่งซื้อสินค้า ประกอบด้วยคอลัมน์ order_id, customer_id, order_date, และ total_amount คุณอาจต้องการ:

  • ดึงข้อมูลการสั่งซื้อทั้งหมดของลูกค้าที่มี customer_id เท่ากับ 123
  • SELECT * FROM orders WHERE customer_id = 123;
  • ดึงข้อมูลการสั่งซื้อที่เกิดขึ้นในช่วงเดือนมกราคม 2023 (สมมติว่า order_date เป็น Date type)
  • SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-01-31';
  • ดึงข้อมูลการสั่งซื้อที่มีมูลค่ารวมมากกว่า 500 บาท
  • SELECT * FROM orders WHERE total_amount > 500;

ข้อผิดพลาดที่พบบ่อย:

  • ลืมใส่ WHERE Clause: หากคุณต้องการกรองข้อมูล อย่าลืมใส่ WHERE Clause มิฉะนั้นคุณจะได้ข้อมูลทั้งหมดใน Table
  • ใช้ Operator ผิดประเภท: ตรวจสอบให้แน่ใจว่าคุณใช้ Operator ที่ถูกต้องสำหรับประเภทข้อมูลที่คุณกำลังเปรียบเทียบ เช่น ใช้ LIKE สำหรับข้อความ และ =, >, < สำหรับตัวเลข
  • สะกดชื่อคอลัมน์ผิด: ตรวจสอบให้แน่ใจว่าคุณสะกดชื่อคอลัมน์ถูกต้อง มิฉะนั้น PostgreSQL จะไม่สามารถหาคอลัมน์นั้นได้
  • การใช้ single quote (') และ double quote (") ผิด: โดยทั่วไป single quote ใช้สำหรับ literal string (ค่าคงที่ที่เป็นข้อความ) ในขณะที่ double quote ใช้สำหรับ identifier (ชื่อคอลัมน์, ชื่อ Table) หากคุณใช้ผิดประเภท อาจทำให้เกิดข้อผิดพลาดได้

ตัวอย่างข้อผิดพลาด:

-- ผิด: ลืม WHERE Clause
SELECT * FROM customers; -- จะดึงข้อมูลลูกค้าทั้งหมด

-- ผิด: ใช้ = กับ LIKE
SELECT * FROM products WHERE name = 'A%'; -- ผิด ควรใช้ LIKE

-- ผิด: สะกดชื่อคอลัมน์ผิด
SELECT * FROM customers WHERE emal = 'test@example.com'; -- ผิด ควรเป็น email

การใช้ SELECT และ WHERE Clause เป็นทักษะพื้นฐานที่สำคัญในการใช้งาน PostgreSQL การฝึกฝนและทำความเข้าใจ Operators ต่างๆ จะช่วยให้คุณสามารถดึงข้อมูลที่คุณต้องการได้อย่างมีประสิทธิภาพ ในบทถัดไป เราจะมาเรียนรู้เกี่ยวกับฟังก์ชัน Aggregate ที่จะช่วยให้เราสรุปข้อมูลจาก Table ได้

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务