一、昨日内容回顾

  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. 洛谷:P3281 [SCOI2013]数数 (优秀的解法)

    刷了这么久的数位 dp ,照样被这题虐,还从早上虐到晚上,对自己无语...(机房里又是只有我一个人,寂寞.) 题目:洛谷P3281 [SCOI2013]数数 题目描述 Fish 是一条生活在海里的鱼, ...

  2. C++面向对象的特点

    C++面向对象的特点 面向对象的特点主要有: 封装, 继承, 多态; 现在自己的简单理解如下, 但要明白具体怎么实现, 背后的原理是什么? 什么是封装, C++怎么实现封装 封装的大致可以分为: 函数 ...

  3. $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互

    一.ajax  1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json  2 ajax干啥用的?前后端做数据交互:  3 之前学的跟后台做交互的方式:   -第一种:在浏览器 ...

  4. matlab常用命令

    clc; %清屏 clear; %清除变量 close all; %关闭 doc %查看文档 meshgrid%采样mesh %网格曲面surf %光滑曲面plot %ezplotdiff figur ...

  5. oracle 新增一条数据时设置id自增

    CREATE SEQUENCE test_seq    --创建一个test_seq序列INCREMENT BY 1   --每次加1START WITH 1     --从1开始NOMAXVALUE ...

  6. HashMap遍历的两种方式,推荐使用entrySet()

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {    ...

  7. Codeforces 1093E Intersection of Permutations [CDQ分治]

    洛谷 Codeforces 思路 一开始想到莫队+bitset,发现要T. 再想到分块+bitset,脑子一抽竟然直接开始写了,当然也T了. 最后发现这就是个裸的CDQ分治-- 发现\(a\)不变,可 ...

  8. 纯CSS3轮播图

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. linux 批量进行:解压缩某一类压缩文件类型的文件

    1: 编写脚本 [oracle@oracle oracle]$ vim unzip.sh ziphome=/u01/app/oracle ziplist=`du -a $ziphome |grep ' ...

  10. Confluence 6 重构 ancestor 表

    ancestor 表记录了上级和下级(子页面)页面之间的关系.这个表格同时被用来确定子页面是否具有从上级页面继承来的限制(restrictions)权限. 偶尔 ancestor 表格中的数据可能被损 ...