• ติดตามบน
เรียนรู้คำสั่ง SELECT ในภาษา SQL พร้อมตัวอย่างใช้งานจริง (MySQL)

เรียนรู้คำสั่ง SELECT ในภาษา SQL พร้อมตัวอย่างใช้งานจริง (MySQL)

Chalothorn Kosakul 14 กรกฎาคม 2569 38 ครั้ง

เรียนรู้คำสั่ง SELECT ในภาษา SQL พร้อมตัวอย่างใช้งานจริง (MySQL)

SELECT คืออะไร

เมื่อต้องการดึงข้อมูลจากฐานข้อมูล คำสั่งที่ใช้บ่อยที่สุดคือ SELECT ซึ่งเป็นคำสั่งพื้นฐานที่นักพัฒนาระบบ นักวิเคราะห์ข้อมูล และผู้ดูแลฐานข้อมูลทุกคนต้องใช้งานเป็นประจำ

คำสั่ง SELECT ใช้สำหรับเรียกดูข้อมูลจากตารางฐานข้อมูล โดยสามารถกำหนดเงื่อนไข การจัดเรียงข้อมูล การจัดกลุ่มข้อมูล รวมถึงการคำนวณข้อมูลได้ในคำสั่งเดียว

ตัวอย่างโครงสร้างของคำสั่ง SELECT

SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE เงื่อนไข
GROUP BY ชื่อคอลัมน์
HAVING เงื่อนไข
ORDER BY ชื่อคอลัมน์;

บทความนี้จะใช้ฐานข้อมูล ShopDB ซึ่งเป็นระบบร้านค้าออนไลน์ขนาดเล็ก เพื่อให้นักเรียนและนักศึกษาสามารถทดลองเขียนคำสั่ง SQL ได้จริง


สร้างฐานข้อมูล

CREATE DATABASE ShopDB;
USE ShopDB;

สร้างตารางสินค้า

CREATE TABLE products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(100),
    category VARCHAR(50),
    price DECIMAL(10,2),
    stock INT,
    brand VARCHAR(50),
    created_date DATE
);

เพิ่มข้อมูลตัวอย่าง

INSERT INTO products(product_name,category,price,stock,brand,created_date) VALUES
('Notebook Acer Aspire 5','Computer',18900,15,'Acer','2026-01-15'),
('Notebook ASUS Vivobook','Computer',20900,10,'ASUS','2026-01-18'),
('MacBook Air M4','Computer',37900,8,'Apple','2026-02-01'),
('iPhone 17','Mobile',42900,20,'Apple','2026-02-10'),
('Samsung Galaxy S26','Mobile',35900,18,'Samsung','2026-02-15'),
('Xiaomi Redmi Note 15','Mobile',8990,25,'Xiaomi','2026-03-01'),
('Logitech Mouse M185','Accessory',350,80,'Logitech','2026-03-05'),
('Logitech Keyboard K120','Accessory',490,60,'Logitech','2026-03-05'),
('HP Printer 315','Printer',4590,12,'HP','2026-03-10'),
('Canon G3730','Printer',5990,9,'Canon','2026-03-12'),
('Flash Drive 64GB','Storage',290,120,'Sandisk','2026-03-15'),
('SSD Kingston 1TB','Storage',2590,30,'Kingston','2026-03-18'),
('External HDD 2TB','Storage',3290,18,'Seagate','2026-03-20'),
('Gaming Monitor 27"','Monitor',7990,16,'MSI','2026-04-01'),
('Office Monitor 24"','Monitor',3990,22,'LG','2026-04-02'),
('Gaming Chair','Furniture',4990,14,'Nubwo','2026-04-05'),
('Office Desk','Furniture',3500,11,'Index','2026-04-06'),
('USB Hub','Accessory',450,55,'Ugreen','2026-04-10'),
('Webcam HD','Accessory',890,35,'Logitech','2026-04-12'),
('Bluetooth Speaker','Audio',1290,28,'JBL','2026-04-15');

1. แสดงข้อมูลทั้งหมดด้วย SELECT *

หากต้องการดูข้อมูลทุกคอลัมน์ของทุกแถวในตาราง ใช้คำสั่ง

SELECT *
FROM products;

เหมาะสำหรับตรวจสอบข้อมูลหลังจากเพิ่มข้อมูลเข้าฐานข้อมูล หรือใช้ดูข้อมูลทั้งหมดภายในตาราง


2. เลือกเฉพาะคอลัมน์ที่ต้องการ

หากไม่ต้องการแสดงข้อมูลทุกคอลัมน์ สามารถระบุชื่อคอลัมน์ที่ต้องการได้

SELECT product_name, price
FROM products;

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


3. SELECT DISTINCT

ใช้แสดงข้อมูลที่ไม่ซ้ำกัน

SELECT DISTINCT category
FROM products;

เหมาะสำหรับดูว่าภายในร้านมีสินค้ากี่ประเภท


4. WHERE

ใช้กำหนดเงื่อนไขในการค้นหาข้อมูล

SELECT *
FROM products
WHERE price > 10000;

จะแสดงเฉพาะสินค้าที่มีราคามากกว่า 10,000 บาท


5. AND

ต้องเป็นจริงทุกเงื่อนไข

SELECT *
FROM products
WHERE category='Computer'
AND price < 30000;

6. OR

ตรงตามเงื่อนไขข้อใดข้อหนึ่งก็จะแสดงข้อมูล

SELECT *
FROM products
WHERE brand='Apple'
OR brand='Samsung';

7. NOT

ใช้กลับค่าของเงื่อนไข

SELECT *
FROM products
WHERE NOT category='Accessory';

8. BETWEEN

ค้นหาข้อมูลในช่วงค่าที่กำหนด

SELECT *
FROM products
WHERE price BETWEEN 1000 AND 5000;

9. IN

ค้นหาหลายค่าในคอลัมน์เดียว

SELECT *
FROM products
WHERE category IN ('Computer','Mobile');

10. LIKE

ใช้ค้นหาข้อความ

ขึ้นต้นด้วยตัวอักษร G

SELECT *
FROM products
WHERE product_name LIKE 'G%';

มีคำว่า Mouse

SELECT *
FROM products
WHERE product_name LIKE '%Mouse%';

ลงท้ายด้วย Air

SELECT *
FROM products
WHERE product_name LIKE '%Air%';

11. ORDER BY

เรียงข้อมูลจากราคาสูงสุดไปต่ำสุด

SELECT *
FROM products
ORDER BY price DESC;

หรือเรียงจากน้อยไปมาก

SELECT *
FROM products
ORDER BY price ASC;

12. Alias (AS)

เปลี่ยนชื่อหัวคอลัมน์

SELECT product_name AS ชื่อสินค้า,
price AS ราคา
FROM products;

13. LIMIT

แสดงข้อมูลเฉพาะจำนวนที่ต้องการ

SELECT *
FROM products
LIMIT 5;

14. Aggregate Function

นับจำนวนข้อมูล

SELECT COUNT(*) FROM products;

ราคาสูงสุด

SELECT MAX(price) FROM products;

ราคาต่ำสุด

SELECT MIN(price) FROM products;

ราคาเฉลี่ย

SELECT AVG(price) FROM products;

ราคารวม

SELECT SUM(price) FROM products;

15. GROUP BY

นับจำนวนสินค้าแต่ละประเภท

SELECT category,
COUNT(*) AS total
FROM products
GROUP BY category;

16. HAVING

กรองผลลัพธ์หลังจาก GROUP BY

SELECT category,
COUNT(*) AS total
FROM products
GROUP BY category
HAVING COUNT(*) > 2;

สรุป

คำสั่ง SELECT เป็นพื้นฐานสำคัญของภาษา SQL เพราะใช้สำหรับค้นหาและวิเคราะห์ข้อมูลจากฐานข้อมูล ไม่ว่าจะเป็นการกรองข้อมูลด้วย WHERE การค้นหาข้อความด้วย LIKE การจัดเรียงข้อมูลด้วย ORDER BY หรือการสรุปข้อมูลด้วย GROUP BY และฟังก์ชัน COUNT(), SUM(), AVG(), MAX() และ MIN()

หากสามารถใช้คำสั่งเหล่านี้ได้อย่างคล่องแคล่ว จะช่วยให้การพัฒนาระบบฐานข้อมูลและเว็บไซต์มีประสิทธิภาพมากยิ่งขึ้น
ELECT Cheat Sheet


แบบฝึกหัดท้ายบท

  1. แสดงข้อมูลสินค้าทั้งหมด
  2. แสดงเฉพาะชื่อสินค้าและราคา
  3. แสดงประเภทสินค้าที่ไม่ซ้ำกัน
  4. แสดงสินค้าที่มีราคามากกว่า 15,000 บาท
  5. แสดงสินค้าระหว่างราคา 3,000 - 8,000 บาท
  6. แสดงสินค้ายี่ห้อ Apple
  7. แสดงสินค้าที่ไม่ใช่หมวด Accessory
  8. แสดงสินค้าที่ชื่อขึ้นต้นด้วยตัวอักษร G
  9. แสดงสินค้าที่มีคำว่า Monitor อยู่ในชื่อ
  10. เรียงข้อมูลจากราคาสูงสุดไปต่ำสุด
  11. นับจำนวนสินค้าทั้งหมด
  12. หาราคาเฉลี่ยของสินค้า
  13. หาสินค้าที่มีราคาสูงสุด
  14. นับจำนวนสินค้าในแต่ละประเภท
  15. แสดงเฉพาะประเภทสินค้าที่มีจำนวนสินค้ามากกว่า 2 รายการ
บทเรียนถัดไป: เรียนรู้การเชื่อมโยงข้อมูลจากหลายตารางด้วยคำสั่ง JOIN ในภาษา SQL (MySQL) เพื่อดึงข้อมูลที่มีความสัมพันธ์กันมาแสดงผลอย่างมีประสิทธิภาพ ซึ่งเป็นพื้นฐานสำคัญในการพัฒนาระบบฐานข้อมูลและการสร้างแอปพลิเคชันที่ใช้งานฐานข้อมูลจริง

แชร์บทความนี้