一、T-SQL簡介
T-SQL(Transact-SQL)是針對SQL Server數據庫管理系統所開發的一種數據庫編程語言。T-SQL結合了SQL語言和流程控制語言的特性,這使得T-SQL具有處理大量數據和處理複雜邏輯的能力。T-SQL的語法與SQL相似,也可以用於創建、刪除、查詢和管理數據庫對象。T-SQL還支持過程、流程控制語句、異常處理和使用變量等編程概念。
二、T-SQL基礎語法
1、T-SQL語句以分號(;)結束,通常都是以大寫字母編寫。例如:
SELECT * FROM Employees;
SELECT FirstName,LastName FROM Employees;
2、使用注釋符號(–)或(/ * * /)可以寫注釋,例如:
-- 這是一條注釋
/*
這是多行注釋,可以
多行注釋
*/
3、T-SQL語句通常包含關鍵字、表名、列名和運算符等元素。例如:
SELECT FirstName,LastName FROM Employees WHERE LastName = 'Smith';
其中,SELECT是關鍵字,FirstName和LastName是列名,Employees是表名,WHERE是運算符。
三、T-SQL數據類型
T-SQL支持多種數據類型,包括整數、浮點數、日期時間、字符、布爾等。其中一些常見的數據類型及示例:
1、整數:int, bigint
DECLARE @age int;
SET @age = 30;
2、浮點數:float, real
DECLARE @price float;
SET @price = 3.14;
3、日期時間:datetime, date
DECLARE @datetime datetime;
SET @datetime = '2022-01-01 12:00:00';
4、字符:varchar, nvarchar
DECLARE @name varchar(50);
SET @name = 'Tom';
5、布爾:bit
DECLARE @isStudent bit;
SET @isStudent = 1;
四、T-SQL函數
T-SQL內置了豐富的函數,可以用於處理數據、日期、字符串等。其中一些常見的函數及示例:
1、數據函數:SUM、AVG、COUNT、MIN、MAX等
SELECT COUNT(*) FROM Students;
2、日期函數:GETDATE、DATEADD、DATEDIFF等
SELECT GETDATE(), DATEADD(day, 7, GETDATE());
3、字符串函數:LEN、LOWER、UPPER、LEFT、RIGHT等
SELECT LEN('Hello World'), UPPER('hello world');
五、T-SQL存儲過程
T-SQL可以編寫存儲過程,以便在應用程序中重複使用。存儲過程是一組SQL語句的集合,可以接受參數並返回結果。例如:
CREATE PROCEDURE GetStudentInfo
@id int
AS
BEGIN
SELECT * FROM Students WHERE id = @id;
END
GO
EXEC GetStudentInfo 101;
以上示例創建了一個名為GetStudentInfo的存儲過程,接受一個名為id的參數。執行存儲過程時,傳入參數101,並返回id為101的學生信息。
六、T-SQL視圖
T-SQL可以創建視圖,可以簡化查詢操作,隱藏表結構細節。
CREATE VIEW StudentInfo AS
SELECT s.id, s.name, s.age, d.department_name
FROM Students s
JOIN Departments d
ON s.department_id = d.id;
以上示例創建了一個視圖StudentInfo,包含學生id、姓名、年齡以及所在系的名稱。可以直接查詢視圖獲取結果,例如:
SELECT * FROM StudentInfo WHERE age > 20;
七、T-SQL觸發器
T-SQL可以創建觸發器,用於在特定的數據庫操作(如INSERT、UPDATE、DELETE)發生時自動執行一些操作。例如:
CREATE TRIGGER update_student_count
ON Departments
AFTER INSERT, DELETE
AS
BEGIN
UPDATE Departments SET student_count = (SELECT COUNT(*) FROM Students WHERE department_id = inserted.id)
FROM Departments d
JOIN inserted
ON d.id = inserted.id;
END
以上示例創建了一個名為update_student_count的觸發器,當在Departments表中插入或刪除記錄時,更新每個系中的學生數量。
八、T-SQL事務
T-SQL支持事務,用於控制一組SQL語句的執行。事務應該具有原子性、一致性、隔離性和持久性等特性。例如:
BEGIN TRANSACTION;
INSERT INTO Employees (FirstName, LastName, Age) VALUES ('John', 'Smith', 30);
UPDATE Departments SET employee_count = employee_count + 1 WHERE id = 101;
COMMIT;
以上示例創建了一個包含兩個SQL語句的事務,實現向Employees表中插入一條記錄,並將id為101的Department表記錄的employee_count加1。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/153306.html