zoukankan      html  css  js  c++  java
  • mysql 内置功能 存储过程 创建无参存储过程

    操作哪个数据库,就把存储过程建到那个数据库

    例如 现在use db2;

    应该把存储过程 建立到db2数据库里

     

    创建无参存储过程

    delimiter // # 设置mysql结束符合为//
    create procedure p1() # 创建程序固定procedure 和p1是存储过程名字
    BEGIN
        select * from db2.teacher;  # sql语句
    end //
    delimiter ;

    查看创建的存储过程

    mysql> show create procedure p1G;
    *************************** 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': '朱云海老师'}]
    '''
    
    
  • 相关阅读:
    linux基础知识之vi编辑器的使用
    Linux的通信命令
    Linux学习之文件的压缩与解压
    Liux文件操作
    Linux简单学习
    Drupal V7.3.1 框架处理不当导致SQL注入
    Typecho V1.1反序列化导致代码执行分析
    浅析PHP反序列化漏洞之PHP常见魔术方法(一)
    python正则表达式记录
    SQLmap源码分析之框架初始化(一)
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/9946373.html
Copyright © 2011-2022 走看看