Variable – Biến

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
@@VERSIONThông tin phiên bản Microsoft SQL Server
@@ERRORMã lỗi của câu lệnh thực thi gần nhất
@@FETCH_STATUSTrạng thái sau khi đọc một dòng của CURSOR
@@ROWCOUNTSố 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

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *