欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL存儲(chǔ)結(jié)構(gòu)用法案例分析

 更新時(shí)間:2018年07月04日 11:55:56   作者:Q-WHai  
這篇文章主要介紹了MySQL存儲(chǔ)結(jié)構(gòu)用法,結(jié)合具體案例形式分析了mysql存儲(chǔ)結(jié)構(gòu)相關(guān)使用方法與操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了MySQL存儲(chǔ)結(jié)構(gòu)用法。分享給大家供大家參考,具體如下:

前言

今天公司老大讓我做一個(gè)MySQL的調(diào)研工作,是關(guān)于MySQL的存儲(chǔ)結(jié)構(gòu)的使用。這里我會(huì)通過(guò)3個(gè)例子來(lái)介紹一下MySQL中存儲(chǔ)結(jié)構(gòu)的使用過(guò)程,以及一些需要注意的點(diǎn)。

筆者環(huán)境

系統(tǒng):Windows 7

MySQL:MySQL 5.0.96

準(zhǔn)備工作

1.新建兩張數(shù)據(jù)表: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中新增數(shù)據(jù)

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);

實(shí)現(xiàn)功能說(shuō)明

1.打印student1中的部分信息

2.把student1中的部分?jǐn)?shù)據(jù)復(fù)制到student2中

3.傳入?yún)?shù)作為限制條件,把student1中的部分?jǐn)?shù)據(jù)復(fù)制到student2中

注意事項(xiàng)

在編寫存儲(chǔ)結(jié)構(gòu)的時(shí)候,我們不能以分號(hào)(;)結(jié)束。因?yàn)槲覀兊腟QL語(yǔ)句就是以分號(hào)(;)結(jié)尾的。這里我們要修改一下存儲(chǔ)結(jié)構(gòu)的結(jié)束符號(hào)(&&)。

這里我們使用MySQL中的DELIMITER進(jìn)行修改,并在存儲(chǔ)結(jié)構(gòu)創(chuàng)建完畢時(shí),再改為分號(hào)(;)結(jié)束即可。

關(guān)于這一點(diǎn)在后面的例子中有所體現(xiàn)。在編寫MySQL的觸發(fā)器中,也會(huì)用到類似的情況。

使用方式

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.復(fù)制表存儲(chǔ)過(guò)程的編寫(不帶參數(shù))

---------------------------------------------------------------
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.復(fù)制表存儲(chǔ)過(guò)程的編寫(帶參數(shù))

---------------------------------------------------------------
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系統(tǒng)返回值是一樣的。

4.使用方式

call test_pro1();

or

call test_pro1(123);

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

  • 徹底卸載mysql 個(gè)人親測(cè)!

    徹底卸載mysql 個(gè)人親測(cè)!

    這篇文章主要為大家詳細(xì)介紹了徹底卸載mysql的具體步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • MySQL中WITH?AS語(yǔ)句的使用方法舉例

    MySQL中WITH?AS語(yǔ)句的使用方法舉例

    在MySQL中WITH AS語(yǔ)法用于創(chuàng)建一個(gè)臨時(shí)的命名查詢(也稱為子查詢),這些子查詢可以在后續(xù)的查詢中引用,從而簡(jiǎn)化查詢語(yǔ)句的編寫,這篇文章主要給大家介紹了關(guān)于MySQL中WITH?AS語(yǔ)句的使用方法,需要的朋友可以參考下
    2024-06-06
  • MySQL 使用事件(Events)完成計(jì)劃任務(wù)

    MySQL 使用事件(Events)完成計(jì)劃任務(wù)

    事件(Events) 是在 MySQL 5.1后引入的,有點(diǎn)類似操作系統(tǒng)的計(jì)劃任務(wù)(cron),但是周期性任務(wù)是內(nèi)置在 MySQL 服務(wù)端執(zhí)行的。本文講述MySQL如何用事件完成計(jì)劃任務(wù)
    2021-05-05
  • MySQL中的redo log和undo log日志詳解

    MySQL中的redo log和undo log日志詳解

    MySQL日志系統(tǒng)中最重要的日志為重做日志redo log和歸檔日志bin log,后者為MySQL Server層的日志,前者為InnoDB存儲(chǔ)引擎層的日志。今天通過(guò)本文給大家介紹MySQL中的redo log和undo log日志,感興趣的朋友一起看看吧
    2021-07-07
  • MySQL條件查詢語(yǔ)句常用操作全面匯總

    MySQL條件查詢語(yǔ)句常用操作全面匯總

    當(dāng)用戶查看表格的大量數(shù)據(jù)是,由于數(shù)據(jù)量過(guò)于巨大會(huì)導(dǎo)致很難獲取到需要的數(shù)據(jù),在這時(shí),就需要一個(gè)方法,一個(gè)可以通過(guò)用戶輸入獲取到用戶需要的數(shù)據(jù)并回填入表格,這就是條件查詢的作用
    2022-04-04
  • 完美解決mysql客戶端授權(quán)后連接失敗的問(wèn)題

    完美解決mysql客戶端授權(quán)后連接失敗的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決mysql客戶端授權(quán)后連接失敗的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • mysql刪除重復(fù)行的實(shí)現(xiàn)方法

    mysql刪除重復(fù)行的實(shí)現(xiàn)方法

    這篇文章主要介紹了mysql刪除重復(fù)行的實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Mysql表的約束超詳細(xì)講解

    Mysql表的約束超詳細(xì)講解

    MySQL唯一約束(Unique Key)是指所有記錄中字段的值不能重復(fù)出現(xiàn)。例如,為 id 字段加上唯一性約束后,每條記錄的 id 值都是唯一的,不能出現(xiàn)重復(fù)的情況
    2022-09-09
  • 深入談?wù)凪ySQL中的自增主鍵

    深入談?wù)凪ySQL中的自增主鍵

    這篇文章主要給大家介紹了關(guān)于MySQL中自增主鍵的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 解決MySQL無(wú)法遠(yuǎn)程連接的方法

    解決MySQL無(wú)法遠(yuǎn)程連接的方法

    這篇文章主要介紹了解決MySQL無(wú)法遠(yuǎn)程連接的方法,文中給出的解決方案主要針對(duì)IP限制時(shí)出現(xiàn)的該種情況,需要的朋友可以參考下
    2015-04-04

最新評(píng)論