麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

MySQL存儲結構用法案例分析

2024-07-25 19:08:38
字體:
來源:轉載
供稿:網友

本文實例講述了MySQL存儲結構用法。分享給大家供大家參考,具體如下:

前言

今天公司老大讓我做一個MySQL的調研工作,是關于MySQL的存儲結構的使用。這里我會通過3個例子來介紹一下MySQL中存儲結構的使用過程,以及一些需要注意的點。

筆者環境

系統:Windows 7

MySQL:MySQL 5.0.96

準備工作

1.新建兩張數據表:student1, student2

新建student1

DROP TABLE IF EXISTS student1;CREATE TABLE student1 (id INT NOT NULL auto_increment,name TEXT,age INT,PRIMARY KEY(id));

新建student2

DROP TABLE IF EXISTS student2;CREATE TABLE student2 (id INT NOT NULL auto_increment,name TEXT,age INT,PRIMARY KEY(id));

2.向student1中新增數據

INSERT INTO student1 (name, age) VALUES ('xiaoming', 18);INSERT INTO student1 (name, age) VALUES ('xiaohong', 17);INSERT INTO student1 (name, age) VALUES ('xiaogang', 19);INSERT INTO student1 (name, age) VALUES ('xiaoyu', 18);INSERT INTO student1 (name, age) VALUES ('xiaohua', 20);

實現功能說明

1.打印student1中的部分信息

2.把student1中的部分數據復制到student2中

3.傳入參數作為限制條件,把student1中的部分數據復制到student2中

注意事項

在編寫存儲結構的時候,我們不能以分號(;)結束。因為我們的SQL語句就是以分號(;)結尾的。這里我們要修改一下存儲結構的結束符號(&&)。

這里我們使用MySQL中的DELIMITER進行修改,并在存儲結構創建完畢時,再改為分號(;)結束即可。

關于這一點在后面的例子中有所體現。在編寫MySQL的觸發器中,也會用到類似的情況。

使用方式

1.打印student1中的部分信息

---------------------------------------------------------------DROP PROCEDURE IF EXISTS test_pro1;---------------------------------------------------------------DELIMITER &&CREATE PROCEDURE test_pro1()BEGIN set @sentence = 'select * from student1 where age<19;'; prepare stmt from @sentence; execute stmt; deallocate prepare stmt;END &&DELIMITER ;

2.復制表存儲過程的編寫(不帶參數)

---------------------------------------------------------------DROP PROCEDURE IF EXISTS test_pro2;---------------------------------------------------------------DELIMITER &&create procedure test_pro2()begin  DECLARE stop_flag INT DEFAULT 0;  DECLARE s_name TEXT default '';  DECLARE s_age INT default 0;  DECLARE cur1 CURSOR FOR (select name, age from student1 where age<19);    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET stop_flag=1;  open cur1;    fetch cur1 into s_name, s_age;  while stop_flag<>1 DO    insert into student2(name, age) values(s_name, s_age);    fetch cur1 into s_name, s_age;  end while;  close cur1;end &&DELIMITER ;

3.復制表存儲過程的編寫(帶參數)

---------------------------------------------------------------DROP PROCEDURE IF EXISTS test_pro3;---------------------------------------------------------------DELIMITER &&create procedure test_pro3(IN p_age INT)begin  DECLARE stop_flag INT DEFAULT 0;  DECLARE s_name TEXT default '';  DECLARE s_age INT default 0;  DECLARE cur1 CURSOR FOR (select name, age from student1 where age<p_age);    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET stop_flag=1;  open cur1;    fetch cur1 into s_name, s_age;  while stop_flag<>1 DO    insert into student2(name, age) values(s_name, s_age);    fetch cur1 into s_name, s_age;  end while;  close cur1;end &&DELIMITER ;

這里的SQLSTATE '02000'和NOT FOUND系統返回值是一樣的。

4.使用方式

call test_pro1();

or

call test_pro1(123);

希望本文所述對大家MySQL數據庫計有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91久久另类重口变态 | 国产美女一区二区在线观看 | 久久久免费观看完整版 | 羞羞视频免费网站日本动漫 | 免费a级观看 | 99爱在线免费观看 | 久色成人 | 91免费高清视频 | 老司机免费福利午夜入口ae58 | 欧美日韩大片在线观看 | 一二区电影 | 久久久久久久亚洲精品 | 欧美性猛交xxxxx按摩国内 | 中文字幕1区2区 | 免费黄色在线电影 | 国产午夜精品久久久 | 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 久久久久电影网站 | 精品国产一区三区| 天天看成人免费毛片视频 | 黄色高清免费网站 | 国产亲子伦在线观看 | www.com香蕉| 欧美日韩在线免费观看 | 成人激情视频网 | 亚洲综合网站 | 亚洲电影免费观看国语版 | 在线看成人av | 免费一级毛片电影 | 黄色大片在线免费观看 | 久久亚洲国产精品 | 久草经典视频 | 亚洲精品永久视频 | 国产资源在线免费观看 | 久久精品一区二区三区四区五区 | 一级爱爱 | 91中文字幕在线观看 | 久久看视频 | 成年人免费视频播放 | 国产精品视频在线观看免费 | 欧美精品一区二区性色 |