Bài giảng Biến trong MySQL

Nội dung

Vai trò của biến

Phân loại biến

Biến hệ thống

Biến người dùng

Biến sử dụng trong routines (hàm, thủ tục)

Biến con trỏ

pdf16 trang | Chuyên mục: MySQL | Chia sẻ: dkS00TYs | Lượt xem: 2851 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Biến trong MySQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Biến trong MySQL
Nội dung
 Vai trò của biến
 Phân loại biến
 Biến hệ thống
 Biến người dùng
 Biến sử dụng trong routines (hàm, thủ tục)
 Biến con trỏ
Vai trò của biến
 Lưu trữ thông tin cấu hình của Server
 Lưu giá trị tạm thời của người dùng trong quá trình 
thực hiện tính toán.
Phân loại biến
 Biến hệ thống
 Biến người dùng
Biến hệ thống
 Dùng để chỉ ra thiết đặt cấu hình cho MySQL Server.
 Có 2 loại:
 Biến toàn cục: Lưu thông tin đến hoạt động tổng thể của hệ thống.
 Biến Session: Lưu thông tin của người dùng kết nối.
 Mỗi biến hệ thống sẽ có một giá trị mặc định.
 Có thể thiết đặt giá trị cho biến hệ thống trong lúc chạy server
 Để xem các biến hệ thống của server đang chạy hiện thời ta thực hiện lệnh:
Show variables
Show session variables
Show global variables
Biến người dùng
 Lưu trữ giá trị tạm thời trong một câu lệnh và được tham 
chiếu ở câu lệnh khác.
 Phụ thuộc vào kết nối cụ thể đến Server
− Một biến người dùng được tạo bởi một client 
không thể được nhìn thấy và sử dụng bởi client 
khác.
− Được giải phóng khi kết nối kết thúc
Biến người dùng 
khai báo và sử dụng
 Cú pháp khai báo:
SET @var_name = expr [, @var_name = expr] …
 Lưu ý: không phân biệt hoa thường
 Gán giá trị cho biến:
SET @var_name = expr [, @var_name = expr] …
SELECT @var_name:= expr [, @var_name:= expr] 
 Ví dụ:
SET @a='test';
SELECT @a,(@a:=20) FROM tbl_name;
Biến người dùng – Ví dụ
Vd1:
 @count='test';
SELECT @count:= count(*) FROM sinhvien;
Vd2:
 @count='test';
SELECT @count;
Vd3:
set @count='testa';
call dem_so_khoa(@count);
select @count;
Biến sử dụng trong Routines 
 Là tên một thành phần dữ liệu 
 Được sử dụng để lưu trữ giá trị tham thời trong khi 
thực thi các chương trình lưu trữ (thủ tục, 
hàm,triggers).
Biến trong chương trình
 Cú pháp khai báo:
DECLARE variable_name [,variable_name...] 
datatype [DEFAULT value]; 
 Gán giá trị cho biến:
SET variable_name =expr [, @var_name = expr] 
 Phạm vị của biến:
 Biến được khai báo trong thân thủ tục sẽ có phạm vi bên 
trong khối BEGIN/END.
Biến trong chương trình – Ví dụ
create procedure operators( )
begin 
DECLARE a int default 2; 
declare b int default 3;
declare c FLOAT; 
set c=a+b; select 'a+b=',c;
SET c=a/b; select 'a/b=',c;
SET c=a*b; Select 'a*b=',c; 
IF (a<b) THEN
 select 'a is less than b';
END IF;
 IF NOT (a=b) THEN 
SELECT 'a is not equal to b'; 
END IF; end;
Biến con trỏ
• Được sử dụng trong hàm, thủ tục lưu trữ và triggers
• Tham chiếu đến tập hợp các dòng ( kết quả của câu truy 
vấn)
• Thuộc tính của biến con trỏ:
Read only: Không thể cập nhật con trỏ
Non-scrollable: Di chuyển một hướng qua các mẫu tin, 
không thể bỏ qua mẫu tin hoặc quay lại
Asensitive: tránh cập nhật bảng khi mở con trỏ.
Làm việc với con trỏ
1. Khai báo:
DECLARE cursor_name CURSOR FOR 
SELECT_statement; 
2. Mở con trỏ: phải được mở trước khi lấy dữ liệu
OPEN cursor_name; 
3. Lấy dữ liệu từ con trỏ và di chuyển đến dòng tiếp theo
FETCH cursor_name INTO variable list; 
4. Đóng con trỏ và giải phóng vùng nhớ
CLOSE cursor_name; 
Sử dụng con trỏ - Bài tập
DELIMITER $$
DROP procedure IF EXISTS `test`.`cursample` $$
CREATE procedure `test`.`cursample` ()
BEGIN
 declare done int default 0;
 declare id_khoa1 int;
 declare ten_khoa1 varchar(45);
 declare dssv cursor for select id_khoa,ten_khoa from dmkhoa;
 declare continue handler for not found set done=1;
 create table tam(id_khoa int,ten_khoa varchar(45));
 open dssv;
Sử dụng con trỏ - bài tập (tt)
read_loop:loop
 fetch dssv into id_khoa1,ten_khoa1;
 if done then
 leave read_loop;
 end if;
 insert into tam values(id_khoa1,ten_khoa1);
 end loop;
 select * from tam;
 close dssv;
 drop table `test`.`tam`;
END $$
DELIMITER ;
Bài tập
• Sử dụng con trỏ, viết thủ tục để đọc các mẫu gồm các 
cột id sinh viên, họ sinh viên, tên sinh viên,giới 
tính,ngày sinh lưu vào bảng tạm và hiển thị.
• Sử dụng con trỏ, viết thủ tục để đọc các mẫu tin từ 
bảng sinh viên, lưu vào bảng tạm, đếm số mẫu tin và 
trả về số mẫu tin.

File đính kèm:

  • pdfBài giảng Biến trong MySQL.pdf
Tài liệu liên quan