บทช่วยสอนนี้จะช่วยให้คุณใช้คำสั่ง SELECT ของ SQL Server (T-SQL) ด้วยไวยากรณ์และตัวอย่าง
SELECT เป็นคำสั่งที่ใช้ดึงผลลัพธ์จากตารางหนึ่งหรือหลายตารางในฐานข้อมูล SQL Server
ไวยากรณ์คำสั่ง SELECT
ในรูปแบบง่าย ไวยากรณ์ของคำสั่ง SELECT คือดังนี้:
SELECT 'bieuthuc'
FROM 'bang'
[WHERE 'dieu_kien'];
ในรูปแบบเต็ม ไวยากรณ์ของคำสั่ง SELECT ใน SQL Server จะเป็น:
SELECT [ALL | DISTINCT] [TOP (gia_tri_dau) [PERCENT] [WITH TIES]] 'bieuthuc' FROM 'bang' [WHERE 'dieu_kien'] [GROUP BY 'bieuthuc'] [HAVING 'dieu_kien'] [ORDER BY 'bieuthuc' [ASC | DESC]];
ชื่อตัวแปรหรือค่าตัวแปร
ALL - ตัวเลือก คืนรายการที่ตรงกันทั้งหมด
DISTINCT - ตัวเลือก ลบค่าซ้ำออกจากชุดผลลัพธ์
TOP (gia_tri_dau) - ตัวเลือก หากระบุ จะคืนค่าแรกในชุดผลลัพธ์ตาม gia_tri_dau ที่เลือก เช่น TOP (10) คืน 10 แถวแรก
PERCENT - ตัวเลือก หากระบุ แถวแรกจะคำนวณจากเปอร์เซ็นต์ของชุดผลลัพธ์ (ตาม gia_tri_dau) เช่น TOP (10) PERCENT คืน 10% แรก
WITH TIES - ตัวเลือก หากระบุ แถวที่ผูกมัดที่ท้ายของผลลัพธ์ที่จำกัดจะถูกคืน อาจทำให้คืนแถวมากกว่าที่ TOP อนุญาต
Bieuthuc - คอลัมน์หรือค่าที่คำนวณได้ที่ต้องการดึง ใช้ * หากต้องการทุกคอลัมน์
Bang - ตารางที่ต้องการดึงผลลัพธ์ ต้องมีตารางอย่างน้อย 1 ตารางในคำสั่ง FROM
WHERE 'dieu_kien' - ตัวเลือก เงื่อนไขที่ผลลัพธ์ที่คืนต้องตรงตาม
GROUP BY 'bieuthuc' - ตัวเลือก รวมข้อมูลจากหลายระเบียนและจัดกลุ่มผลลัพธ์ในคอลัมน์หนึ่งหรือมากกว่า
HAVING 'dieu_kien' - ตัวเลือก ใช้ร่วมกับ GROUP BY เพื่อจำกัดกลุ่มแถวที่คืนเมื่อเงื่อนไขเป็น TRUE
ORDER BY 'bieuthuc' - ตัวเลือก ใช้จัดเรียงชุดผลลัพธ์ ASC เรียงเพิ่ม DESC เรียงลด
ตัวอย่าง - เลือกทุกฟิลด์ในตาราง
SELECT * FROM hangtonkho WHERE soluong > 5 ORDER BY hangtonkho_id ASC;
ในตัวอย่างนี้ * ใช้ระบุว่าทุกฟิลด์ของ hangtonkho ที่มี soluong มากกว่า 5 ในตาราง hangtonkho ชุดผลลัพธ์จัดเรียงตาม hangtonkho_id เพิ่ม
ตัวอย่าง - เลือกบางฟิลด์ในตาราง
SELECT hangtonkho_id, hangtonkho_type, soluong FROM hangtonkho WHERE hangtonkho_id >= 555 AND hangtonkho_type = 'phanmem' ORDER BY soluong DESC, hangtonkho_id ASC;
ในตัวอย่างข้างต้น ผลลัพธ์ที่คืนจะรวมเฉพาะ ID, ประเภท และจำนวน (hangtonkho_id, hangtonkho_type และ soluong) ของสินค้าคงคลังจากตาราง hangtonkho โดยที่ ID มากกว่าหรือเท่ากับ 555 ประเภทคือ 'phanmem' ผลลัพธ์จัดเรียงตามจำนวนลด และ ID เพิ่ม
ตัวอย่าง - เลือกจากหลายตาราง
SELECT hangtonkho.hangtonkho_id, sanpham.sanpham_ten, hangtonkho.soluong FROM hangtonkho INNER JOIN sanpham ON hangtonkho.sanpham_id = sanpham.sanpham_id ORDER BY hangtonkho_id;
ในตัวอย่างนี้ ชุดผลลัพธ์มาจากสองตารางเพื่อผลิต hangtonkho_id, sanpham_ten และ soluong กรณีที่ sanpham_id ในตาราง hangtonkho และแผงต้องเหมือนกัน ผลลัพธ์จัดเรียงตาม hangtonkho_id เพิ่ม
ตัวอย่าง - ใช้คีย์เวิร์ด TOP
SELECT TOP (3) hangtonkho_id, hangtonkho_type, soluong FROM hangtonkho WHERE hangtonkho_type = 'phanmem' ORDER BY hangtonkho_id ASC;
ในตัวอย่างนี้ ผลลัพธ์จะคืน 3 ค่าแรกจากตาราง hangtonkho ที่ประเภทสินค้าคงคลังเป็น 'phanmem' หากมีค่าอื่นตรงตามเงื่อนไข จะไม่ถูกคืน
ตัวอย่าง - ใช้คีย์เวิร์ด TOP PERCENT
SELECT TOP (10) PERCENT hangtonkho_id, hangtonkho_type, soluong FROM hangtonkho WHERE hangtonkho_type = 'phanmem' ORDER BY hangtonkho_id ASC;
ผลลัพธ์ที่คืนจะประกอบด้วย 10% ของค่าแรกในสินค้าคงคลัง 'phanmem' ในตาราง hangtonkho 90% ที่เหลือจะไม่ถูกคืน