คอมพิวเตอร์ Windows อินเทอร์เน็ต

4 ฟังก์ชันใดที่ใช้ในภาษา sql ฟังก์ชันสตริง SQL - ตัวอย่างการใช้งาน SELECT ไวยากรณ์คำสั่งและลำดับของการประมวลผล

ในบทความนี้ คุณจะตรวจสอบประเภทของฟังก์ชันในภาษา SQL ได้ ฟังก์ชันสามารถรวมหรือสเกลาร์ได้ เริ่มกันเลย ...

นับ ()

นับ ()- ฟังก์ชั่นที่ส่งคืนจำนวนเรคคอร์ด (แถว) ของตาราง การเขียนฟังก์ชันที่ระบุคอลัมน์จะคืนค่าจำนวนระเบียนสำหรับคอลัมน์ที่ระบุ ยกเว้นระเบียน NULL ไวยากรณ์ของฟังก์ชัน:

COUNT (column_name);

การบันทึกฟังก์ชันด้วยมาสก์ "*" จะคืนค่าจำนวนระเบียนทั้งหมดในตาราง ไวยากรณ์:

นับ (*);

มาดูตัวอย่างกัน มีตารางมหาวิทยาลัยดังต่อไปนี้:

NS ชื่อมหาวิทยาลัย นักเรียน คณะ ศาสตราจารย์ ที่ตั้ง งาน
1 มหาวิทยาลัยวิจัยแห่งชาติดัดรัฐ 12400 12 1229 เพิ่ม psu.ru
2 มหาวิทยาลัยแห่งรัฐเซนต์ปีเตอร์สเบิร์ก 21300 24 13126 เซนต์ปีเตอร์สเบิร์ก spbu.ru
3 มหาวิทยาลัยแห่งรัฐโนโวซีบีสค์ 7200 13 1527 โนโวซีบีสค์ nsu.ru
4 มหาวิทยาลัยแห่งรัฐมอสโก 35100 39 14358 มอสโก msu.ru
5 โรงเรียนมัธยมเศรษฐศาสตร์ 20335 12 1615 มอสโก hse.ru
6 มหาวิทยาลัยสหพันธ์อูราล 57000 19 5640 เยคาเตรินเบิร์ก urfu.ru
7 มหาวิทยาลัยนิวเคลียร์วิจัยแห่งชาติ 8600 10 936 มอสโก mephi.ru

ตัวอย่างที่ 1 พิมพ์จำนวนระเบียนในตารางโดยใช้ฟังก์ชัน COUNT:

เลือก COUNT (*)
จากมหาวิทยาลัย // จะพิมพ์ 7

ตัวอย่างที่ 2 ค้นหาจำนวนมหาวิทยาลัยที่ตั้งอยู่ในมอสโกโดยใช้ฟังก์ชัน COUNT:

SELECT COUNT (*) จากมหาวิทยาลัยที่ Location = "มอสโก"; // จะพิมพ์ 3

เฉลี่ย ()

เฉลี่ย ()- ฟังก์ชันที่คืนค่าค่าเฉลี่ยของคอลัมน์ ฟังก์ชันนี้ใช้ได้กับคอลัมน์ตัวเลขเท่านั้น ไวยากรณ์:

AVG (column_name);

มาดูตัวอย่างกัน มาดูตารางมหาวิทยาลัยของเรากัน ตัวอย่าง. ค้นหาจำนวนนักเรียนโดยเฉลี่ยของทุกมหาวิทยาลัยโดยใช้ฟังก์ชัน AVG:

เลือก AVG (นักศึกษา) จากมหาวิทยาลัย // พิมพ์ 23133

มิน ()

มิน ()- ฟังก์ชันที่คืนค่าต่ำสุดของคอลัมน์ ฟังก์ชั่นมีไวยากรณ์ต่อไปนี้:

MIN (column_name);

มาดูตัวอย่างกัน มาดูตารางมหาวิทยาลัยของเรากัน ตัวอย่าง. ใช้ฟังก์ชัน MIN หาค่าต่ำสุดของคอลัมน์ Professores:

SELECT MIN (ศาสตราจารย์) จากมหาวิทยาลัย // พิมพ์ 936

แม็กซ์ ()

แม็กซ์ ()- ฟังก์ชันที่คืนค่าสูงสุดของคอลัมน์ตาราง ฟังก์ชั่นมีไวยากรณ์ต่อไปนี้:

MAX (column_name);

มาดูตัวอย่างกัน มาดูตารางมหาวิทยาลัยของเรากัน ตัวอย่าง. ใช้ฟังก์ชัน MAX ค้นหาค่าสูงสุดของคอลัมน์นักเรียน:

SELECT MAX (นักศึกษา) จากมหาวิทยาลัย // จะพิมพ์ 57000

ผลรวม ()

ผลรวม ()- ฟังก์ชันที่คืนค่าผลรวมของค่าของคอลัมน์ตาราง ใช้สำหรับคอลัมน์ตัวเลขเท่านั้น ไวยากรณ์ของฟังก์ชัน:

SUM (นิพจน์);

พารามิเตอร์ ทั้งหมด- เป็นตัวเลือกเริ่มต้น นับรวมทุกบรรทัด เมื่อระบุพารามิเตอร์ แตกต่าง- นับเฉพาะค่าที่ไม่ซ้ำเท่านั้น

มาดูตัวอย่างกัน มาดูตารางมหาวิทยาลัยของเรากัน ตัวอย่างที่ 1 ใช้ฟังก์ชัน SUM ค้นหาจำนวนนักศึกษาของทุกมหาวิทยาลัยในตาราง:

SELECT SUM (นักศึกษา) จากมหาวิทยาลัย // จะพิมพ์ 161935

ตัวอย่างที่ 2 ใช้ฟังก์ชัน SUM คำนวณค่าเฉพาะของคอลัมน์ Faculties:

SELECT SUM (คณะที่แยกความแตกต่าง) จากมหาวิทยาลัย // แสดง 117 (ในคอลัมน์ Faculties มี 2 ระเบียนที่เหมือนกัน ภายใต้ ID 1 และ 5 ค่าของคอลัมน์ภายใต้ ID 5 จะไม่รวม)

กลม ()

กลม ()- ฟังก์ชันสำหรับการปัดเศษทศนิยม ใช้งานได้เฉพาะกับคอลัมน์ตัวเลขหรือจำนวนจริงตามอำเภอใจ ไวยากรณ์ของฟังก์ชัน:

ROUND (นิพจน์, ความยาว);

การแสดงออก- ชื่อของคอลัมน์หรือคอลัมน์ตลอดจนจำนวนจริง ระยะเวลา- ระบุความแม่นยำในการปัดเศษของตัวเลข

มาดูตัวอย่างกัน มาดูตารางดาวเคราะห์กัน:

NS ชื่อดาวเคราะห์ รัศมี ซันซีซัน เปิดปี มีแหวน ที่เปิด
1 ดาวอังคาร 3396 687.58 1659 # คริสเตียน ฮอยเกนส์
2 ดาวเสาร์ 60268 10759.22 - ใช่ -
3 ดาวเนปจูน 24764 60190.91 1846 ใช่ John Couch Adams
4 ปรอท 2439 115.88 1631 # Nicolaus Copernicus
5 ดาวศุกร์ 6051 243.56 1610 # กาลิเลโอ กาลิเลอี

ตัวอย่าง. ปัดเศษคอลัมน์ SunSeason ให้เป็นทศนิยมหนึ่งตำแหน่งโดยใช้ฟังก์ชัน ROUND:

เลือกรอบ (SunSeason, 1) จากดาวเคราะห์;

ยูเคส ()

ยูเคส ()- ฟังก์ชันที่คืนค่าของคอลัมน์หรือคอลัมน์ที่เป็นตัวพิมพ์ใหญ่ ใน MS DBMS SQL Serverอะนาล็อกของ UCASE () คือฟังก์ชัน UPPER ที่มีรูปแบบเดียวกัน:

UCASE (column_name)

มาดูตัวอย่างกัน มาดูตารางดาวเคราะห์ของเรากัน ตัวอย่าง. พิมพ์ชื่อดาวเคราะห์ด้วยตัวพิมพ์ใหญ่ที่ไม่มีวงแหวนโดยใช้ฟังก์ชัน UCASE:

เลือก UCASE (PlanetName) จากดาวเคราะห์ที่ HaveRings = "ไม่";

LCASE ()

LCASE ()- ฟังก์ชันที่คืนค่าของคอลัมน์หรือคอลัมน์ด้วยอักษรตัวพิมพ์เล็ก ใน MS SQL Server DBMS แอนะล็อกของตัวดำเนินการ SQL LCASE () คือฟังก์ชัน LOWER ที่มีรูปแบบเดียวกัน:

LCASE (column_name);

มาดูตัวอย่างกัน มาดูตารางดาวเคราะห์ของเรากัน ตัวอย่าง. ใช้ฟังก์ชัน LCASE เพื่อแสดงชื่อดาวเคราะห์ที่มีวงแหวนเป็นตัวพิมพ์เล็ก:

เลือก LCASE (PlanetName) จากดาวเคราะห์ที่ HaveRings = "ใช่";

เลน ()

เลน ()- ฟังก์ชันที่คืนค่าความยาวของค่าในช่องระเบียน ฟังก์ชันไม่รวมช่องว่างต่อท้ายจากการนับ ไวยากรณ์:

LEN (column_name);

มาดูตัวอย่างกัน มาดูตารางดาวเคราะห์ของเรากัน ตัวอย่าง. พิมพ์ Opener และความยาวของชื่อดาวเคราะห์ที่เขาค้นพบโดยใช้ฟังก์ชัน LEN:

เลือก Opener, LEN (PlanetName) จาก Planets;

กลาง ()

กลาง ()- ฟังก์ชั่นที่แสดงจำนวนอักขระในช่องข้อความของตาราง ไวยากรณ์ของฟังก์ชัน:

MID (ชื่อคอลัมน์, เริ่มต้น [, ความยาว]);

พารามิเตอร์ เริ่มกำหนดตำแหน่งของอักขระเริ่มต้น พารามิเตอร์ ระยะเวลากำหนดจำนวนอักขระที่จะส่งออกโดยเริ่มจากตำแหน่งที่ระบุในพารามิเตอร์เริ่มต้น

มาดูตัวอย่างกัน มาดูตารางมหาวิทยาลัยเก่าของเรากัน ตัวอย่าง. แสดงอักษร 3 ตัวแรกของชื่อเมือง (Location) โดยใช้ฟังก์ชัน MID:

SELECT MID (ที่ตั้ง, 1, 3) จากมหาวิทยาลัย;

ตอนนี้ ()

ตอนนี้ ()- ฟังก์ชั่นที่ส่งคืนเวลาและวันที่ของระบบ ไวยากรณ์ของฟังก์ชัน:

มาดูตัวอย่างกัน มาดูตารางมหาวิทยาลัยเก่าของเรากัน ตัวอย่าง. แสดงจำนวนนักศึกษาที่กำลังศึกษาอยู่ในแต่ละมหาวิทยาลัย โดยใช้ฟังก์ชัน NOW:

เลือกชื่อมหาวิทยาลัย นักศึกษา ตอนนี้ () เป็น CurDate จากมหาวิทยาลัย

เพื่อความปลอดภัยของวัสดุ ให้ทำตามตัวอย่างของแต่ละฟังก์ชั่นด้วยตัวเอง หากคุณมีคำถามใด ๆ เขียนในความคิดเห็นและฉันจะตอบพวกเขาอย่างแน่นอน

คำสั่ง SQL พื้นฐานที่โปรแกรมเมอร์ทุกคนควรรู้

SQL หรือ Structured Query Language ออกแบบมาเพื่อจัดการข้อมูลในระบบฐานข้อมูลเชิงสัมพันธ์ (RDBMS) บทความนี้จะกล่าวถึงคำสั่ง SQL ที่ใช้กันทั่วไปซึ่งโปรแกรมเมอร์ทุกคนควรคุ้นเคย เอกสารนี้เหมาะสำหรับผู้ที่ต้องการทบทวนความรู้ SQL ก่อนการสัมภาษณ์งาน ในการทำเช่นนี้ ให้วิเคราะห์ตัวอย่างที่ให้ไว้ในบทความและจดจำสิ่งที่คุณทำผ่านฐานข้อมูลเป็นคู่

โปรดทราบว่าระบบฐานข้อมูลบางระบบต้องการเซมิโคลอนที่ส่วนท้ายของแต่ละคำสั่ง อัฒภาคเป็นตัวชี้มาตรฐานไปยังจุดสิ้นสุดของทุกคำสั่งใน SQL ตัวอย่างใช้ MySQL ดังนั้นต้องมีเครื่องหมายอัฒภาค

การตั้งค่าฐานข้อมูลสำหรับตัวอย่าง

สร้างฐานข้อมูลเพื่อสาธิตวิธีการทำงานของทีม ในการทำงาน คุณต้องดาวน์โหลดไฟล์สองไฟล์: DLL.sql และ InsertStatements.sql หลังจากนั้น ให้เปิดเทอร์มินัลแล้วเข้าสู่คอนโซล MySQL ด้วยคำสั่งต่อไปนี้ (บทความนี้อนุมานว่า MySQL ได้รับการติดตั้งบนระบบแล้ว):

Mysql -u root -p

จากนั้นป้อนรหัสผ่านของคุณ

เรียกใช้คำสั่งต่อไปนี้ เรียกฐานข้อมูลว่า "มหาวิทยาลัย":

สร้างฐานข้อมูลมหาวิทยาลัย ใช้มหาวิทยาลัย แหล่งที่มา ; แหล่งที่มา

คำสั่งฐานข้อมูล

1. ดูฐานข้อมูลที่มีอยู่

แสดงฐานข้อมูล;

2. การสร้างฐานข้อมูลใหม่

สร้างฐานข้อมูล;

3. การเลือกฐานข้อมูลที่จะใช้

ใช้ ;

4. การนำเข้าคำสั่ง SQL จากไฟล์ .sql

แหล่งที่มา ;

5. การลบฐานข้อมูล

วางฐานข้อมูล ;

การทำงานกับโต๊ะ

6. ดูตารางที่มีอยู่ในฐานข้อมูล

แสดงตาราง;

7. การสร้างตารางใหม่

สร้างตาราง ( , , คีย์หลัก ( ), กุญแจต่างประเทศ ( ) ข้อมูลอ้างอิง ());

ข้อจำกัดด้านความซื่อสัตย์โดยใช้ CREATE TABLE

อาจจำเป็นต้องสร้างข้อจำกัดสำหรับคอลัมน์เฉพาะในตาราง เมื่อสร้างตาราง คุณสามารถตั้งค่าข้อจำกัดต่อไปนี้:

  • เซลล์ตารางไม่สามารถเป็น NULL;
  • คีย์หลัก - คีย์หลัก (col_name1, col_name2, ...);
  • คีย์ต่างประเทศ - คีย์ต่างประเทศ (col_namex1,…, col_namexn) ข้อมูลอ้างอิง table_name (col_namex1,…, col_namexn)

สามารถระบุคีย์หลักได้มากกว่าหนึ่งคีย์ ในกรณีนี้ คุณจะได้รับคีย์หลักแบบผสม

ตัวอย่าง

สร้างตาราง "ผู้สอน":

สร้างผู้สอนตาราง (ID CHAR (5), ชื่อ VARCHAR (20) ไม่ใช่ NULL, dept_name VARCHAR (20), ตัวเลขเงินเดือน (8,2), คีย์หลัก (ID), คีย์ต่างประเทศ (dept_name) แผนกอ้างอิง (dept_name));

8. ข้อมูลตาราง

คุณสามารถดูข้อมูลต่างๆ (ประเภทค่า คีย์หรือไม่) เกี่ยวกับคอลัมน์ของตารางด้วยคำสั่งต่อไปนี้:

อธิบาย ;

9. การเพิ่มข้อมูลลงในตาราง

ใส่ลงใน (, , , ...) ค่านิยม ( , , , …);

เมื่อเพิ่มข้อมูลลงในแต่ละคอลัมน์ในตาราง คุณไม่จำเป็นต้องระบุชื่อคอลัมน์

ใส่ลงใน ค่านิยม ( , , , …);

10. กำลังอัปเดตข้อมูลตาราง

อัปเดต ชุด = , = , ... ที่ไหน ;

11. การลบข้อมูลทั้งหมดออกจากตาราง

ลบจาก ;

12. การลบตาราง

วางตาราง ;

คำสั่งสำหรับทำแบบสอบถาม

13. เลือก

SELECT ใช้เพื่อดึงข้อมูลจากตารางเฉพาะ:

เลือก , ,… จาก ;

คำสั่งต่อไปนี้สามารถแสดงข้อมูลทั้งหมดจากตาราง:

เลือก * จาก ;

14. เลือก DISTINCT

คอลัมน์ตารางสามารถมีข้อมูลที่ซ้ำกัน ใช้ SELECT DISTINCT เพื่อรับเฉพาะข้อมูลที่ไม่ซ้ำกัน

เลือก DISTINCT , ,… จาก ;

15. ที่ไหน

สามารถใช้ได้ คำสำคัญ WHERE ใน SELECT เพื่อระบุเงื่อนไขในแบบสอบถาม:

เลือก , ,… จาก ที่ไหน ;

สามารถระบุเงื่อนไขต่อไปนี้ในคำขอ:

  • การเปรียบเทียบข้อความ
  • การเปรียบเทียบค่าตัวเลข
  • การดำเนินการทางตรรกะและ (และ) หรือ (หรือ) และไม่ใช่ (การปฏิเสธ)

ตัวอย่าง

ลองใช้คำสั่งต่อไปนี้ ให้ความสนใจกับเงื่อนไขที่ระบุใน WHERE:

SELECT * จากหลักสูตร WHERE dept_name = 'Comp. วิทย์. '; SELECT * จากหลักสูตร WHERE หน่วยกิต> 3; SELECT * จากหลักสูตร WHERE dept_name = "Comp. Sci." และ เครดิต> 3;

16. จัดกลุ่มโดย

GROUP BY clause มักใช้กับฟังก์ชันการรวม เช่น COUNT, MAX, MIN, SUM และ AVG เพื่อจัดกลุ่มค่าเอาต์พุต

เลือก , ,… จาก จัดกลุ่มโดย ;

ตัวอย่าง

มาแสดงจำนวนหลักสูตรสำหรับแต่ละคณะ:

SELECT COUNT (course_id), dept_name จากรายวิชา GROUP BY dept_name;

17. มี

มีการเพิ่มคีย์เวิร์ด HAVING ใน SQL เนื่องจากไม่สามารถใช้ WHERE กับฟังก์ชันการรวมได้

เลือก , , ... จาก จัดกลุ่มโดย มี

ตัวอย่าง

ขอรายชื่อคณะที่มีมากกว่าหนึ่งหลักสูตร:

SELECT COUNT (course_id), dept_name จากรายวิชา GROUP BY dept_name HAVING COUNT (course_id)> 1;

18. สั่งซื้อโดย

ORDER BY ใช้เพื่อเรียงลำดับผลลัพธ์การสืบค้นจากมากไปหาน้อยหรือจากน้อยไปมาก ORDER BY จะเรียงลำดับจากน้อยไปหามากหากไม่มีการระบุวิธีการจัดเรียง ASC หรือ DESC

เลือก , ,… จาก สั่งโดย , , ... ASC | DESC;

ตัวอย่าง

แสดงรายการหลักสูตรโดยเรียงจากน้อยไปมากและจากมากไปน้อยของจำนวนหน่วยกิต:

SELECT * จากหลักสูตร ORDER BY หน่วยกิต; SELECT * จากหลักสูตร ORDER BY หน่วยกิต DESC;

19. ระหว่าง

BETWEEN ใช้เพื่อเลือกค่าข้อมูลจากช่วงที่ระบุ สามารถใช้ค่าตัวเลขและข้อความตลอดจนวันที่ได้

เลือก , ,… จาก ที่ไหน ระหว่าง และ ;

ตัวอย่าง

นี่คือรายชื่อผู้สอนที่มีเงินเดือนมากกว่า 50,000 แต่น้อยกว่า 100,000:

เลือก * จากผู้สอน โดยที่เงินเดือนระหว่าง 50000 ถึง 100000;

20. LIKE

ตัวดำเนินการ LIKE ใช้ใน WHERE เพื่อระบุรูปแบบการค้นหาสำหรับค่าที่คล้ายกัน

มีโอเปอเรเตอร์ฟรีสองตัวที่ใช้ใน LIKE:

  • % (ไม่มี หนึ่งอักขระขึ้นไป);
  • _ (อักขระหนึ่งตัว)
เลือก , ,… จาก ที่ไหน ชอบ ;

ตัวอย่าง

เรามาแสดงรายการของหลักสูตรกัน ซึ่งมีชื่อที่มีคำว่า "ถึง" และรายชื่อหลักสูตรที่ชื่อขึ้นต้นด้วย "CS-":

เลือก * จากหลักสูตรที่ชื่อ LIKE '% to%'; SELECT * จากหลักสูตรที่ Course_id LIKE "CS -___";

21. อิน

คุณสามารถใช้ IN เพื่อระบุค่าหลายค่าสำหรับส่วนคำสั่ง WHERE:

เลือก , ,… จาก ที่ไหน ใน ( , , …);

ตัวอย่าง

มาดูรายชื่อนักศึกษาจากคอมพ์กันเถอะ วิทย์. ฟิสิกส์และไฟฟ้า. อังกฤษ.:

SELECT * จากนักเรียน WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. เข้าร่วม

JOIN ใช้เพื่อเชื่อมโยงตารางตั้งแต่สองตารางขึ้นไปโดยใช้แอตทริบิวต์ทั่วไปภายในตาราง ภาพด้านล่างแสดงให้เห็น วิธีทางที่แตกต่างเข้าร่วมใน SQL สังเกตความแตกต่างระหว่างการรวมภายนอกด้านซ้ายและการรวมภายนอกด้านขวา:

เลือก , ,… จาก เข้าร่วม บน = ;

ตัวอย่างที่ 1

เราจะแสดงรายการหลักสูตรทั้งหมดและข้อมูลที่เกี่ยวข้องเกี่ยวกับคณะ:

เลือก * จากหลักสูตร เข้าร่วมแผนก ON course.dept_name = department.dept_name;

ตัวอย่าง 2

มาแสดงรายการหลักสูตรและรายละเอียดที่จำเป็นทั้งหมดเกี่ยวกับพวกเขา:

SELECT prereq.course_id, title, dept_name, หน่วยกิต, prereq_id จาก prereq LEFT OUTER เข้าร่วมหลักสูตร ON prereq.course_id = course.course_id;

ตัวอย่างที่ 3

มาแสดงรายการของหลักสูตรทั้งหมดกันเถอะ ไม่ว่าจะจำเป็นหรือไม่:

เลือก course.course_id, title, dept_name, หน่วยกิต, prereq_id จาก prereq RIGHT OUTER เข้าร่วมหลักสูตร ON prereq.course_id = course.course_id;

23. ดู

มุมมองคือตาราง SQL เสมือนที่สร้างขึ้นโดยดำเนินการนิพจน์ ประกอบด้วยแถวและคอลัมน์ และคล้ายกับตาราง SQL ปกติมาก มุมมองจะแสดงข้อมูลล่าสุดจากฐานข้อมูลเสมอ

การสร้าง

สร้างมุมมอง AS SELECT , ,… จาก ที่ไหน ;

กำลังลบ

DROP VIEW ;

ตัวอย่าง

มาสร้างมุมมองประกอบด้วยรายวิชา 3 หน่วยกิต ได้แก่

24. ฟังก์ชันรวม

ฟังก์ชันเหล่านี้ใช้เพื่อให้ได้ผลลัพธ์รวมที่เกี่ยวข้องกับข้อมูลที่เป็นปัญหา ต่อไปนี้คือฟังก์ชันการรวมที่ใช้กันทั่วไป:

  • COUNT (col_name) - ส่งกลับจำนวนแถว;
  • SUM (col_name) - ส่งกลับผลรวมของค่าในคอลัมน์ที่กำหนด
  • AVG (col_name) - ส่งกลับค่าเฉลี่ยของคอลัมน์ที่กำหนด;
  • MIN (col_name) - ส่งคืนค่าที่น้อยที่สุดสำหรับคอลัมน์ที่กำหนด
  • MAX (col_name) - ผลตอบแทน คุ้มค่าที่สุดคอลัมน์ที่กำหนด

25. แบบสอบถามย่อยที่ซ้อนกัน

แบบสอบถามย่อยที่ซ้อนกันคือแบบสอบถาม SQL ที่มีส่วนคำสั่ง SELECT, FROM และ WHERE ที่ซ้อนกันภายในแบบสอบถามอื่น

ตัวอย่าง

มาหาหลักสูตรที่สอนในฤดูใบไม้ร่วงปี 2552 และฤดูใบไม้ผลิปี 2553 กัน:

เลือก DISTINCT course_id จากส่วน WHERE semester = 'Fall' AND year = 2009 และ course_id IN (เลือก course_id จากส่วน WHERE semester = 'Spring' AND year = 2010);

ฟังก์ชันเป็นคำสั่งชนิดพิเศษในชุดคำสั่ง SQL และแต่ละภาษามีการนำชุดคำสั่งไปใช้งานของตนเอง เป็นผลให้เราสามารถพูดได้ว่าฟังก์ชั่นเป็นคำสั่งคำเดียวที่คืนค่าเดียว ค่าของฟังก์ชันขึ้นอยู่กับพารามิเตอร์อินพุต เช่นในกรณีของฟังก์ชันที่คำนวณค่าเฉลี่ยของรายการค่าในฐานข้อมูล อย่างไรก็ตาม ฟังก์ชันจำนวนมากไม่ได้ใช้พารามิเตอร์อินพุต เช่น ฟังก์ชันที่คืนค่าเวลาของระบบปัจจุบัน - CURRENTJ1ME

มาตรฐาน ANSI รองรับคุณสมบัติที่มีประโยชน์หลายประการ บทนี้อธิบายคุณสมบัติเหล่านี้เช่นกัน คำอธิบายโดยละเอียดและตัวอย่างของแต่ละแพลตฟอร์ม นอกจากนี้ แต่ละแพลตฟอร์มยังมีรายการฟังก์ชันภายในที่ยาวเกินกว่ามาตรฐาน SQL บทนี้ให้พารามิเตอร์และคำอธิบายของฟังก์ชันภายในทั้งหมดของแต่ละแพลตฟอร์ม

นอกจากนี้ แพลตฟอร์มส่วนใหญ่มีความสามารถในการสร้างฟังก์ชันแบบกำหนดเอง ต่อ ข้อมูลเพิ่มเติมสำหรับฟังก์ชันที่ผู้ใช้กำหนดเอง โปรดดูคำแนะนำ CREATE / ALTER FUNCTION / PROCEDURE

ประเภทฟังก์ชัน

มีอยู่ วิธีทางที่แตกต่างการจำแนกฟังก์ชัน ส่วนย่อยต่อไปนี้อธิบายความแตกต่างที่สำคัญเพื่อช่วยให้คุณเข้าใจวิธีการทำงานของคุณลักษณะ

ฟังก์ชันที่กำหนดและไม่กำหนดขึ้น

ฟังก์ชันสามารถกำหนดได้และไม่กำหนด ฟังก์ชันที่กำหนดจะส่งคืนผลลัพธ์เดียวกันสำหรับอินพุตชุดเดียวกันเสมอ ฟังก์ชันที่ไม่ได้กำหนดไว้สามารถส่งคืนผลลัพธ์ที่แตกต่างกันในการโทรที่ต่างกัน แม้ว่าจะผ่านค่าอินพุตเดียวกันก็ตาม

เหตุใดจึงสำคัญที่สิ่งเดียวกัน พารามิเตอร์อินพุตคุณได้รับผลลัพธ์เดียวกันหรือไม่ สิ่งนี้มีความสำคัญเนื่องจากกำหนดวิธีการใช้ฟังก์ชันในมุมมอง UDF และกระบวนงานที่เก็บไว้ ข้อจำกัดอาจแตกต่างกันไปในแต่ละแพลตฟอร์ม แต่บางครั้ง สามารถใช้ได้เฉพาะฟังก์ชันที่กำหนดขึ้นเท่านั้นบนอ็อบเจ็กต์เหล่านี้ ตัวอย่างเช่น SQL Server สามารถสร้างดัชนีบนนิพจน์ในคอลัมน์ ยกเว้นว่านิพจน์มีฟังก์ชันที่ไม่ได้กำหนดไว้ กฎและข้อจำกัดบนแพลตฟอร์มต่างๆ จะแตกต่างกัน ดังนั้นโปรดอ้างอิงเอกสารของผู้ผลิตเมื่อใช้ฟังก์ชัน

ฟังก์ชันรวมและสเกลาร์

อีกวิธีหนึ่งในการจัดประเภทฟังก์ชันคือเมื่อสามารถทำงานกับแถวเดียว กับคอลเลกชั่นของค่า หรือกับชุดของแถว ฟังก์ชันการรวมทำงานบนคอลเลกชั่นของค่าและคืนค่าเป็นค่าเดียว ฟังก์ชันสเกลาร์ส่งคืนค่าเดียวโดยขึ้นอยู่กับอาร์กิวเมนต์อินพุตสเกลาร์ ฟังก์ชันสเกลาร์บางอย่าง เช่น CURRENTJTIME ไม่ต้องการอาร์กิวเมนต์ใดๆ

ฟังก์ชั่นหน้าต่าง

ฟังก์ชันหน้าต่างสามารถคิดได้เหมือนกับฟังก์ชันรวม เนื่องจากสามารถทำงานได้หลายบรรทัดพร้อมกัน ความแตกต่างคือวิธีการระบุบรรทัดเหล่านี้ ฟังก์ชันรวมทำงานบนชุดแถวที่ระบุในส่วนคำสั่ง GROUP BY ในกรณีของฟังก์ชันหน้าต่าง ชุดแถวจะถูกระบุด้วยการเรียกฟังก์ชันแต่ละครั้ง และ ความท้าทายที่แตกต่างฟังก์ชันภายในคิวรีเดียวกันสามารถทำงานกับชุดของแถวต่างๆ ได้

เรายังคงศึกษาภาษาแบบสอบถาม SQL และวันนี้เราจะพูดถึง ฟังก์ชันสตริง SQL... เราจะครอบคลุมถึงฟังก์ชันสตริงพื้นฐานและที่ใช้กันทั่วไป เช่น: ล่าง, LTRIM, แทนที่และอื่น ๆ เราจะพิจารณาทุกอย่างด้วยตัวอย่าง

เลือกชื่อ || นามสกุล AS FIO จากตาราง

หรือหากต้องการคั่นด้วยการเว้นวรรค ให้ป้อน

เลือกชื่อ || "" || นามสกุล AS FIO จากตาราง

เหล่านั้น. แท่งแนวตั้งสองแท่งรวมสองคอลัมน์เป็นหนึ่งเดียว และเพื่อคั่นด้วยการเว้นวรรค ฉันเว้นวรรคระหว่างพวกเขา ( สามารถใช้อักขระใดก็ได้ เช่น ขีดกลางหรือโคลอน) ในเครื่องหมายอะพอสทรอฟีและรวมกับแท่งแนวตั้งสองแท่ง ( Transact-SQL ใช้ + แทนแท่งแนวตั้งสองแท่ง).

ฟังก์ชัน INITCAP

นอกจากนี้ยังมีฟังก์ชั่นที่มีประโยชน์มาก INITCAP- ส่งคืนค่าในสตริงที่แต่ละคำขึ้นต้นด้วยตัวพิมพ์ใหญ่และต่อด้วยตัวพิมพ์เล็ก นี่เป็นสิ่งจำเป็นถ้าคุณไม่ปฏิบัติตามกฎการเติมในคอลัมน์ใดคอลัมน์หนึ่งและเพื่อแสดงสิ่งทั้งหมดใน ฟอร์มสวยคุณสามารถใช้ฟังก์ชันนี้ได้ ตัวอย่างเช่น คุณมีแบบฟอร์มต่อไปนี้ในคอลัมน์ชื่อในตาราง: IVAN ivanov หรือ petr Petrov คุณใช้ฟังก์ชันนี้

เลือก INITCAP (ชื่อ) AS FIO จากตาราง

แล้วคุณจะได้แบบนี้

ฟังก์ชันบน

ฟังก์ชันที่คล้ายกัน ส่งกลับเฉพาะอักขระที่เป็นตัวพิมพ์ใหญ่ทั้งหมด นี่คือ บน.

SELECT UPPER (ชื่อ) AS FIO จากตาราง

  • ชื่อ - ชื่อของคอลัมน์;
  • 20 - จำนวนอักขระ ( ความยาวสนาม);
  • '-' คืออักขระที่จะเพิ่มเป็นจำนวนอักขระที่กำหนด

ฟังก์ชัน RPAD

ลองพิจารณาฟังก์ชันผกผันทันที รปภ- การกระทำและไวยากรณ์เหมือนกับ LPAD มีเพียงอักขระทางด้านขวาเท่านั้นที่เสริม ( ใน LPAD ทางด้านซ้าย).

SELECT RPAD (ชื่อ 20 "-") เป็นชื่อจาก table

อีวาน —————-
เซอร์เกย์ -----

ฟังก์ชัน LTIM

ถัดไปยังเป็นฟังก์ชันที่มีประโยชน์ในบางกรณี LTRIM- ฟังก์ชันนี้จะลบอักขระที่อยู่ซ้ายสุดที่คุณระบุ ตัวอย่างเช่น คุณมีคอลัมน์ "เมือง" ในฐานข้อมูลของคุณ ซึ่งเมืองนั้นถูกระบุว่าเป็น "มอสโก" และยังมีเมืองที่ระบุว่าเป็น "มอสโก" แบบง่ายๆ ด้วย แต่คุณต้องแสดงรายงานเฉพาะในรูปแบบของ "มอสโก" โดยไม่มี "g" คุณเพียงแค่ระบุรูปแบบ "g" บางอย่าง และหากอักขระซ้ายสุดขึ้นต้นด้วย "g" อักขระเหล่านี้จะไม่ปรากฏ

เลือก LTRIM (เมือง "เมือง") AS gorod จากตาราง

ฟังก์ชันนี้จะสแกนอักขระทางด้านซ้าย หากไม่มีอักขระในรูปแบบที่จุดเริ่มต้นของบรรทัด ระบบจะส่งคืนค่าเดิมของเซลล์ และหากมี ระบบจะลบอักขระดังกล่าวออก

ฟังก์ชัน RTIM

ลองมาดูฟังก์ชันผกผันกันทันที RTRIM- เช่นเดียวกับ LTRIM ค้นหาเฉพาะอักขระทางด้านขวา

บันทึก! ใน Transact-SQL ฟังก์ชัน RTRIM และ LTRIM จะลบช่องว่างจากด้านขวาและด้านซ้ายตามลำดับ

ฟังก์ชัน REPLACE

ทีนี้มาดูฟังก์ชันที่น่าสนใจเช่น แทนที่- ส่งกลับสตริงที่อักขระที่ตรงกันทั้งหมดจะถูกแทนที่ด้วยอักขระที่คุณระบุ สำหรับสิ่งที่สามารถใช้ได้ ตัวอย่างเช่น คุณมีคอลัมน์ในฐานข้อมูลของคุณ ซึ่งมีสัญลักษณ์แยกบางส่วน เช่น "/" ตัวอย่างเช่น Ivan / Ivanov และคุณต้องการแสดง Ivan-Ivanov จากนั้นเขียน

SELECT REPLACE (ชื่อ "/", "-") จาก table

และคุณจะมีการแทนที่สัญลักษณ์

ฟังก์ชันนี้จะแทนที่เฉพาะอักขระที่ตรงกันทั้งหมด ตัวอย่างเช่น หากคุณระบุ "-" เช่น มันจะค้นหาสามขีดเท่านั้น และจะไม่แทนที่แต่ละ dash ต่างจากฟังก์ชันถัดไป

ฟังก์ชันแปล

แปลภาษา- ฟังก์ชันสตริงที่แทนที่อักขระทั้งหมดในสตริงด้วยอักขระที่คุณระบุ ตามชื่อของฟังก์ชัน คุณอาจเดาได้ว่านี่คือการป้อนแบบเต็มบรรทัด ความแตกต่างระหว่างฟังก์ชันนี้และ REPLACE คือแทนที่ทุกอักขระที่คุณระบุ เช่น คุณมีอักขระสามตัว สมมติว่า abc และ s ใช้ TRANSLATEคุณสามารถแทนที่ด้วย abc เพื่อให้คุณมี a = a, b = b, c = c และตามหลักการนี้ การจับคู่อักขระทั้งหมดจะถูกแทนที่ และถ้าคุณแทนที่ด้วย REPLACE แสดงว่าคุณกำลังมองหาเฉพาะสัญลักษณ์ abc ที่ตรงกันทั้งหมดที่อยู่ในแถวเดียวกัน

ฟังก์ชัน SUBSTR

SUBSTRฟังก์ชั่นนี้ส่งคืนเฉพาะช่วงของอักขระที่คุณระบุ กล่าวอีกนัยหนึ่ง สมมติว่าสตริงมีอักขระ 10 ตัว และคุณไม่จำเป็นต้องมีทั้งหมด 10 ตัว แต่สมมติว่าคุณต้องการเพียง 3-8 เท่านั้น ( จากที่สามถึงแปด). ด้วยฟังก์ชันนี้ คุณสามารถทำสิ่งนี้ได้อย่างง่ายดาย ตัวอย่างเช่น คุณมีตัวระบุในฐานข้อมูลที่มีความยาวคงที่ (เช่น AA-BB-55-66-CC) และอักขระแต่ละชุดรวมกันมีความหมายบางอย่าง และในช่วงเวลาที่ดี คุณได้รับคำสั่งให้แสดงอักขระเพียง 2 และ 3 ชุดผสมกัน สำหรับสิ่งนี้ คุณจะต้องเขียนแบบสอบถามตามแบบฟอร์มต่อไปนี้

SELECT SUBSTR (รหัส "4", "8") จากตาราง

เหล่านั้น. เราพิมพ์อักขระทั้งหมด เริ่มต้นด้วย 4 และลงท้ายด้วย 8 และหลังจากแบบสอบถามนี้ คุณจะได้รับสิ่งนี้:

ฟังก์ชัน LENGTH - ความยาวสตริง

ฟังก์ชันต่อไปก็สะดวกเช่นกัน นั่นก็คือ ระยะเวลา- ซึ่งเพียงแค่นับจำนวนตัวอักษรในบรรทัด ตัวอย่างเช่น คุณต้องค้นหาจำนวนอักขระในแต่ละเซลล์ในคอลัมน์ สมมติว่า "ชื่อ" ตารางแบบนี้

เลือกความยาว (ชื่อ) จากตาราง

หลังจากคำขอนี้ คุณจะได้รับสิ่งนี้

4
6
7

เราอยู่กับคุณและตรวจสอบฟังก์ชันสตริง SQL พื้นฐาน เราจะดำเนินการสำรวจ SQL ต่อไปในบทความต่อๆ ไป

เราจะเรียนรู้ที่จะสรุป ไม่ นี่ไม่ใช่ผลลัพธ์ของการศึกษา SQL แต่เป็นผลของค่าของคอลัมน์ของตารางฐานข้อมูล ฟังก์ชันการรวมของ SQL ดำเนินการกับค่าคอลัมน์เพื่อสร้างค่าผลลัพธ์เดียว ฟังก์ชันการรวม SQL ที่ใช้บ่อยที่สุดคือ SUM, MIN, MAX, AVG และ COUNT จำเป็นต้องแยกความแตกต่างระหว่างสองกรณีของการใช้ฟังก์ชันรวม ขั้นแรก ฟังก์ชันการรวมจะใช้ด้วยตัวเองและส่งกลับค่าผลลัพธ์เพียงค่าเดียว ประการที่สอง ฟังก์ชันการรวมจะใช้กับส่วนคำสั่ง SQL GROUP BY ซึ่งก็คือการจัดกลุ่มตามฟิลด์ (คอลัมน์) เพื่อรับค่าผลลัพธ์ในแต่ละกลุ่ม อันดับแรก เรามาพิจารณากรณีต่างๆ ของการใช้ฟังก์ชันการรวมโดยไม่มีการจัดกลุ่ม

ฟังก์ชัน SQL SUM

ฟังก์ชัน SQL SUM จะคืนค่าผลรวมของค่าของคอลัมน์ในตารางฐานข้อมูล ใช้ได้กับคอลัมน์ที่มีค่าเป็นตัวเลขเท่านั้น แบบสอบถาม SQLเพื่อให้ได้จำนวนเงินเริ่มต้นดังนี้:

เลือก SUM (COLUMN_NAME) ...

นิพจน์นี้ตามด้วย FROM (TABLE_NAME) และจากนั้นสามารถระบุเงื่อนไขได้โดยใช้ส่วนคำสั่ง WHERE นอกจากนี้ยังสามารถระบุ DISTINCT ไว้ด้านหน้าชื่อคอลัมน์ ซึ่งหมายความว่าจะนับเฉพาะค่าที่ไม่ซ้ำเท่านั้น โดยค่าเริ่มต้น ค่าทั้งหมดจะถูกนำมาพิจารณา (สำหรับสิ่งนี้คุณสามารถระบุได้โดยเฉพาะไม่ใช่ DISTINCT แต่ ALL แต่คำว่า ALL เป็นตัวเลือก)

ตัวอย่างที่ 1มีฐานข้อมูลของบริษัทพร้อมข้อมูลเกี่ยวกับแผนกและพนักงาน ตารางพนักงาน นอกจากทุกอย่างแล้ว ยังมีคอลัมน์ที่มีข้อมูลเกี่ยวกับเงินเดือนพนักงานอีกด้วย การเลือกจากตารางมีดังนี้ (หากต้องการขยายรูปภาพ ให้คลิกปุ่มซ้ายของเมาส์):

เพื่อให้ได้ผลรวมของเงินเดือนทั้งหมด เราใช้แบบสอบถามต่อไปนี้:

เลือก SUM (เงินเดือน) จากพนักงาน

ข้อความค้นหานี้จะส่งคืน 287664.63

และตอนนี้ . ในแบบฝึกหัด เราเริ่มทำให้งานซับซ้อนขึ้นแล้ว โดยนำพวกเขาเข้าใกล้สิ่งที่พบในทางปฏิบัติมากขึ้น

ฟังก์ชัน SQL MIN

ฟังก์ชัน SQL MIN ยังใช้งานได้กับคอลัมน์ที่มีค่าเป็นตัวเลขและคืนค่าต่ำสุดของค่าทั้งหมดในคอลัมน์ ฟังก์ชันนี้มีรูปแบบเดียวกับฟังก์ชัน SUM

ตัวอย่างที่ 3ฐานข้อมูลและตารางจะเหมือนกับในตัวอย่างที่ 1

จำเป็นต้องค้นหาค่าจ้างขั้นต่ำของพนักงานในแผนกที่มีหมายเลข 42 ในการดำเนินการนี้ให้เขียนคำขอต่อไปนี้:

คำขอจะคืนค่า 10505.90

และอีกครั้ง การออกกำลังกายด้วยตนเอง... ในแบบฝึกหัดนี้และแบบฝึกหัดอื่นๆ คุณจะต้องไม่เพียงแค่ตารางพนักงานเท่านั้น แต่ยังต้องใช้ตารางองค์กรซึ่งมีข้อมูลเกี่ยวกับแผนกต่างๆ ของบริษัทด้วย:


ตัวอย่างที่ 4ตารางองค์กรถูกเพิ่มลงในตารางพนักงาน ซึ่งมีข้อมูลเกี่ยวกับแผนกต่างๆ ของบริษัท แสดงจำนวนปีขั้นต่ำที่พนักงานคนเดียวทำงานในแผนกที่ตั้งอยู่ในเมืองบอสตัน

ฟังก์ชัน SQL MAX

ฟังก์ชัน SQL MAX ทำงานคล้ายกันและมีรูปแบบที่คล้ายกัน ซึ่งใช้เมื่อคุณต้องการกำหนดค่าสูงสุดจากค่าทั้งหมดในคอลัมน์

ตัวอย่างที่ 5

จำเป็นต้องค้นหาเงินเดือนสูงสุดของพนักงานในแผนกหมายเลข 42 ในการดำเนินการนี้ให้เขียนคำขอต่อไปนี้:

คำขอจะคืนค่า 18352.80

ถึงเวลาแล้ว แบบฝึกหัดสำหรับการแก้ปัญหาตนเอง.

ตัวอย่างที่ 6เรากำลังดำเนินการอีกครั้งกับสองโต๊ะ - พนักงานและองค์กร พิมพ์ชื่อแผนกและค่าคอมมิชชั่นสูงสุดที่ได้รับจากพนักงานหนึ่งคนในแผนกที่เป็นของแผนกตะวันออก ใช้ เข้าร่วม (เข้าร่วมตาราง) .

ฟังก์ชัน SQL AVG

ไวยากรณ์ด้านบนสำหรับฟังก์ชันที่อธิบายไว้ก่อนหน้านี้ก็เป็นจริงสำหรับฟังก์ชัน SQL AVG เช่นกัน ฟังก์ชันนี้ส่งคืนค่าเฉลี่ยของค่าทั้งหมดในคอลัมน์

ตัวอย่างที่ 7ฐานข้อมูลและตารางจะเหมือนกับในตัวอย่างก่อนหน้า

สมมติว่าคุณต้องการหาประสบการณ์การทำงานโดยเฉลี่ยของพนักงานในแผนกหมายเลข 42 โดยเขียนแบบสอบถามต่อไปนี้:

ผลลัพธ์จะเป็นค่า 6.33

ตัวอย่างที่ 8เราทำงานกับโต๊ะเดียว - พนักงาน ถอนเงินเดือนเฉลี่ยของพนักงานที่มีประสบการณ์ 4 ถึง 6 ปี

ฟังก์ชัน SQL COUNT

ฟังก์ชัน SQL COUNT ส่งกลับจำนวนระเบียนในตารางฐานข้อมูล หากคุณระบุ SELECT COUNT (COLUMN_NAME) ... ในการสืบค้น ผลลัพธ์จะเป็นจำนวนระเบียนที่ไม่รวมระเบียนซึ่งค่าของคอลัมน์เป็น NULL (ไม่ได้กำหนด) หากคุณใช้เครื่องหมายดอกจันเป็นอาร์กิวเมนต์และเริ่มการสืบค้น SELECT COUNT (*) ... ผลลัพธ์จะเป็นจำนวนระเบียน (แถว) ทั้งหมดในตาราง

ตัวอย่างที่ 9ฐานข้อมูลและตารางจะเหมือนกับในตัวอย่างก่อนหน้า

จำเป็นต้องค้นหาจำนวนพนักงานทั้งหมดที่ได้รับค่าคอมมิชชั่น จำนวนพนักงานที่มีค่าคอลัมน์ Comm ไม่ใช่ NULL จะส่งคืนแบบสอบถามต่อไปนี้:

SELECT COUNT (Comm) จากเจ้าหน้าที่

ผลลัพธ์คือ 11

ตัวอย่างที่ 10.ฐานข้อมูลและตารางจะเหมือนกับในตัวอย่างก่อนหน้า

หากคุณต้องการค้นหาจำนวนระเบียนทั้งหมดในตาราง เราใช้การสืบค้นที่มีเครื่องหมายดอกจันเป็นอาร์กิวเมนต์ของฟังก์ชัน COUNT:

SELECT COUNT (*) จากเจ้าหน้าที่

ผลลัพธ์คือ 17

ในครั้งต่อไป การออกกำลังกายด้วยตนเองคุณจะต้องใช้แบบสอบถามย่อย

ตัวอย่างที่ 11เราทำงานกับโต๊ะเดียว - พนักงาน แสดงจำนวนพนักงานในแผนกวางแผน (ธรรมดา)

รวมฟังก์ชันด้วย SQL GROUP BY (การจัดกลุ่ม)

ทีนี้มาดูการใช้ฟังก์ชันการรวมร่วมกับคำสั่งย่อย SQL GROUP BY คำสั่งย่อย SQL GROUP BY ใช้เพื่อจัดกลุ่มค่าผลลัพธ์ตามคอลัมน์ของตารางฐานข้อมูล เว็บไซต์มี บทเรียนที่อุทิศให้กับโอเปอเรเตอร์นี้ต่างหาก .

ตัวอย่างที่ 12มีฐานข้อมูลพอร์ทัลโฆษณา ประกอบด้วยตารางโฆษณาซึ่งมีข้อมูลเกี่ยวกับโฆษณาที่ส่งสำหรับสัปดาห์ คอลัมน์หมวดหมู่ประกอบด้วยข้อมูลเกี่ยวกับหมวดหมู่ขนาดใหญ่ของโฆษณา (เช่น อสังหาริมทรัพย์) และคอลัมน์ชิ้นส่วนมีข้อมูลเกี่ยวกับชิ้นส่วนขนาดเล็กที่รวมอยู่ในหมวดหมู่ (เช่น พาร์ทเมนท์และวิลล่าเป็นส่วนหนึ่งของหมวดหมู่อสังหาริมทรัพย์) คอลัมน์หน่วยประกอบด้วยข้อมูลเกี่ยวกับจำนวนโฆษณาที่ส่ง และคอลัมน์เงินประกอบด้วยจำนวนเงินที่ได้รับสำหรับการส่งโฆษณา

หมวดหมู่ส่วนหนึ่งหน่วยเงิน
ขนส่งยานยนต์110 17600
อสังหาริมทรัพย์อพาร์ตเมนต์89 18690
อสังหาริมทรัพย์กระท่อม57 11970
ขนส่งรถจักรยานยนต์131 20960
วัสดุก่อสร้างไม้กระดาน68 7140
วิศวกรรมไฟฟ้าชุดทีวี127 8255
วิศวกรรมไฟฟ้าตู้เย็น137 8905
วัสดุก่อสร้างRegips112 11760
เวลาว่างหนังสือ96 6240
อสังหาริมทรัพย์บ้าน47 9870
เวลาว่างดนตรี117 7605
เวลาว่างเกม41 2665

ใช้คำสั่ง SQL GROUP BY ค้นหาจำนวนเงินที่ได้รับจากการแสดงโฆษณาในแต่ละหมวดหมู่ เราเขียนคำขอต่อไปนี้:

เลือกหมวดหมู่ SUM (เงิน) เป็นเงินจากกลุ่มโฆษณาตามหมวดหมู่

ตัวอย่างที่ 13ฐานข้อมูลและตารางจะเหมือนกับในตัวอย่างก่อนหน้า

ใช้คำสั่ง SQL GROUP BY เพื่อดูว่าส่วนใดของแต่ละหมวดหมู่มีโฆษณามากที่สุด เราเขียนคำขอต่อไปนี้:

SELECT หมวดหมู่, ส่วน, MAX (หน่วย) AS สูงสุดจากกลุ่มโฆษณา BY Category

ผลลัพธ์จะเป็นตารางต่อไปนี้:

สามารถรับค่าทั้งหมดและค่าเฉพาะในตารางเดียวได้ รวมผลลัพธ์การสืบค้นโดยใช้ตัวดำเนินการ UNION .

ฐานข้อมูลเชิงสัมพันธ์และภาษา SQL