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 เต็มที่