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

คำสั่ง SELECT ใน SQL Server

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