29.数据库高级部分

数据库高级部分

1.视图(view)

视图是有一张表或多张表的查询结果构成的一张虚拟表,使用的好处是:

  • 当在使用多表查询时,sql语句可能会非常的复杂,每次都编写一遍会相当麻烦,所以可以通过视图帮我们节省sql的编写重复使用。
  • 另一个作用是,我们可以使用不同的视图来开放不同数据的访问,限定展示出想要展示的部分

注意:由于是一张虚拟表,视图中的数据实际上来源于其他其他表,所以在视图中的数据不会出现在硬盘上

创建视图

CREATE [OR REPLACE] VIEW view_name [(column_list)]
AS select_statement

2.触发器(trigger)

触发器是一段与表有关的mysql程序,当这个表在某个时间点发生了某种事件时 将会自动执行相应的触发器程序

时间点表示当在事件发生前使用before | 事件发生后 使用after

事件包括update,delete,insert

触发器包含两个对象

  • old :update,delete中可用
  • new :update,insert 中可用

可以用于:当表的数据被修改时,自动记录一些数据,执行一些sql语句

3.事务(transaction)

事务就是一系列sql语句的组合,是一个整体。

事务的特点:

扫描二维码关注公众号,回复: 6809331 查看本文章
  1. 原子性,指的是这个事务中的sql语句是一个整体,不能拆分,要么都执行,要么全都失败
  2. 一致性, 事务执行结束后,表的关联关系一定是正确的,不会发送数据错乱
  3. 隔离性,事务之间相互隔离,数据不会互相影响,即使操作了同一个表 , 本质就是加锁,根据锁的粒度不同分为几个隔离级别
  4. 持久性,事务执行成功后数据将永久保存,无法恢复

使用事务:

  1. start transaction:开启事物,在这条语句之后的sql将处在同一事务,并不会立即修改数据库
  2. commit:提交事务,让这个事物中的sql立即执行数据的操作,
  3. rollback:回滚事务,是用来取消这个事物,这个事物则不会对数据库中的数据产生任何影响,比如当一个事务执行过程中出现了异常这种情况可使用rollback来回滚事务
  4. savepoint:保存点,可以在rollback指定回滚到某一个固定位置 ,也就是回滚一部分

4.存储过程(procedure)

存储过程是一组任意的sql语句集合,在mysql中,调用存储过程会执行其包含的所有sql语句;与python中函数类似

调用时用set设置变量,call来调用存储过程

5.函数

sql语言中除了内置函数可以自定义函数

通过create 创建函数,包括函数名,函数体,返回值的类型和返回值

6.备份与恢复

使用自带的mysqldump.exe来备份,可以备份具体的表,库,或者所有的库至一个文件里

mysqldump -u用户名 -p密码 要备份的内容(数据库 表名1 表名2) .... > 文件路径....

恢复数据:

  • 没有登录mysql :mysql < 文件路径
  • 已经登录了MySQL :source 文件路径

7.流程控制

主要包括一些sql语法:

if then/case(选择执行)/declare (定义变量)/while,loop,repeat(循环)

查询语法中正则匹配的用法 是在条件判断通过regexp中加入正则匹配来筛选,注意不能加入类似\w这样的符号

猜你喜欢

转载自www.cnblogs.com/yellowcloud/p/11202198.html
今日推荐