Biến SQL: SQL Server Khai báo, đặt và chọn biến

Biến trong SQL Server là gì?

Trong MS SQL, các biến là đối tượng đóng vai trò giữ chỗ cho một vị trí bộ nhớ. Biến giữ giá trị dữ liệu duy nhất.

Các loại biến trong SQL: Cục bộ, Toàn cầu

MS SQL có hai loại biến:

  1. Biến cục bộ
  2. Biến toàn cầu.

Tuy nhiên, người dùng chỉ có thể tạo một biến cục bộ.

Hình dưới đây giải thích hai loại biến có sẵn trong Máy chủ MSSQL.

Biến SQL
Loại biến trong SQL Server

Biến cục bộ

  • Người dùng khai báo biến cục bộ.
  • Theo mặc định, một biến cục bộ bắt đầu bằng @.
  • Mọi phạm vi biến cục bộ đều có hạn chế đối với lô hoặc quy trình hiện tại trong bất kỳ phiên nào.

Biến toàn cục

  • Hệ thống duy trì biến toàn cục. Người dùng không thể khai báo chúng.
  • Biến toàn cục bắt đầu bằng @@
  • Nó lưu trữ thông tin liên quan đến phiên.

Cách KHAI THÁC một biến trong SQL

  • Trước khi sử dụng bất kỳ biến nào trong lô hoặc quy trình, bạn cần phải khai báo biến.
  • Lệnh DECLARE được sử dụng để biến DECLARE đóng vai trò giữ chỗ cho vị trí bộ nhớ.
  • Chỉ sau khi khai báo xong, một biến mới có thể được sử dụng trong phần tiếp theo của lô hoặc quy trình.

Cú pháp TSQL:

DECLARE  { @LOCAL_VARIABLE[AS] data_type  [ = value ] }

Quy tắc:

  • Khởi tạo là một điều tùy chọn trong khi khai báo.
  • Theo mặc định, DECLARE khởi tạo biến thành NULL.
  • Việc sử dụng từ khóa 'AS' là tùy chọn.
  • Để khai báo nhiều biến cục bộ, hãy sử dụng dấu phẩy sau định nghĩa biến cục bộ đầu tiên, sau đó xác định tên biến cục bộ tiếp theo và loại dữ liệu.

Ví dụ khai báo biến

Truy vấn: Với 'AS'

DECLARE @COURSE_ID AS INT;

Truy vấn: Không có 'AS'

DECLARE @COURSE_NAME VARCHAR (10);

Truy vấn: KHAI THÁC hai biến

DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);

Gán giá trị cho biến SQL

Bạn có thể gán giá trị cho một biến theo cách sau: số ba cách:

  1. Trong quá trình khai báo biến bằng từ khóa DECLARE.
  2. Sử dụng BỘ
  3. Sử dụng CHỌN

Chúng ta hãy xem xét cả ba cách chi tiết:

Trong quá trình khai báo biến bằng từ khóa DECLARE

Cú pháp T-SQL:

DECLARE { @Local_Variable [AS] Datatype [ = value ] }

Ở đây, sau kiểu dữ liệu, chúng ta có thể sử dụng '=' theo sau là giá trị được gán

truy vấn:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Gán giá trị cho biến SQL

Sử dụng BIẾN ĐẶT SQL

Đôi khi chúng ta muốn tách biệt việc khai báo và khởi tạo. SET có thể được sử dụng để gán giá trị cho biến, sau khi khai báo một biến. Dưới đây là các cách khác nhau để gán giá trị bằng SET:

Ví dụ: Gán giá trị cho biến bằng SET

Cú pháp:

DECLARE @Local_Variable <Data_Type>
SET @Local_Variable =  <Value>

truy vấn:

DECLARE @COURSE_ID AS INT
SET @COURSE_ID = 5
PRINT @COURSE_ID

BIẾN TẬP SQL

Ví dụ: Gán giá trị cho nhiều biến sử dụng BỘ.

Cú pháp:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>,
SET @Local_Variable_1 = <Value_1>
SET @Local_Variable_2 = <Value_2>

Quy tắc: Một từ khóa SET chỉ có thể được sử dụng để gán giá trị cho một biến.

truy vấn:

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SET @COURSE_ID = 5
SET @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

BIẾN TẬP SQL

Ví dụ: Gán giá trị cho một biến bằng a Truy vấn con vô hướng sử dụng BỘ

Cú pháp:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)

Quy tắc:

  • Đặt truy vấn trong dấu ngoặc đơn.
  • Truy vấn phải là truy vấn vô hướng. Truy vấn vô hướng là truy vấn có kết quả chỉ là một hàng và một cột. Nếu không, truy vấn sẽ đưa ra lỗi.
  • Nếu truy vấn trả về hàng 0 thì biến được đặt thành EMPTY, tức là NULL.

Giả thiết: Giả sử rằng chúng ta có bảng là 'Guru99' với hai cột như hiển thị bên dưới:

BIẾN TẬP SQL

Chúng tôi sẽ sử dụng bảng 'Guru99' trong các hướng dẫn tiếp theo

Ví dụ 1: Kết quả là khi truy vấn con trả về một hàng.

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3)
PRINT @COURSE_NAME

BIẾN TẬP SQL

Ví dụ 2: Khi kết quả là truy vấn con trả về hàng XNUMX

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

Trong trường hợp cụ thể này, giá trị biến là EMPTY, tức là NULL.

BIẾN TẬP SQL

Sử dụng BIẾN CHỌN SQL

Giống như SET, chúng ta cũng có thể sử dụng SELECT để gán giá trị cho các biến, sau đó khai báo một biến bằng DECLARE. Dưới đây là các cách khác nhau để gán giá trị bằng CHỌN:

Ví dụ: Gán giá trị cho một biến bằng SELECT

Cú pháp:

DECLARE @LOCAL_VARIABLE <Data_Type>
SELECT @LOCAL_VARIABLE = <Value>

truy vấn:

DECLARE @COURSE_ID INT
SELECT @COURSE_ID = 5
PRINT @COURSE_ID

BIẾN CHỌN SQL

Ví dụ: Gán giá trị cho nhiều biến bằng SELECT

Cú pháp:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>,  @Local_Variable _2 = <Value_2>

Quy tắc: Không giống như SET, SELECT có thể được sử dụng để gán giá trị đến nhiều biến ngăn cách bởi dấu phẩy.

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

BIẾN CHỌN SQL

Ví dụ: Gán giá trị cho một biến bằng Truy vấn con bằng SELECT

Cú pháp:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)

Quy tắc:

  • Đính kèm truy vấn trong ngoặc đơn.
  • Truy vấn phải là truy vấn vô hướng. Truy vấn vô hướng là truy vấn có kết quả là một hàng và một cột. Nếu không, truy vấn sẽ đưa ra lỗi.
  • Nếu truy vấn trả về 0 hàng thì biến đó là EMPTY, tức là NULL.
  • Xem xét lại bảng 'Guru99' của chúng tôi

Ví dụ 1: Kết quả là khi truy vấn con trả về một hàng.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1)
PRINT @COURSE_NAME

BIẾN CHỌN SQL

Ví dụ 2: Kết quả là khi truy vấn con trả về hàng 0

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

Trong trường hợp cụ thể này, biến là EMPTY, tức là NULL.

BIẾN CHỌN SQL

Ví dụ 3: Gán giá trị cho một biến bằng câu lệnh SELECT thông thường.

Cú pháp:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>

Quy tắc:

  • Không giống như SET, nếu truy vấn có nhiều hàng thì giá trị biến được đặt thành giá trị của hàng cuối cùng.
  • Nếu truy vấn trả về hàng 0 thì biến được đặt thành EMPTY, tức là NULL.

Truy vấn 1: Truy vấn trả về một hàng.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3
PRINT @COURSE_NAME

BIẾN CHỌN SQL

Truy vấn 2: Truy vấn trả về nhiều hàng.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99
PRINT @COURSE_NAME

Trong trường hợp đặc biệt này, giá trị biến là đặt thành giá trị của hàng cuối cùng.

BIẾN CHỌN SQL

Truy vấn 3: Truy vấn trả về XNUMX hàng.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5
PRINT @COURSE_NAME

Trong trường hợp cụ thể này, biến là EMPTY, tức là NULL.

BIẾN CHỌN SQL

Các ví dụ về biến SQL khác

Sử dụng biến trong truy vấn

truy vấn:

DECLARE @COURSE_ID Int = 1
SELECT * from Guru99 where Tutorial_id = @COURSE_ID

Biến SQL khác

Sự thật thú vị về các biến máy chủ SQL!

  • Một biến cục bộ có thể được hiển thị bằng cách sử dụng PRINT cũng như SELECT COMMAND
  • Kiểu dữ liệu bảng không cho phép sử dụng 'AS' trong khi khai báo.
  • SET tuân thủ các tiêu chuẩn ANSI trong khi SELECT thì không.
  • Việc tạo một biến cục bộ có tên là @ cũng được cho phép. Chúng ta có thể khai báo nó như sau:
    'DECLARE @@ as VARCHAR (10)'
    

Tổng kết

  • Biến là đối tượng đóng vai trò giữ chỗ.
  • Có hai loại biến: Local và Global
  • Chúng ta có thể gán biến theo ba cách sau: Khi sử dụng 1) DECLARE 2) Sử dụng SET 3) SỬ DỤNG SELECT

Bản tin Guru99 hàng ngày

Bắt đầu ngày mới của bạn với những tin tức AI mới nhất và quan trọng nhất hiện nay.