เมื่อต้องการดึงข้อมูลจากฐานข้อมูล คำสั่งที่ใช้บ่อยที่สุดคือ 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');หากต้องการดูข้อมูลทุกคอลัมน์ของทุกแถวในตาราง ใช้คำสั่ง
SELECT *
FROM products;เหมาะสำหรับตรวจสอบข้อมูลหลังจากเพิ่มข้อมูลเข้าฐานข้อมูล หรือใช้ดูข้อมูลทั้งหมดภายในตาราง
หากไม่ต้องการแสดงข้อมูลทุกคอลัมน์ สามารถระบุชื่อคอลัมน์ที่ต้องการได้
SELECT product_name, price
FROM products;ผลลัพธ์จะแสดงเฉพาะชื่อสินค้าและราคา ทำให้ข้อมูลอ่านง่ายและประมวลผลได้เร็วขึ้น
ใช้แสดงข้อมูลที่ไม่ซ้ำกัน
SELECT DISTINCT category
FROM products;เหมาะสำหรับดูว่าภายในร้านมีสินค้ากี่ประเภท
ใช้กำหนดเงื่อนไขในการค้นหาข้อมูล
SELECT *
FROM products
WHERE price > 10000;จะแสดงเฉพาะสินค้าที่มีราคามากกว่า 10,000 บาท
ต้องเป็นจริงทุกเงื่อนไข
SELECT *
FROM products
WHERE category='Computer'
AND price < 30000;ตรงตามเงื่อนไขข้อใดข้อหนึ่งก็จะแสดงข้อมูล
SELECT *
FROM products
WHERE brand='Apple'
OR brand='Samsung';ใช้กลับค่าของเงื่อนไข
SELECT *
FROM products
WHERE NOT category='Accessory';ค้นหาข้อมูลในช่วงค่าที่กำหนด
SELECT *
FROM products
WHERE price BETWEEN 1000 AND 5000;ค้นหาหลายค่าในคอลัมน์เดียว
SELECT *
FROM products
WHERE category IN ('Computer','Mobile');ใช้ค้นหาข้อความ
ขึ้นต้นด้วยตัวอักษร 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%';เรียงข้อมูลจากราคาสูงสุดไปต่ำสุด
SELECT *
FROM products
ORDER BY price DESC;หรือเรียงจากน้อยไปมาก
SELECT *
FROM products
ORDER BY price ASC;เปลี่ยนชื่อหัวคอลัมน์
SELECT product_name AS ชื่อสินค้า,
price AS ราคา
FROM products;แสดงข้อมูลเฉพาะจำนวนที่ต้องการ
SELECT *
FROM products
LIMIT 5;นับจำนวนข้อมูล
SELECT COUNT(*) FROM products;ราคาสูงสุด
SELECT MAX(price) FROM products;ราคาต่ำสุด
SELECT MIN(price) FROM products;ราคาเฉลี่ย
SELECT AVG(price) FROM products;ราคารวม
SELECT SUM(price) FROM products;นับจำนวนสินค้าแต่ละประเภท
SELECT category,
COUNT(*) AS total
FROM products
GROUP BY category;กรองผลลัพธ์หลังจาก 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()
หากสามารถใช้คำสั่งเหล่านี้ได้อย่างคล่องแคล่ว จะช่วยให้การพัฒนาระบบฐานข้อมูลและเว็บไซต์มีประสิทธิภาพมากยิ่งขึ้น