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

ความแตกต่างระหว่าง SQL และ T-SQL

SQL (Structured Query Language)

SQL เป็นภาษา Non-procedural (ไม่ใช่ขั้นตอน) ใช้โดย Database Engines เพื่อตีความ Query สร้าง/แก้ไข/เข้าถึงองค์ประกอบฐานข้อมูล

T-SQL (Transact-SQL)

T-SQL เป็นส่วนขยาย Procedural ของ SQL ใช้โดย Microsoft SQL Server คล้ายกับ PL/SQL ของ Oracle

ตารางเปรียบเทียบความแตกต่างสำคัญ

ลำดับ หัวข้อ SQL T-SQL
1 ประเภท Non-procedural โดยธรรมชาติ Procedural โดยธรรมชาติ
2 ความสามารถ ให้ฟังก์ชันจัดการและควบคุมข้อมูล เขียน Procedure/Function ตัวเองได้ พร้อมตัวแปร Local
3 ลิขสิทธิ์ เปิด ใช้ร่วมได้ทั่ว RDBMS ทุกตัว เฉพาะ SQL Server เป็น Proprietary
4 ลำดับ Query ส่ง Query ทีละคำสั่ง ส่งหลาย Query พร้อมกันเป็น Batch ได้
5 คุณสมบัติ DDL, DML, DQL Operations เพิ่ม Transaction Control, Exception Handling ฯลฯ

รายละเอียดเพิ่มเติม

SQL (มาตรฐาน ANSI/ISO)

  • เป็นมาตรฐานอุตสาหกรรม รองรับโดยทุก RDBMS (MySQL, PostgreSQL, Oracle, SQL Server, SQLite, ฯลฯ)
  • เน้น Declarative: บอก "ต้องการอะไร" ไม่ใช่ "ทำอย่างไร"
  • Core: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT, REVOKE

T-SQL (Microsoft Extension)

  • เพิ่ม Control Flow: IF...ELSE, WHILE, TRY...CATCH, GOTO, RETURN
  • ตัวแปร: DECLARE @var TYPE, SET/SELECT
  • Temp Tables: #temp, ##global_temp
  • Dynamic SQL: EXEC(@sql), sp_executesql
  • System Functions: @@ROWCOUNT, @@IDENTITY, GETDATE(), ISNULL()
  • Window Functions, CTE, MERGE, PIVOT/UNPIVOT

สรุป

  • SQL = ภาษามาตรฐาน พกพาได้ (Portable)
  • T-SQL = Dialect ของ SQL Server เต็มไปด้วยคุณสมบัติ Programming
  • หากเขียนแอปพลิเคชัน Cross-Database → ใช้ SQL มาตรฐาน
  • หากใช้ SQL Server อย่างเดียว → ใช้ T-SQL เต็มที่