Computer >> Máy Tính >  >> Lập trình >> MySQL

Các thuộc tính của biến người dùng MySQL là gì?


Các thuộc tính của biến người dùng MySQL -

Không phân biệt chữ hoa chữ thường

Biến người dùng không phân biệt chữ hoa chữ thường. Chúng có phân biệt chữ hoa chữ thường trước phiên bản MySQL 5. Nó có thể được minh họa trong ví dụ sau -

Ví dụ

mysql> SET @A = 'MySQL';
Query OK, 0 rows affected (0.00 sec)

mysql> Select @A, @a;
+-------+-------+
| @A    | @a    |
+-------+-------+
| MySQL | MySQL |
+-------+-------+
1 row in set (0.00 sec)

Dành riêng cho kết nối máy khách

Trên thực tế, các biến người dùng dành riêng cho kết nối máy khách mà chúng được sử dụng trong đó và chỉ tồn tại trong khoảng thời gian của kết nối đó. Khi kết nối kết thúc, tất cả các biến người dùng của nó sẽ bị mất.

Chỉ hoạt động với các biểu thức

Các biến người dùng chỉ có thể xuất hiện khi các biểu thức được cho phép. Chúng có thể xuất hiện ở những nơi mà các định danh hằng hoặc ký tự đã xuất hiện. Dưới đây là ví dụ, trong đó chúng tôi đang cố gắng sử dụng biến người dùng để cung cấp tên bảng, sẽ minh họa điều đó.

Ví dụ

mysql> Set @table_name = CONCAT('tbl_','Employee');
Query OK, 0 rows affected (0.00 sec)

mysql> Create Table @table_name(Id Int);
ERROR 1064 (42000): You have an error in your SQL syntax near '@table_name(Id Int)'

Bị mất khi được gán giá trị mới

Giá trị của biến người dùng sẽ bị mất khi chúng tôi chỉ định giá trị mới cho nó. Nói cách khác, giá trị của một biến người dùng nhất định vẫn tồn tại cho đến khi chúng tôi gán cho nó một giá trị khác. Ví dụ sau sẽ chứng minh điều đó -

Ví dụ

mysql> SET @name = 'Rahul';
Query OK, 0 rows affected (0.00 sec)

mysql> Select @name;
+-------+
| @name |
+-------+
| Rahul |
+-------+
1 row in set (0.00 sec)

Lúc này, biến @name đang có giá trị là ‘Rahul’ nhưng khi chúng ta thay đổi giá trị thành ‘Raman’ thì giá trị trước đó sẽ bị mất.

mysql> SET @name = 'Raman';
Query OK, 0 rows affected (0.00 sec)

mysql> Select @name;
+-------+
| @name |
+-------+
| Raman |
+-------+
1 row in set (0.00 sec)