บทนำ
ภาษา SQL
SQL เป็นตัวย่อสําหรับ Structured Query Language SQL ถูกใช้เพื่อสื่อสารกับฐานข้อมูลเชิงสัมพันธ์ คําสั่ง SQL ใช้เพื่อทํางาน เช่น อัปเดตข้อมูลในฐานข้อมูล หรือดึงข้อมูลจากฐานข้อมูล ตัวอย่างเช่น คําสั่ง SELECT ของ SQL ถูกใช้เพื่อคิวรีฐานข้อมูลและส่งกลับชุดของแถวข้อมูล ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ทั่วไปบางระบบที่ใช้ SQL ประกอบด้วย Microsoft SQL Server, MySQL, PostgreSQL, MariaDB และ Oracle
มีมาตรฐานภาษา SQL ที่กําหนดโดยสถาบันมาตรฐานแห่งชาติอเมริกัน (ANSI) ผู้จัดจําหน่ายแต่ละรายจะเพิ่มการเปลี่ยนแปลงและส่วนขยายของตนเอง
ในโมดูลนี้ คุณจะได้เรียนรู้วิธีการ:
- ทําความเข้าใจ SQL คืออะไรและใช้งานอย่างไร
- ระบุวัตถุฐานข้อมูลใน Schema
- ระบุชนิดคําสั่ง SQL
- ใช้คําสั่ง SELECT เพื่อคิวรีตารางในฐานข้อมูล
- ทํางานกับชนิดข้อมูล
- จัดการค่า NULL
Transact-SQL
คําสั่ง SQL พื้นฐาน เช่น SELECT, INSERT, UPDATE และ DELETE จะพร้อมใช้งานไม่ว่าคุณจะใช้งานระบบฐานข้อมูลเชิงสัมพันธ์ใดก็ตาม แม้ว่าคําสั่ง SQL เหล่านี้เป็นส่วนหนึ่งของมาตรฐาน SQL ANSI แต่ระบบการจัดการฐานข้อมูลจํานวนมากยังมีส่วนขยายของตัวเองด้วย ส่วนขยายเหล่านี้มีฟังก์ชันการทํางานที่ไม่ครอบคลุมโดยมาตรฐาน SQL และรวมถึงพื้นที่เช่นการจัดการความปลอดภัยและความสามารถในการโปรแกรม ระบบฐานข้อมูล Microsoft เช่น SQL Server, Azure SQL Database, Microsoft Fabric และระบบอื่น ๆ ใช้ภาษาเฉพาะของ SQL ที่เรียกว่า Transact-SQL หรือ T-SQL T-SQL มีส่วนขยายภาษาสําหรับการเขียนกระบวนงานและฟังก์ชันที่เก็บไว้ ซึ่งเป็นโค้ดแอปพลิเคชันที่จัดเก็บไว้ในฐานข้อมูล และการจัดการบัญชีผู้ใช้
SQL เป็นภาษาเชิงประกาศ
ภาษาโปรแกรมสามารถจัด ประเภทเป็นขั้นตอน หรือ เชิงประกาศได้ ภาษาเชิงขั้นตอนช่วยให้คุณสามารถกําหนดลําดับของคําสั่งที่คอมพิวเตอร์ทําตามเพื่อทํางานหนึ่งๆ ได้ ภาษาที่เปิดเผยช่วยให้คุณสามารถอธิบายเอาต์พุตที่คุณต้องการและปล่อยให้รายละเอียดของขั้นตอนที่จําเป็นในการสร้างผลลัพธ์ไปยังกลไกการดําเนินการ
SQL สนับสนุนไวยากรณ์ขั้นตอนบางอย่าง แต่การคิวรีข้อมูลด้วย SQL มักจะเป็นไปตามตรรกะเชิงประกาศ คุณใช้ SQL เพื่ออธิบายผลลัพธ์ที่คุณต้องการ และตัวประมวลผลคิวรีของกลไกจัดการฐานข้อมูลจะพัฒนา แผนคิวรี เพื่อเรียกใช้ ตัวประมวลผลคิวรีใช้สถิติเกี่ยวกับข้อมูลในฐานข้อมูลและดัชนีที่กําหนดไว้ในตารางเพื่อสร้างแผนคิวรีที่ดี
ข้อมูลเชิงสัมพันธ์
SQL มักจะใช้บ่อยที่สุด (แม้ว่าจะไม่เสมอไป) เพื่อคิวรีข้อมูลในฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลเชิงสัมพันธ์คือฐานข้อมูลที่มีการจัดการข้อมูลในตารางหลายตาราง (ในทางเทคนิคเรียกว่า ความสัมพันธ์) ซึ่งแต่ละฐานข้อมูลแสดงถึงเอนทิตีชนิดเฉพาะ (เช่น ลูกค้า ผลิตภัณฑ์ หรือใบสั่งขาย) แอตทริบิวต์ของเอนทิตีเหล่านี้ (ตัวอย่างเช่น ชื่อของลูกค้า ราคาของผลิตภัณฑ์ หรือวันที่สั่งซื้อของใบสั่งขาย) จะถูกกําหนดเป็นคอลัมน์ หรือแอตทริบิวต์ ของตาราง และแต่ละแถวในตารางแสดงอินสแตนซ์ของชนิดเอนทิตี (ตัวอย่างเช่น ลูกค้า ผลิตภัณฑ์ หรือใบสั่งขาย)
ตารางในฐานข้อมูลเกี่ยวข้องกับอีกตารางหนึ่งโดยใช้คอลัมน์ คีย์ ที่ระบุเอนทิตีเฉพาะที่แสดงโดยเฉพาะ มีการกําหนดคีย์หลักสําหรับแต่ละตาราง และการอ้างอิงถึงคีย์นี้ถูกกําหนดเป็น Foreign Key ในตารางใด ๆ ที่เกี่ยวข้อง ซึ่งจะเข้าใจได้ง่ายขึ้นโดยการดูตัวอย่าง:
ไดอะแกรมแสดงฐานข้อมูลเชิงสัมพันธ์ที่ประกอบด้วยสี่ตาราง:
- ลูกค้า
- SalesOrderHeader
- SalesOrderDetail
- ผลิตภัณฑ์
ลูกค้าแต่ละรายจะถูกระบุโดยฟิลด์ รหัสลูกค้า ที่ไม่ซ้ํากัน - ฟิลด์นี้เป็นคีย์หลักสําหรับตาราง ลูกค้า ตาราง SalesOrderHeader มีคีย์หลักที่ชื่อ ว่า OrderID เพื่อระบุแต่ละคําสั่งซื้อ และยังมีคีย์นอกรหัส ลูกค้า ที่อ้างอิงคีย์หลักในตาราง ลูกค้า เพื่อระบุว่าลูกค้ารายใดเกี่ยวข้องกับแต่ละคําสั่งซื้อ ข้อมูลเกี่ยวกับรายการแต่ละรายการในคําสั่งซื้อจะถูกจัดเก็บไว้ในตาราง SalesOrderDetail ซึ่งมีคีย์หลักแบบรวมที่รวม OrderID ในตาราง SalesOrderHeader ด้วยค่า LineItemNo ชุดข้อมูลของค่าเหล่านี้จะระบุเฉพาะรายการบรรทัด เขตข้อมูล OrderID ยังใช้เป็นคีย์นอกเพื่อระบุลําดับที่รายการในบรรทัดเป็นสมาชิก เขตข้อมูล ProductID ถูกใช้เป็นคีย์นอกไปยังคีย์หลักของ ProductID ของตาราง ผลิตภัณฑ์ เพื่อระบุว่าผลิตภัณฑ์ใดที่ถูกสั่ง
การประมวลผลตามการตั้งค่า
ทฤษฎีชุดเป็นหนึ่งในรากฐานทางคณิตศาสตร์ของแบบจําลองเชิงสัมพันธ์ของการจัดการข้อมูลและเป็นพื้นฐานในการทํางานกับฐานข้อมูลเชิงสัมพันธ์ แม้ว่าคุณอาจสามารถเขียนคิวรีใน T-SQL โดยไม่มีความเข้าใจอย่างละเอียดเกี่ยวกับชุดได้ แต่ในที่สุดคุณอาจมีปัญหาในการเขียนคําสั่งที่ซับซ้อนมากขึ้นบางส่วนที่อาจจําเป็นสําหรับประสิทธิภาพสูงสุด
โดยไม่ต้องดําดิ่งลงไปในคณิตศาสตร์ของทฤษฎีชุดคุณสามารถคิดว่าเป็น "คอลเลกชันของวัตถุที่แน่นอนและแตกต่างกันถือว่าเป็นทั้งหมด" ในเงื่อนไขที่นําไปใช้กับฐานข้อมูล SQL Server คุณสามารถนึกภาพของชุดเป็นคอลเลกชันของวัตถุที่แตกต่างกันที่ประกอบด้วยสมาชิกศูนย์หรือมากกว่าของชนิดเดียวกัน ตัวอย่างเช่น ตาราง ลูกค้า แสดงถึงชุด: โดยเฉพาะ ชุดของลูกค้าทั้งหมด คุณจะเห็นว่าผลลัพธ์ของคําสั่ง SELECT รวมไปถึงการตั้งค่าด้วย
เมื่อคุณเรียนรู้เพิ่มเติมเกี่ยวกับคําสั่งคิวรี T-SQL สิ่งสําคัญคือต้องคิดถึงทั้งชุดแทนที่จะเป็นสมาชิกรายบุคคล ความคิดนี้จะทําให้คุณเขียนโค้ดตามการตั้งค่าแทนที่จะคิดทีละแถว การทํางานกับชุดจําเป็นต้องคิดในแง่ของการดําเนินการที่เกิดขึ้น "ทั้งหมดในครั้งเดียว" แทนที่จะเป็นทีละครั้ง
คุณลักษณะหนึ่งที่สําคัญที่ควรทราบเกี่ยวกับทฤษฎีชุดคือ ไม่มีข้อมูลจําเพาะเกี่ยวกับลําดับใด ๆ ของสมาชิกของชุด การขาดลําดับนี้จะนําไปใช้กับตารางฐานข้อมูลเชิงสัมพันธ์ ไม่มีแนวคิดของแถวแรก แถวที่สอง หรือแถวสุดท้าย องค์ประกอบอาจสามารถเข้าถึงได้ (และเรียกใช้) ในลําดับใดก็ได้ หากคุณต้องการแสดงผลลัพธ์ตามลําดับที่กําหนด คุณต้องระบุผลลัพธ์อย่างชัดเจนโดยใช้ส่วนคําสั่ง ORDER BY ในคิวรี SELECT ของคุณ