mysql 內置功能 存儲過程 創建無參存儲過程


 

 

 

 

操作哪個數據庫,就把存儲過程建到那個數據庫

例如 現在use db2;

應該把存儲過程 建立到db2數據庫里

 

創建無參存儲過程

 

delimiter // # 設置mysql結束符合為//
create procedure p1() # 創建程序固定procedure 和p1是存儲過程名字 BEGIN
    select * from db2.teacher; # sql語句 end // delimiter ;

 

 

查看創建的存儲過程

mysql> show create procedure p1\G;
*************************** 1. row ***************************
           Procedure: p1
            sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
    Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
BEGIN
    select * from db2.teacher;  
end
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)

ERROR: 
No query specified

 

調用存儲過程

#在mysql中調用
call 存儲過程名字;

mysql> call p1();
+-----+-----------------+
| tid | tname           |
+-----+-----------------+
|   1 | 張磊老師        |
|   2 | 李平老師        |
|   3 | 劉海燕老師      |
|   4 | 朱雲海老師      |
+-----+-----------------+
5 rows in set (0.18 sec)

Query OK, 0 rows affected (0.18 sec)

 

#在python中基於pymysql調用

調用存儲過程 callproc('') 里面是存儲過程名字

cursor.callproc('p1') 
print(cursor.fetchall())

 

 

import pymysql



mysql_host = '192.168.0.108'
port = 3306
mysql_user = 'root'
mysql_pwd = '123'
encoding = 'utf8'

# 建立 連接mysql服務端

conn = pymysql.connect(
    host=mysql_host,  # mysql服務端ip
    port=port,  # mysql端口
    user=mysql_user,  # mysql 賬號
    password=mysql_pwd,  # mysql服務端密碼
    db='db2',  # 操作的庫
    charset=encoding  # 讀取字符串編碼

)

# 拿到游標對象
cur = conn.cursor(pymysql.cursors.DictCursor)

'''
游標是給mysql提交命令的接口
mysql> 
把sql語句傳遞到這里
'''


# 執行sql語句
cur.callproc('p1')
# 打印查詢結果
print(cur.fetchall())



# 執行完sql語句要關閉游標和mysql連接
cur.close()
conn.close()

'''
[{'tid': 1, 'tname': '張磊老師'}, 
{'tid': 2, 'tname': '李平老師'}, 
{'tid': 3, 'tname': '劉海燕老師'}, 
{'tid': 4, 'tname': '朱雲海老師'}]
'''

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM