Biến in MySQL

Mysql cũng hỗ trợ khái niệm Biến do người dùng định nghĩa, cho phép chuyển một giá trị từ câu lệnh này sang câu lệnh khác. Một biến do người dùng định nghĩa trong Mysql được viết là @var_name trong đó, var_name là tên của biến và có thể bao gồm các ký tự chữ và số,. , _ và $

  • Biến do người dùng định nghĩa là phiên cụ thể i. Biến e được xác định bởi một khách hàng không được chia sẻ với khách hàng khác và khi phiên kết thúc, các biến này sẽ tự động hết hạn
  • Các biến này không phân biệt chữ hoa chữ thường. Vì vậy, @mark hoặc @Mark đều đề cập đến cùng một giá trị
  • Độ dài tối đa của biến có thể là 64 ký tự
  • Tên biến có thể bao gồm các ký tự khác như- {. , #, ^, -,. } trong tên của nó, nếu chúng được trích dẫn. Đối với ex- @’var@1′ hoặc @”var^2″ hoặc @`var3`
  • Các biến này không thể được khai báo, chúng chỉ được khởi tạo i. e tại thời điểm khai báo chúng phải được gán một giá trị
  • Một biến không được khai báo cũng có thể được truy cập trong câu lệnh SQL nhưng giá trị của chúng được đặt là NULL
  • Các biến này có thể nhận các giá trị từ tập hợp các kiểu dữ liệu sau - { số nguyên, dấu phẩy động, số thập phân, nhị phân, chuỗi không nhị phân hoặc giá trị NULL

cú pháp

SET @var_name = expression 

ví dụ

1. Gán giá trị cho biến bằng lệnh SET

mysql>SET @var1 = 2+6;
mysql>SET @var2 := @var1-2;

Giá trị của các biến này có thể được hiển thị bằng cách giới thiệu chúng trong câu lệnh CHỌN-

mysql>SELECT @var1, @var2;

đầu ra

+-------+-------+
| @var1 | @var2 |
+-------+-------+
|   8   |   6   |
+-------+-------+

2. Truy cập một biến không được khai báo

mysql>SELECT @var3;

đầu ra

+-------+
| @var3 | 
+-------+
|  NULL |  
+-------+

Ở đây, biến @var3 không được khai báo nên giá trị mặc định của nó là NULL

3. Gán giá trị cho một biến mà không cần sử dụng SET

mysql>SELECT @var3 := 4;

đầu ra

+----------+
| @var3:=4 | 
+----------+
|    4     |  
+----------+

Trong ví dụ trên- biến @var3 chỉ nên được gán giá trị bằng cách sử dụng. = not =, cái sau được coi là so sánh trong câu lệnh không phải SET. Giống-

________số 8_______

đầu ra

+----------+
| @var4=5  | 
+----------+
|   NULL   |  
+----------+

Làm thế nào các biến này được sử dụng để lưu trữ các giá trị, được sử dụng trong tương lai

Hãy xem xét, bảng Sinh viên sau đây-

s_ids_namemark1shagun152taruna53riya154palak105neha76garima17

Bây giờ, chúng ta phải tìm thứ hạng của những sinh viên này bằng cách sử dụng các biến do người dùng xác định

Đối với điều này, chúng tôi khởi tạo hai biến - @rank và @prev_mark

mysql>SET @var1 = 2+6;
mysql>SET @var2 := @var1-2;
0

Truy vấn

mysql>SET @var1 = 2+6;
mysql>SET @var2 := @var1-2;
1

Ở đây, biến @rank dùng để lưu thứ hạng của sinh viên và @prev_mark dùng để lưu điểm của các sinh viên trước đó

So sánh giữa các điểm được thực hiện để trong trường hợp nếu hai học sinh có điểm bằng nhau thì có thể tránh được việc tăng biến @rank

Các thay đổi trong cả hai biến diễn ra sau khi bảng sinh viên được sắp xếp theo thứ tự giảm dần theo cột “mark”

đầu ra

s_namerankmarksgarima117shagun215riya215palak310neha47taruna55

Như vậy ta được bảng sinh viên kết quả được sắp xếp theo cột “marks” giảm dần cùng với thứ hạng sinh viên

Ghi chú. Trong truy vấn trên, hãy quan tâm đến thứ tự của cột trong câu lệnh chọn. Nếu cột “marks” được viết trước cột “rank” thì chúng ta không nhận được kết quả mong muốn. Bởi vì mỗi khi @prev_mark được gán điểm của sinh viên hiện tại, kết quả đánh giá @prev_mark. = đánh dấu là sai. Vì vậy, thứ hạng của mọi sinh viên được hiển thị là không tăng i. e nó sẽ vẫn là 0

Đôi khi, bạn muốn chuyển một giá trị từ câu lệnh SQL này sang câu lệnh SQL khác. Để làm điều này, bạn lưu trữ giá trị trong một biến do người dùng MySQL xác định trong câu lệnh đầu tiên và tham chiếu đến nó trong các câu lệnh tiếp theo

Để tạo biến do người dùng xác định, bạn sử dụng định dạng @variable_name, trong đó variable_name bao gồm các ký tự chữ và số. Độ dài tối đa của biến do người dùng xác định là 64 ký tự kể từ MySQL 5. 7. 5

Các biến do người dùng xác định không phân biệt chữ hoa chữ thường. Điều đó có nghĩa là

SET @counter := 100;

Code language: SQL (Structured Query Language) (sql)
0 và

SET @counter := 100;

Code language: SQL (Structured Query Language) (sql)
1 giống nhau

Bạn có thể gán biến do người dùng định nghĩa cho một kiểu dữ liệu nhất định như số nguyên, dấu phẩy động, số thập phân, chuỗi hoặc NULL

Biến do người dùng xác định được xác định bởi một khách hàng không hiển thị bởi các khách hàng khác. Nói cách khác, một biến do người dùng định nghĩa là phiên cụ thể

Lưu ý rằng các biến do người dùng xác định là phần mở rộng dành riêng cho MySQL theo tiêu chuẩn SQL. Chúng có thể không có sẵn trong các hệ thống cơ sở dữ liệu khác

gán biến MySQL

Có hai cách để gán giá trị cho biến do người dùng xác định

Cách thứ nhất là sử dụng câu lệnh

SET @counter := 100;

Code language: SQL (Structured Query Language) (sql)
2 như sau

SET @variable_name := value;

Code language: SQL (Structured Query Language) (sql)

Bạn có thể sử dụng một trong hai. = hoặc = là toán tử gán trong câu lệnh SET. Ví dụ câu lệnh gán số 100 cho biến @counter

SET @counter := 100;

Code language: SQL (Structured Query Language) (sql)

Cách thứ hai để gán giá trị cho một biến là sử dụng câu lệnh SELECT. Trong trường hợp này, bạn phải sử dụng. = toán tử gán bởi vì, trong câu lệnh SELECT, MySQL coi toán tử = là toán tử bằng nhau

SELECT @variable_name := value;

Code language: SQL (Structured Query Language) (sql)

Sau khi gán, bạn có thể sử dụng biến trong câu lệnh tiếp theo khi một biểu thức được phép. g. , trong mệnh đề WHERE, câu lệnh INSERT hoặc UPDATE

Ví dụ về biến MySQL

Câu lệnh sau lấy sản phẩm đắt nhất trong bảng

SET @counter := 100;

Code language: SQL (Structured Query Language) (sql)
3 và gán giá cho biến do người dùng xác định @msrp

SELECT @msrp:=MAX(msrp) FROM products;

Code language: SQL (Structured Query Language) (sql)
Biến in MySQL
Biến in MySQL

Câu lệnh sau sử dụng biến @msrp để truy vấn thông tin của sản phẩm đắt nhất

SELECT productCode, productName, productLine, msrp FROM products WHERE msrp = @msrp;

Code language: SQL (Structured Query Language) (sql)

Đôi khi, bạn muốn chèn một hàng vào một bảng, lấy id chèn cuối cùng và sử dụng nó để chèn dữ liệu vào một bảng khác. Trong trường hợp này, bạn có thể sử dụng biến do người dùng xác định để lưu trữ id gần đây nhất được tạo bởi cột AUTO_INCREMENT như sau

SELECT @id:=LAST_INSERT_ID();

Code language: SQL (Structured Query Language) (sql)

Biến do người dùng xác định chỉ có thể chứa một giá trị. Nếu câu lệnh SELECT trả về nhiều giá trị thì biến sẽ lấy giá trị của hàng cuối cùng trong kết quả

SELECT @buyPrice:=buyprice FROM products WHERE buyprice > 95 ORDER BY buyprice;

Code language: SQL (Structured Query Language) (sql)
Biến in MySQL
Biến in MySQL

SELECT @buyprice;

Code language: SQL (Structured Query Language) (sql)
Biến in MySQL
Biến in MySQL

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách sử dụng các biến MySQL trong câu lệnh SQL để truyền dữ liệu giữa các câu lệnh trong một .

Làm cách nào để hiển thị biến trong MySQL?

Câu lệnh SHOW VARIABLES được sử dụng để hiển thị tên và giá trị của các biến hệ thống MySQL. .
cú pháp. Sau đây là cú pháp của câu lệnh SHOW VARIABLES − SHOW [GLOBAL. PHIÊN] BIẾN [THÍCH 'mẫu'. kinh nghiệm ở đâu]
Thí dụ. .
Thí dụ. .
mệnh đề THÍCH. .
Mệnh đề WHERE

Làm cách nào để hiển thị giá trị trong MySQL?

Lệnh đầu tiên bạn cần sử dụng là câu lệnh SELECT FROM MySQL có cú pháp như sau. CHỌN * TỪ tên_bảng; Đây là một truy vấn MySQL cơ bản sẽ yêu cầu tập lệnh chọn tất cả các bản ghi từ bảng tên_bảng.

Làm cách nào để in một biến trong thủ tục lưu trữ MySQL?

khai báo myvar INT mặc định 0; . This prints myvar is 5 to stdout when the procedure runs.

Làm cách nào để lấy biến toàn cục trong MySQL?

Phần thảo luận sau đây mô tả các tùy chọn cú pháp để đặt biến hệ thống. Để gán giá trị cho một biến hệ thống toàn cục, hãy đặt trước tên biến bằng từ khóa GLOBAL hoặc @@GLOBAL . vòng loại. THIẾT LẬP TOÀN CẦU max_connections = 1000; .