博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python开发mysql:视图、触发器、事务、存储过程、函数
阅读量:7222 次
发布时间:2019-06-29

本文共 1430 字,大约阅读时间需要 4 分钟。

一 视图

视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。

使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用

 
临时表应用举例

一 创建视图

 
View Code

二 使用视图

 
View Code

我们不应该修改视图中的记录,而且在涉及多个表的情况下是根本无法修改视图中的记录的,如下图

三 修改视图

 
View Code

四 删除视图

 
View Code

二 触发器

使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询

一 创建触发器

 
View Code
 
插入后触发触发器

特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。

二 使用触发器

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

三 删除触发器

 
View Code
 

三 事务

事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。

 
View Code
 

四 存储过程

一 介绍

存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql

使用存储过程的优点:

#1. 用于替代程序写的SQL语句,实现程序与sql解耦#2. 基于网络传输,传别名的数据量小,而直接传sql数据量大

使用存储过程的缺点:

#1. 执行效率低#2. 程序员扩展功能不方便

补充:程序与数据库结合使用的三种方式

#方式一:    MySQL:存储过程    程序:调用存储过程#方式二:    MySQL:    程序:纯SQL语句#方式三:    MySQL:    程序:类和对象,即ORM(本质还是纯SQL语句)

二 创建简单存储过程(无参)

 
View Code

三 创建存储过程(有参)

对于存储过程,可以接收参数,其参数有三类:#in          仅用于传入参数用#out        仅用于返回值用#inout     既可以传入又可以当作返回值
 
in:传入参数
 
out:返回值
 
inout:既可以传入又可以返回
 
事务

四 执行存储过程

 
在MySQL中执行存储过程
 
在python中基于pymysql执行存储过程

五 删除存储过程

 
View Code
 

五 函数

MySQL中提供了许多内置函数,例如:

 
View Code
 
需要掌握函数:date_format

更多函数: OR 

一 自定义函数

#!!!注意!!!#函数中不要写sql语句(否则会报错),函数仅仅只是一个功能,是一个在sql中被应用的功能#若要想在begin...end...中写sql,请用存储过程
 
View Code
 
View Code

二 删除函数

 
View Code

三 执行函数

 
View Code

六 流程控制

一 条件语句

 
if条件语句

二 循环语句

 
while循环
 
repeat循环
 
loop

转载于:https://www.cnblogs.com/jokerbj/p/7546030.html

你可能感兴趣的文章
JavaScript对象:我们真的需要模拟类吗?
查看>>
Node.js因为OpenSSL安全问题推迟更新
查看>>
宜人贷CTO段念:透明与面向目标是管理理念的核心
查看>>
Java 9进入第一轮问题修复阶段
查看>>
蔚来汽车李斌:2025年无人驾驶将100%解放驾驶时间
查看>>
数据中心操作人员:艰难地在针对VM构建的基础设施上运行容器
查看>>
从0到1:PostCSS 插件开发最佳实践
查看>>
物联网技术周报第 141 期: 使用 Alexa Voice 和 Raspberry Pi 构建图片识别应用
查看>>
FreeWheel业务系统微服务化过程经验分享
查看>>
Jeff Bean谈Flink与流式处理的5大新发现
查看>>
移动互联网下半场,iOS开发者如何“高薪”成长?
查看>>
Facebook智能bug修复神器:让程序员少掉几根头发
查看>>
雪球CTO王栋谈招聘:认可团队与产品最重要
查看>>
Atlassian是怎样进行持续交付的?且听 Steve Smith一一道来
查看>>
通过Baratine将Lucene库暴露为微服务
查看>>
SQL Server 2016:伸展数据库
查看>>
宜人贷CTO段念:我与“研发管理”
查看>>
CentOS6 编译安装 redis-3.2.3
查看>>
Web Storage相关
查看>>
关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
查看>>