亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MySQL使用存儲過程,光標的使用的簡單示例

系統 2241 0

存儲過程一直沒仔細學,今天為了完成實驗,老老實實看了書,在網上看了不少東西,想起來簡單,實現起來不容易啊,經過一個多小時的攻堅克難,總算實現了老師的要求,把完美的命令過程貼在下面,用于以后的改進

?

問題描述:

  現有三張表,教職工,轉換,論文,教職工記錄學院教職工的基本信息,這里要用的是姓名和所屬系別,轉換是教職工中文名和英文名的轉換關系,論文是教職工所發表的論文信息,其中的作者數據可能是中文名也可能是英文名,要實現的是寫一個存儲過程實現以系中心為參數,查找各系中心發表的論文數。

      
        ************
        
Welcome
to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 121 Server version: 5.5 . 16 MySQL Community Server (GPL) Copyright (c) 2000 , 2011 , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ' help; ' or ' \h ' for help. Type ' \c ' to clear the current input statement. mysql > use sstest; Database changed mysql > desc 教職工; + -- ----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | + -- ----------+--------------+------+-----+---------+----------------+ | 教職工ID | int ( 11 ) | NO | PRI | NULL | auto_increment | | 工號 | mediumint( 9 ) | YES | | NULL | | | 姓名 | varchar ( 30 ) | NO | | NULL | | | 性別 | varchar ( 5 ) | NO | | NULL | | | 系中心 | varchar ( 40 ) | YES | | NULL | | | 職務 | varchar ( 30 ) | YES | | NULL | | | 職稱 | varchar ( 30 ) | YES | | NULL | | | 退休前職務 | varchar ( 30 ) | NO | | NULL | | | 調離前職務 | varchar ( 50 ) | YES | | NULL | | | 調離前所屬 | varchar ( 50 ) | YES | | NULL | | | 固定電話 | varchar ( 11 ) | YES | | NULL | | | 移動電話 | int ( 11 ) | YES | | NULL | | | 出生日期 | date | YES | | NULL | | | 電子郵件 | varchar ( 30 ) | YES | | NULL | | | 備注 | varchar ( 50 ) | YES | | NULL | | + -- ----------+--------------+------+-----+---------+----------------+ 15 rows in set ( 0.04 sec) mysql > desc 轉換; + -- ------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + -- ------+-------------+------+-----+---------+-------+ | 英文名 | varchar ( 30 ) | YES | | NULL | | | 中文名 | varchar ( 30 ) | YES | | NULL | | + -- ------+-------------+------+-----+---------+-------+ 2 rows in set ( 0.00 sec) mysql > desc 論文; + -- ------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | + -- ------+--------------+------+-----+---------+----------------+ | 成果ID | int ( 11 ) | NO | PRI | NULL | auto_increment | | 作者 | varchar ( 100 ) | NO | | NULL | | | 題名 | varchar ( 160 ) | YES | | NULL | | | 刊名 | varchar ( 160 ) | YES | | NULL | | + -- ------+--------------+------+-----+---------+----------------+ 4 rows in set ( 0.00 sec) mysql > delimiter // mysql > drop procedure if exists `get_count_of_paper_of_major`; // Query OK, 0 rows affected ( 0.04 sec) mysql > create procedure get_count_of_paper_of_major( in major_name varchar ( 40 ), out count_of_papers int ) -> reads sql data -> begin -> declare cnt int default 0 ; -> declare tmp int default 0 ; -> declare tmp_name varchar ( 30 ) default ""; -> declare mycursor cursor for select 英文名 from 教職工,轉換 where 教職工.系中心 = major_name and 轉換.中文名 = 教職工.姓名; -> DECLARE CONTINUE HANDLER FOR SQLSTATE ' 02000 ' SET tmp_name = NULL ; -> -> open mycursor; -> fetch mycursor into tmp_name; -> while (tmp_name is not null ) -> do -> select count ( * ) from 論文 where 作者 = tmp_name into tmp; -> set cnt = cnt + tmp; -> set tmp = 0 ; -> fetch mycursor into tmp_name; -> end while ; -> close mycursor; -> set count_of_papers = cnt; -> end -> // Query OK, 0 rows affected ( 0.00 sec) mysql > delimiter ; mysql > call get_count_of_paper_of_major( ' 軟件工程系 ' , @count_of_papers ); Query OK, 0 rows affected, 1 warning ( 0.00 sec) mysql > select @count_of_papers ; + -- ----------------+ | @count_of_papers | + -- ----------------+ | 21 | + -- ----------------+ 1 row in set ( 0.00 sec) mysql > call get_count_of_paper_of_major( ' 數字媒體技術系 ' , @count_of_papers ); Query OK, 0 rows affected, 1 warning ( 0.00 sec) mysql > select @count_of_papers ; + -- ----------------+ | @count_of_papers | + -- ----------------+ | 0 | + -- ----------------+ 1 row in set ( 0.00 sec) mysql > call get_count_of_paper_of_major( ' 信息安全系 ' , @count_of_papers ); Query OK, 0 rows affected, 1 warning ( 0.00 sec) mysql > select @count_of_papers ; + -- ----------------+ | @count_of_papers | + -- ----------------+ | 2 | + -- ----------------+ 1 row in set ( 0.00 sec) mysql >

對比以前寫的語句,恩,好像沒有問題

MySQL使用存儲過程,光標的使用的簡單示例

?

不得不說MySQL在存儲過程和觸發器還是和MS SQL Server,DB2,Oracle的差距還很大,很多的功能就MySQL沒有實現,實現了的也相對比較麻煩,嗯,不管怎么樣,希望MySQL越做越好,以開源戰勝商業!加油

MySQL使用存儲過程,光標的使用的簡單示例


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99国内视频 | 久久久久久一级毛片免费无遮挡 | 亚洲美女黄视频 | 97国产在线公开免费观看 | 在线国产一区二区三区 | 狠狠色噜噜狠狠狠米奇9999 | 亚洲国产美女精品久久 | 男人你懂的网站 | 中文字幕在线一区 | 中文字幕在亚洲第一在线 | 欧美性猛交xx乱大交 | 美日韩免费视频 | 亚洲日本久久久午夜精品 | 国产一区二区三区不卡观 | 日本一级毛一级毛片短视频 | 狠狠操美女 | 天天插天天干天天射 | 国产精品九九久久精品女同 | 国产精品毛片天天看片 | 国产四虎免费精品视频 | 好吊色青青青国产欧美日韩 | 久久a热6 | 久久香蕉国产线看观看8青草 | 狠狠色噜噜噜噜狠狠狠狠狠狠奇米 | 久久久亚洲欧洲日产国码二区 | 亚洲成年 | 久久国产高清一区二区三区 | 久久草在线观看视频 | 一级毛片免费视频 | 手机看片国产免费久久网 | 国产中文字幕第一页 | 色吧色吧色吧网 | 欧美精品亚洲精品日韩专区va | 99热久久这里只精品国产ww | 九九365资源稳定资源站 | 日日夜夜国产 | 免费国产高清精品一区在线 | 久久精品国产一区二区三区肥胖 | 欧美视频在线观在线看 | 香蕉免费看一区二区三区 | 天天射天天爱天天干 |