mysql学习笔记(2)

视图:

  create view XXX as 「一个sql语句」

  视图:创建一个临时表。在视图里不允许删除、更新,只允许查找。

      使用视图:

  select * from XXX

存储过程:

  delimiter $$

  create procedure p1()

  BEGIN

    select * from t1;

  END $$

  delimiter ;

  修改终止符为$$,然后创建存储过程p1(),最后还要再将终止符改回为“;”

  通过call p1()可以执行存储过程,在存储过程中可以存很多逻辑语句。

  示例:

    import pymysql

    conn = pymysql.connect(host = '127.0.0.1', port = 3306, user = 'root', passwd = '123', db = 't1')

    cursor = conn.cursor(cursor = pymysql.cursors.DictCursor)

    ## 执行存储过程,获取存储过程的结果集,将返回值设置给了 @_存储过程名_序号

    cursor.callproc('p1', args = (1, 22, 3 ,4)) 

    # set @_p1_0 = 1

    # set @_p1_1 = 22

    # set @_p1_2 = 3

    # set @_p1_3 = 4

    # call p1(1, 22, 3, 4)

    result1 = cursor.fetchall()

    print(result1)

    ## 获取执行完存储的参数

    cursor.execute("select @_p1_0, @_p1_1, @_p1_2, @_p1_3")  # 固定用法,@_后面跟存储过程名p1再跟下划线_再加0、1、2、3,也没那么智能,即使前两个参数都是in的,也获取出来

    rusult2 = cursor.fetchall()

    print(result2)

    conn.commit()

    cursor.close()

    conn.close()

动态执行SQL语句:

  SQL是字符串,借助特殊语法——字符串格式化“?”进行拼接。

 

触发器:

  触发器里NEW表示即将插入的数据行,OLD表示即将删除的数据行。

  触发器无法由用户直接调用,而是由对表的增删改操作被动引发。

 

posted on 2020-01-13 17:28  屾哥  阅读(123)  评论(0)    收藏  举报

导航