VIEW
STORED PROCEDURE
INDEX
FULL TEXT SEARCH
TRIGGER
TIPS
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Biến (variable) trong MYSQL Stored Procedure

T-SQL cũng có thể coi nó như là một ngôn ngữ lập trình nên nó cũng tồn tại các khái niệm kiểu dữ liệu, biến và khai báo biến, các vòng lặp, câu ifelse,... Nhưng chúng ta rất ít sử dụng nó để viết các ứng dụng website. Nhưng bạn cũng không nên bỏ qua phần kiến thức bổ ích này nhé.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài này chúng ta sẽ tìm hiểu biến trong Procedure và cách khai báo, thiết lập giá trị cho biến trong Stored Procedure.

1. Khai báo biến trong MySql Stored Procedure

Để định nghĩa một biến mới ta dùng cú pháp :

Bài viết này được đăng tại [free tuts .net]

DECLARE variable_name datatype(size) DEFAULT default_value

Trong đó:

  • DECLARE: là từ khóa tạo biến
  • variable_name là tên biến
  • datatype(size) là kiểu dữ liệu của biến và kích thước của nó
  • DEFAULT default_value: là gán giá trị mặc định cho biến

Ví dụ:

DECLARE product_title VARCHAR(255) DEFAULT 'No Name';

2. Gán giá trị cho biến trong MySql Stored Procedure

Tạo biến rồi thì phải gán giá trị cho nó chứ đúng không nào? Để gán giá trị cho nó thì chúng ta sử dụng tư khóa SET:

SET variable_name = 'value';

Ví dụ: Định nghĩa biến age và gán giá trị 20 cho nó.

DECLARE age INT(11) DEFAULT 0

SET age = 12

Ví dụ: Gán giá trị thông qua lệnh SELECT

DECLARE total_products INT DEFAULT 0
 
SELECT COUNT(*) INTO total_products
FROM products

Trong ví dụ này thì trước tiên nó sẽ thực hiện câu truy vấn SQL đếm tổng số record và sau đó gán vào biến total_products bằng lệnh (COUNT(*) INTO total_products).

4. Phạm vi hoạt động của biến

Nếu như bạn định nghĩa một biến bên trong phần thân của Procedure (giữa BEGIN và END) thì đó ta gọi là biến cục bộ của Procedure. Bạn có thể định nghĩa nhiều biến trong một Procedure.

Ví dụ:

DELIMITER $$
DROP PROCEDURE IF EXISTS tinhTong $$
CREATE PROCEDURE tinhTong()
BEGIN
	DECLARE a INT (11) DEFAULT 0;
	DECLARE b INT (11) DEFAULT 0;
	DECLARE tong INT (11) DEFAULT 0;
	
	SET a = 200;
	SET b = 300;
	SET tong = a + b;
	
	SELECT tong;
	
END; $$
DELIMITER;

Ở procedure này tôi đã định nghĩa các biến a,b,tong và tính toán trên đó. Bạn chạy câu sql trên và sau đó gọi nó bằng lệnh call tinhTong thì nó sẽ cho kết quả là 500.

Nếu một biến được khai báo bên ngoài Procedure thì bên trong Procedure sẽ không nhận được và sẽ thông báo lỗi.

Ví dụ:

DELIMITER $$
DECLARE tong INT (11) DEFAULT 0;
DROP PROCEDURE IF EXISTS tinhTong $$
CREATE PROCEDURE tinhTong()
BEGIN
	DECLARE a INT (11) DEFAULT 0;
	DECLARE b INT (11) DEFAULT 0;
		
	SET a = 200;
	SET b = 300;
	SET tong = a + b;
	
	SELECT tong;
	
END; $$
DELIMITER;

Chương trình này lỗi vì biến tong không tồn tại trong Procedure.

Lời kết:

Trong bài này chủ yếu chúng ta học cách định nghĩa một biến trong MYSQL như thế nào? Cách gán dữ liệu cho biến và thực thi kết quả câu truy vấn SQL rồi gán vào biến đó. Bài tương đối đơn giản nên rất dễ học, ở bài tiếp theo chúng ta sẽ tìm hiểu cách khai báo tham số truyền vào Procedure nhé.

Cùng chuyên mục:

Hàm ENCRYPT trong MySQL

Hàm ENCRYPT trong MySQL

Cách sử dụng ENCRYPT trong MySQL

Hàm MD5 trong MySQL

Hàm MD5 trong MySQL

Cách sử dụng MD5 trong MySQL

Hàm OLD_PASSWORD trong MySQL

Hàm OLD_PASSWORD trong MySQL

Cách sử dụng OLD_PASSWORD trong MySQL

Hàm PASSWORD trong MySQL

Hàm PASSWORD trong MySQL

Cách sử dụng PASSWORD trong MySQL

Hàm ASCII trong MySQL

Hàm ASCII trong MySQL

Cách sử dụng ASCII trong MySQL

Hàm CHAR_LENGTH trong MySQL

Hàm CHAR_LENGTH trong MySQL

Cách sử dụng CHAR_LENGTH trong MySQL

Hàm CHARACTER_LENGTH trong MySQL

Hàm CHARACTER_LENGTH trong MySQL

Cách sử dụng CHARACTER_LENGTH trong MySQL

Hàm CONCAT trong MySQL

Hàm CONCAT trong MySQL

Cách sử dụng CONCAT trong MySQL

Hàm CONCAT_WS trong MySQL

Hàm CONCAT_WS trong MySQL

Cách sử dụng CONCAT_WS trong MySQL

Hàm FIELD trong MySQL

Hàm FIELD trong MySQL

Cách sử dụng FIELD trong MySQL

Hàm FIND_IN_SET trong MySQL

Hàm FIND_IN_SET trong MySQL

Cách sử dụng FIND_IN_SET trong MySQL

Hàm FORMAT trong MySQL

Hàm FORMAT trong MySQL

Cách sử dụng FORMAT trong MySQL

Hàm INSERT trong MySQL

Hàm INSERT trong MySQL

Cách sử dụng INSERT trong MySQL

Hàm INSTR trong MySQL

Hàm INSTR trong MySQL

Cách sử dụng INSTR trong MySQL

Hàm LCASE trong MySQL

Hàm LCASE trong MySQL

Cách sử dụng LCASE trong MySQL

Hàm LEFT trong MySQL

Hàm LEFT trong MySQL

Cách sử dụng LEFT trong MySQL

Hàm LENGTH trong MySQL

Hàm LENGTH trong MySQL

Cách sử dụng LENGTH trong MySQL

Hàm LOCATE trong MySQL

Hàm LOCATE trong MySQL

Cách sử dụng LOCATE trong MySQL

Hàm LOWER trong MySQL

Hàm LOWER trong MySQL

Cách sử dụng LOWER trong MySQL

Hàm LPAD trong MySQL

Hàm LPAD trong MySQL

Cách sử dụng LPAD trong MySQL

Top