一、昨日内容回顾

  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 '' 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全栈开发day57- pymysql、视图、触发器、函数的更多相关文章

  1. python 全栈开发,Day64(视图,触发器,函数,存储过程,事务)

    昨日内容回顾 pymysql:属于python的一个模块 pip3 install pymysql conn = pymysql.connect(...,charset = 'uft8') 创建游标 ...

  2. 巨蟒python全栈开发django3:url&&视图

    1.url正则匹配分组和命名分组 2.路由分发 3.url别名和反向解析 4.httprequest和httpresponse的使用 内容回顾: .jinja2(flask框架,没有内置模板对象,需要 ...

  3. Python全栈开发:pymysql

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  4. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  5. python全栈开发-Day12 三元表达式、函数递归、匿名函数、内置函数

    一. 三元表达式 一 .三元表达式 仅应用于: 1.条件成立返回,一个值 2.条件不成立返回 ,一个值 def max2(x,y): #普通函数定义 if x > y: return x els ...

  6. python 全栈开发,Day113(方法和函数的区别,yield,反射)

    一.方法和函数的区别 面向对象 初级 class StarkConfig(object): def __init__(self,model_class): self.model_class = mod ...

  7. python全栈开发_day9_脚本文件和函数的基本运用

    一:脚本文件 1)脚本文件的操作 import sys p=sys.argv print(p) #将python代码放到cmd中运行,在后面添加参数,会自动保存在输出的列表中,默认输出的列表中只有一个 ...

  8. 巨蟒python全栈开发-第9天 初识函数

    一.今日主要内容总览(重点) 1.什么是函数? f(x)=x+1 y=x+1 函数是对功能或者动作的封装2.函数的语法和定义 def 函数名(): 函数体 调用:函数名()3.关于函数的返回值 ret ...

  9. 巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from

    一.今日主要内容总览(重点) 1.生成器(目的:帮助我们创建对象) (1)生成器的本质就是迭代器 (2)一个一个的创建对象 (3)创建生成器的方式: 1.生成器函数 2.通过生成器表达式来获取生成器 ...

随机推荐

  1. UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset

    UVALive 8513 有2种人,每个人有自己的权值$A_i$ $B_i$ 当$A_i + B_i >=K$时 两个人可以配对 问最多多少人可以配对 解法 : 把$/{ A_i /}$ 排序 ...

  2. TCP与UDP区别小结

    TCP(Transmission Control Protocol):传输控制协议 UDP(User Datagram Protocol):用户数据报协议       主要从连接性(Connectiv ...

  3. html5 - Storage 本地存储

    Storage的解释 http://www.w3school.com.cn/html5/html_5_webstorage.asp 简单的理解就是: Storage 有两种: 1.localStora ...

  4. ansible配合shell脚本批量编译安装python3.6.6

    [root@node1:/etc]# tree /etc/ansible/ /etc/ansible/ ├── ansible.cfg ├── hosts ├── python.yml └── rol ...

  5. iOS post提交数据有嵌套数组的处理方法

    2017年11月21日17:11:43 解决办法, 修改iOS框架里的代码: http://www.jianshu.com/p/130daa0c2fe7 确实有效, 要不然,  内层的每一个键值对都会 ...

  6. Uncaught RangeError: Maximum call stack size exceeded

    环境: jquery+bootstrap+bootstrapValidator 问题描述:有个form表单,一点击按钮提交,就会报如题错误.正常应该是去校验表单输入. 解决: 从日志分析来看,报错的起 ...

  7. 解决KafKa数据存储与顺序一致性保证

    “严格的顺序消费”有多么困难 下面就从3个方面来分析一下,对于一个消息中间件来说,”严格的顺序消费”有多么困难,或者说不可能. 发送端 发送端不能异步发送,异步发送在发送失败的情况下,就没办法保证消息 ...

  8. 详解 HTTPS、TLS、SSL、HTTP区别和关系

    一.什么是HTTPS.TLS.SSL HTTP也称作HTTP over TLS.TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL ...

  9. C#方法的重写

    问题一:什么是重写? “重写”父类方法就是修改它的实现方式或者说在子类中对它进行重新编写. 问题二:为什么要重写父类的方法      通常,子类继承父类的方法,在调用对象继承方法的时候,调用和执行的是 ...

  10. Confluence 6 为搜索引擎隐藏外部链接

    为搜索引擎隐藏外部链接能够避免向你的站点添加垃圾信息.如果你启用了这个选项的话,任何插入到页面中的 URLs 和评论将会赋予 'nofollow' 属性,这个属性将会禁止搜索引擎进行索引.  快捷链接 ...