一 视图

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

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

 临时表应用举例

一 创建视图

 

二 使用视图

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

三 修改视图

四 删除视图

二 触发器

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

一 创建触发器

 插入后触发触发器

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

二 使用触发器

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

三 删除触发器

 

三 事务

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

 

四 存储过程

一 介绍

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

使用存储过程的优点:

#1. 用于替代程序写的SQL语句,实现程序与sql解耦

#2. 基于网络传输,传别名的数据量小,而直接传sql数据量大

使用存储过程的缺点:

#1. 执行效率低

#2. 程序员扩展功能不方便

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

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

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

三 创建存储过程(有参)

对于存储过程,可以接收参数,其参数有三类:

#in          仅用于传入参数用
#out 仅用于返回值用
#inout 既可以传入又可以当作返回值
 in:传入参数
 out:返回值
 inout:既可以传入又可以返回
 事务

四 执行存储过程

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

五 删除存储过程

 

五 函数

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

 需要掌握函数:date_format

更多函数:中文猛击这里 OR 官方猛击这里

一 自定义函数

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

二 删除函数

三 执行函数

六 流程控制

一 条件语句

 if条件语句

二 循环语句

 while循环
 repeat循环
 loop

最新文章

  1. 给jdk写注释系列之jdk1.6容器(12)-PriorityQueue源码解析
  2. linux 和 ubuntu 修改主机名
  3. chapter 1 Number/Adventurous Person
  4. smarty(原理概述)
  5. sublime Text3 新建文件时定义模块
  6. Ubuntu16.04解决无法切换root权限的问题
  7. Android开发之漫漫长途 XVI——ListView与RecyclerView项目实战
  8. [WC 2011]Xor
  9. 【WCF系列】(四)WCF客户端怎么消费服务
  10. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
  11. redis调优的实战经验
  12. 洛谷P2051 中国象棋(dp)
  13. winform 布局、容器
  14. 20145232 韩文浩 《Java程序设计》第7周学习总结
  15. 正确计算linux系统内存使用率
  16. spark提示Caused by: java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [Lscala.collection.immutable.Map;
  17. Maven目标
  18. 【python】专用下划线标识符说明
  19. Unity Shaders and Effects Cookbook (3-5) 金属软高光
  20. APP开发的三种模式

热门文章

  1. 在myeclipse中安装svn
  2. CSS设置小技巧
  3. R语言和中国地图
  4. Ajax的跨域问题(包括解决方案)?
  5. ICE 中后台开发
  6. oracle内存分析
  7. iframe框架
  8. LeetCode OJ:Merge Sorted Array(合并排序的数组)
  9. Android性能优化之数据库优化
  10. H264子宏块的划分有哪些?