Tải bản đầy đủ (.pdf) (16 trang)

Tài liệu Biến trong MySQL pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (224.48 KB, 16 trang )

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.

×