一、昨日内容回顾

  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. Codeforces 1091E New Year and the Acquaintance Estimation Erdős–Gallai定理

    题目链接:E - New Year and the Acquaintance Estimation 题解参考: Havel–Hakimi algorithm 和 Erdős–Gallai theore ...

  2. Unity3D ParticleSystem粒子系统

    粒子系统检视面板 点击粒子系统检视面板的右上角的"+"来增加新的模块.(Show All Modules:显示全部) 初始化模块: 持续时间(Duration):粒子系统发射粒子的 ...

  3. Java链接DB2的4种基本类型【转】

    原文链接:http://doc.chinaunix.net/java/201002/776480.shtml 第一种:目前IBM一直都没有提供 TYPE 1的JDBC驱动程序. 第二种:类型2驱动:C ...

  4. xl2tpd[26104]: Maximum retries exceeded for tunnel 33925. Closing

    Sep  5 14:31:50 root charon: 13[ENC] generating QUICK_MODE request 3930082374 [ HASH ]Sep  5 14:31:5 ...

  5. 从MySQL中导入数据到MongoDB中

    从sql中导出需要的数据为csv格式的数据 select field1,field2,...,fieldn from TABLE into outfile '/test.csv' fields ter ...

  6. php正则替换函数-----preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

    preg_replace — 执行一个正则表达式的搜索和替换 说明 mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $ ...

  7. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】

    概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...

  8. 深度解析SpringMvc实现原理手写SpringMvc框架

    http://www.toutiao.com/a6340568603607171329/?tt_from=mobile_qq&utm_campaign=client_share&app ...

  9. 2)django-请求生命周期

    1)下图是django请求生命周期 2)详细例子

  10. PID控制器开发笔记之八:带死区的PID控制器的实现

    在计算机控制系统中,由于系统特性和计算精度等问题,致使系统偏差总是存在,系统总是频繁动作不能稳定.为了解决这种情况,我们可以引入带死区的PID算法. 1.带死区PID的基本思想 带死区的PID控制算法 ...