Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

คำสั่ง SELECT ใน SQL Server

บทช่วยสอนนี้จะช่วยให้คุณใช้คำสั่ง 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% ที่เหลือจะไม่ถูกคืน