Variable – Biến
Nội dung
1. Mô tả
- Variable (biến) là một đối tượng trong CSDL dùng để lưu dữ liệu tạm thời.
- Biến hệ thống (Global Variable): cung cấp thông tin của hệ thống. Ví dụ:
Tên biến | Ý nghĩa |
@@VERSION | Thông tin phiên bản Microsoft SQL Server |
@@ERROR | Mã lỗi của câu lệnh thực thi gần nhất |
@@FETCH_STATUS | Trạng thái sau khi đọc một dòng của CURSOR |
@@ROWCOUNT | Số dòng bị tác động bởi câu lệnh gần nhất |
… | … |
- Biến do người dùng định nghĩa (Local Variable): phạm vi sử dụng trong một Batch hoặc một khối lệnh (BEGIN END). Xem cú pháp và ví dụ bên dưới.
2. Cú pháp
- Cách 1
--Khai báo biến (DECLARE)
DECLARE Tên_biến Kiểu_dữ_liệu
--Gán giá trị cho biến (sử dụng SET hoặc SELECT)
SET Tên_biến_1 = Giá_trị_2
SET Tên_biến_1 = Giá_trị_2
...
--Hoặc
SELECT Tên_biến_1 = Giá_trị_1, Tên_biến_2 = Giá_trị_2,...
--Hoặc
SELECT Tên_biến_1 = Giá_trị_1, Tên_biến_2 = Giá_trị_2,...
FROM Tên_bảng
--Kết xuất giá trị của biến (PRINT và SELECT)
PRINT Tên_biến
--Hoặc
SELECT Tên_biến_1, Tên_biến_2,...
- Cách 2
--Hoặc khai báo và gán luôn giá trị cho biến
DECLARE Tên_biến Kiểu_dữ_liệu = Giá_trị
--Kết xuất giá trị của biến (PRINT và SELECT)
PRINT Tên_biến
--Hoặc
SELECT Tên_biến_1, Tên_biến_2,...
3. Ví dụ
- Cách 1
--Khai báo biến
DECLARE @Ho nvarchar(30), @Ten nvarchar(20)
--Gán giá trị cho biến
SET @Ho = N'Hà Thị Bạch'
SET @Ten = N'Lan'
--Hoặc
SELECT @Ho = N'Hà Thị Bạch', @Ten = N'Lan'
--Hoặc
SELECT @Ho = Ho_sinh_vien, @Ten = Ten_sinh_vien
FROM SINH_VIEN
WHERE Ma_sinh_vien = 'C00'
--Kết xuất giá trị của biến
PRINT N'Họ: ' + @Ho
PRINT N'Tên: ' + @Ten
--Hoặc
SELECT @Ho AS Ho, @Ten AS Ten
- Cách 2
--Hoặc khai báo và gán luôn giá trị cho biến
DECLARE @Ho nvarchar(30) = N'Hà Thị Bạch', @Ten nvarchar(20) = N'Lan'
--Kết xuất giá trị của biến
PRINT N'Họ: ' + @Ho
PRINT N'Tên: ' + @Ten
--Hoặc
SELECT @Ho AS Ho, @Ten AS Ten
- Tính và in ra điểm trung bình
--Khai báo và gán giá trị cho biến
DECLARE
@Diem_toan decimal(3,1) = 9.5,
@Diem_ly decimal(3,1) = 7.5,
@Diem_hoa decimal(3,1) = 8.0
DECLARE @diem_trung_binh decimal(3,1)
--Tính điểm trung bình
SET @Diem_trung_binh = (@Diem_toan + @Diem_ly + @Diem_hoa) / 3
--In ra điểm trung bình
PRINT @Diem_trung_binh
- Tính và in ra điểm trung bình của một sinh viên
--Tạo bảng tên DIEM
CREATE TABLE DIEM
(
Ma_So char(3) PRIMARY KEY,
Diem_Toan decimal(3,1),
Diem_Ly decimal(3,1),
Diem_Hoa decimal(3,1)
)
--Thêm dữ liệu
INSERT DIEM VALUES('A01', 9.5, 7.5, 8.0)
--Khai báo biến
DECLARE @diem_toan decimal(3,1), @diem_ly decimal(3,1), @diem_hoa decimal(3,1)
DECLARE @diem_trung_binh decimal(3,1)
--Đọc dữ liệu ra biến
SELECT @diem_toan = Diem_Toan, @diem_ly = Diem_Ly, @diem_hoa = Diem_Hoa
FROM DIEM
WHERE Ma_So = 'A01'
--Tính điểm trung bình
SET @diem_trung_binh = (@diem_toan + @diem_ly + @diem_hoa) / 3
--In ra điểm trung bình
PRINT @diem_trung_binh