zoukankan      html  css  js  c++  java
  • python全栈开发day57- pymysql、视图、触发器、函数

    一、昨日内容回顾

      1.单表查询

       优先级

        from

        where

        group by

        having

        select

        distinct

        order by

        limit

       2 . 多表查询

        inner join。。。on

        left  join 。。。on

        rigth join 。。。on

      

    二、今日内容总结

      1.pymysql

       (1) 建立连接

        conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='practice',charset='utf8')

               (2)实例化游标

        cursor = conn.cursor() # 里边可以传参cursor=pymsql.cursors.DictCursor

        (3) 定义sql语句

        (4) cursor.excute(sql)

         cursor.excutemany(sql,[(1,'a'),(2,'b')])  # 返回值为操作成功影响行数

       (5) 取值

        cursor.fetone()

        cursor.fetall()

        cursor.fetmany()

        (6) 调游标位置

        cursor.scroll(1,mode='relative')

        cursor.scroll(1,mode='absolute')   

       (7) cursor.close()

         conn.close()

      2.视图

       create view 视图名 as select XXX from xxx。。。

       alter view 视图名 as select 。。。。

         drop view 视图名 。。。。。

      3.触发器 insert(new),delete(old),update(new,old)

       create trigger 触发器名 before insert on 表名 

        for each row

       begin

        。。。。

        end

         

    create trigger t1 after insert on user for each row set new.name = Upper(new.name);
    将插入用户的名字大写
    create table del_info(del_name varchar(32),del_time datetime);
    
    create trigger t_del before delete on user for each row 
    begin
        insert into del_info values(old.name,now());
    end
    删除数据前记录删除用户名和删除事件

      4.函数

        1) 一堆内置函数

          重点:

          date_formart(日期,‘%Y-%m’) 。。。。。。

             2) 自定义函数

    create function myfunc(a int,b int) returns int
    begin
    declare c int;
    set c=a+b;
    return c;
    end;

     删除函数

    drop function myfunc

    执行函数

    select myfunc(1,2)

      

         

    5. 存储过程 

    create table product(
    id int primary key,
    name varchar(32) not null,
    price int
    );
    insert into product values(1,'apple',18),(2,'banana',6);
    
    create procedure productprice(
        out pmax decimal(8,2),
        out pmin decimal(8,2),
        out pavg decimal(8,2)
    )
    begin
    select Max(price) into pmax from product;
    select Min(price) into pmin from product;
    select Avg(price) into pavg from product;
    end;
    
    call productprice(@pmax,@pmin,@pavg);
    存储过程

     6.游标

    create procedure riseinprice( in percent decimal(4,2))
    begin
    declare o int;
    declare name varchar(32);
    declare done boolean default 0;
    declare riseprice CURSOR for
    select id from product;
    declare continue handler for sqlstate '02000' set done=1;
    open riseprice;
    repeat 
        fetch riseprice into o;
        update product set price=50 where id = o;
        until done END repeat;
    close riseprice;
    end;

     7 事务

    start transaction:
    .....
    .....
    savepoint delete1
    .....

    commit/rollback/rollback to delete1



      

    三、预习和扩展

  • 相关阅读:
    用户交互
    python简介
    maven阿里云镜像setting
    apache虚拟主机的ip用法 包括iis
    apache的虚拟主机配置和指定目录的访问描述(
    apache重定向301 配置,根域名转到www
    前端学习
    一步一步写jQuery插件
    json 和 table控件
    下载相关
  • 原文地址:https://www.cnblogs.com/wuchenggong/p/9338162.html
Copyright © 2011-2022 走看看