บทช่วยสอนนี้จะช่วยให้คุณใช้คำสั่ง SQL Server SELECT (T-SQL) พร้อมไวยากรณ์และตัวอย่าง
SELECT คือคำสั่งที่ใช้ในการดึงผลลัพธ์จากตารางอย่างน้อยหนึ่งตารางในฐานข้อมูล SQL Server
คำสั่ง SELECT ไวยากรณ์
ในรูปแบบง่ายๆ ไวยากรณ์ของคำสั่ง SELECT มีดังต่อไปนี้:
SELECT 'biểu thức'
FROM 'bảng'
[WHERE 'điều kiện'];
ในรูปแบบเต็ม รูปแบบของคำสั่ง SELECT ใน SQL Server จะเป็น:
SELECT [ALL | DISTINCT]
[TOP (gia_tri_dau) [PERCENT] [WITH TIES]]
'Expression'
FROM 'table'
[WHERE 'condition']
[GROUP BY 'expression']
[HAVING 'condition']
[ORDER BY 'expression' [ASC | DESC]];
ชื่อตัวแปรหรือค่าตัวแปร
ทั้งหมด - ตัวเลือก ส่งคืนรายการที่ตรงกันทั้งหมด
DISTINCT - ไม่จำเป็น. ลบค่าที่ซ้ำกันทั้งหมดออกจากชุดผลลัพธ์
TOP (gia_tri_dau) - ไม่จำเป็น. หากระบุไว้จะคืนค่าแรกในชุดผลลัพธ์ตาม gia_tri_dau
ที่เลือก . ตัวอย่างเช่น TOP (10) จะคืนค่า 10 แถวแรกในชุดผลลัพธ์
PERCENT - ไม่จำเป็น. หากระบุไว้ แถวแรกจะอิงตามเปอร์เซ็นต์ของชุดผลลัพธ์ (ระบุโดย gia_tri_dau
). ตัวอย่างเช่น TOP (10) PERCENT จะคืนค่า 10% แรกของผลลัพธ์แรกในชุดผลลัพธ์
มีความสัมพันธ์ - ตัวเลือก. หากระบุไว้ แถวคงที่ที่ส่วนท้ายของผลลัพธ์ที่จำกัดจะถูกส่งคืน ซึ่งอาจทำให้แถวกลับมามากกว่าที่ TOP อนุญาต
นิพจน์ - คอลัมน์หรือค่าจากการคำนวณที่คุณต้องการดึงข้อมูล ใช้ *
หากคุณต้องการรับทุกคอลัมน์
ตาราง - ตารางที่คุณต้องการรับผลจาก ต้องมีอย่างน้อย 1 ตารางที่ระบุไว้ในคำสั่ง FROM
ที่ 'เงื่อนไข' - ตัวเลือก. เงื่อนไขที่ผลลัพธ์ต้องเป็นไปตามเงื่อนไข
จัดกลุ่มตาม 'นิพจน์' - ไม่จำเป็น. รวบรวมข้อมูลจากหลายระเบียนและกลุ่มผลลัพธ์ในคอลัมน์อย่างน้อยหนึ่งคอลัมน์
มี 'เงื่อนไข' - ตัวเลือก. ใช้ร่วมกับ GROUP BY เพื่อจำกัดกลุ่มของแถวที่ส่งคืนเมื่อตรงตามเงื่อนไขเป็น TRUE
เรียงลำดับตาม 'นิพจน์' - ไม่จำเป็น. ใช้เพื่อกรองชุดผลลัพธ์ ASC จะกรองจากน้อยไปมากและ DESC จะกรองจากมากไปหาน้อย
ตัวอย่างเช่น - เลือกฟิลด์ทั้งหมดในตาราง
SELECT *
FROM hangtonkho
WHERE soluong> 5
ORDER BY hangtonkho_id ASC;
ในตัวอย่างนี้ *
ใช้เพื่อระบุว่าทุ่งคองคอทั้งหมดจะมีขนาดใหญ่กว่า 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 ประเภทสินค้าคงคลังคือ 'แฟนมีม' ผลลัพธ์จะถูกจัดเรียงตามจำนวนจากมากไปน้อยและเพิ่มรหัสสินค้าคงคลัง
ตัวอย่าง - เลือกจากหลายตาราง
SELECT hangtonkhi.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 ค่าแรกจากตารางหางโคที่มีสินค้าคงคลังประเภท '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' ในตารางหางโค 90% ของผลลัพธ์ที่เหลือจะไม่ถูกส่งคืน .