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à $ Show
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_namemark1shagun152taruna53riya154palak105neha76garima17Bâ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_namerankmarksgarima117shagun215riya215palak310neha47taruna55Như 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 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à 0 và 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 MySQLCó 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 2 như sau
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
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
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 MySQLCâu lệnh sau lấy sản phẩm đắt nhất trong bảng 3 và gán giá cho biến do người dùng xác định @msrp
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
Đô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
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ả
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; . |