Giới thiệu
T-SQL (Transact SQL) là ngôn ngữ lập trình cơ sở dữ liệu thủ tục độc quyền của Microsoft dành cho SQL Server. Chúng cũng được sử dụng để viết các thủ tục được lưu trữ, là một đoạn mã nằm trên máy chủ để quản lý các quy tắc nghiệp vụ phức tạp khó hoặc không thể thực hiện trong các hoạt động tổng hợp thuần túy.
Trong SQL, ngôn ngữ T-SQL được chia thành 3 nhóm chính:
+ Ngôn ngữ Định nghĩa Dữ liệu (DDL) - Ngôn ngữ Định nghĩa dữ liệu
+ Ngôn ngữ điều khiển dữ liệu (DCL) - ngôn ngữ điều khiển
+ Ngôn ngữ thao tác dữ liệu (DML) -Ngôn ngữ thao tác dữ liệu
Khai báo và gán giá trị cho biến
Cú pháp khai báo biến:
DECLARE @VAR_NAME VAR_TYPE
Trong đó:
+ DECLARE: từ khóa bắt buộc khi khai báo biến.
+ VAR_NAME: tên biến được khai báo theo quy tắc đặt tên định nghĩa.
+ VAR_TYPE: tên kiểu dữ liệu.
Cú pháp gán giá trị cho biến:
Cách 1:
SET @VAR_NAME = EXPRESSION
Cách 2:
SELECT @VAR_NAME = EXPRESSION
Ví dụ minh họa
Để thuận tiện cho các bạn học tập, mình có tạo sẵn file .sql trong này đã mình tạo cấu trúc bảng và data sẵn để các bạn dễ dàng thực hiện truy vấn, các bạn có thể tải tại đây.
Ví dụ 1: Tìm tất cả nhân viên thuộc phòng số 4.
Hướng dẫn giải:
USE QLDEAN
DECLARE @MA_PHONG SMALLINT
SET @MA_PHONG = 4
SELECT *
FROM NHANVIEN
WHERE PHG = @MA_PHONG
Kết quả:
Ví dụ 2: Tìm tất cả nhân viên tên 'HUNG' và có địa chỉ ở 'TP.HCM'.
Hướng dẫn giải:
USE QLDEAN
GO
-- Khai báo 2 biến
DECLARE @TENNV NVARCHAR(20)
DECLARE @DIACHI NVARCHAR(30)
-- Gán giá trị cho 2 biến
SET @TENNV = 'HUNG'
SET @DIACHI = '%TP.HCM%'
-- Dùng giá trị 2 biến trong mệnh đề WHERE CỦA lệnh SELECT
SELECT *
FROM NHANVIEN
WHERE TENNV = @TENNV AND DCHI LIKE @DIACHI
Kết quả:
Ví dụ 3: Tìm lương cao nhất trong bảng nhân viên và gán trị cho biến 'Luong'
Hướng dẫn giải:
USE QLDEAN
GO
-- Khai báo biến
DECLARE @Luong INT
-- Gán giá trị biến bằng lệnh SELECT
SELECT @Luong = MAX(LUONG)
FROM NHANVIEN
GO
Kết quả:
Ví dụ 4: Tìm tất cả nhân viên có mức lương bằng với mức lương cao nhất trong công ty.
Hướng dẫn giải:
USE QLDEAN
GO
-- Khai báo biến
DECLARE @Luong INT
-- Gán giá trị biến bằng lệnh SELECT
SELECT @Luong = MAX(LUONG)
FROM NHANVIEN
-- Danh sách nhân viên có mức lương cao nhất
SELECT *
FROM NHANVIEN
WHERE LUONG = @Luong
Kết quả: