Mysql进阶
视图
创建视图
1 | create view 视图名 |
更新视图
1 | 方式一: |
删除视图
1 | drop view 视图名1,视图名2,...; |
查看视图
1 | desc 视图名; |
视图数据增删改查
1 | 查看数据 |
变量
系统变量
全局变量
作用域:针对于所有会话(连接)有效,但不能跨重启
1 | 查看所有全局变量 |
会话变量
作用域:针对于当前会话(连接)有效
1 | 查看所有会话变量 |
自定义变量
用户变量
1 | 声明并初始化 |
局部变量
1 | 声明 |
流程控制
分支
1 | 1、if函数 |
循环
1 | while |
存储过程
含义:一组经过预先编译的sql语句的集合
优点:
- 提高了sql语句的重用性,减少了开发程序员的压力
- 提高了效率
- 减少了传输次数
创建存储过程
1 | 1、需要设置新的结束标记 |
调用存储过程
1 | call 存储过程名(实参列表); |
函数
创建函数
1 | CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回类型 |
调用函数
1 | SELECT 函数名(实参列表); |
注意:函数与存储过程的区别:
返回值:函数只能是一个,存储过程可以是0个或多个
应用场景:函数一般用于查询结果为一个值并返回,存储过程一般用于更新
游标
注意:游标只能用在存储过程和函数中
声明游标
1 | declare 游标名 cursor for 查询语句; |
打开游标
1 | open 游标名; |
使用游标
1 | fetch 游标名 into 变量名 |
关闭游标
1 | close 游标名 |
游标示例
1 | delimiter $ |
触发器
触发器是响应delete、insert、update语句时自动执行的一条或一组语句。
注意:只有表支持触发器
创建触发器
1 | set @temp=0; |
删除触发器
1 | drop trigger 触发器名 |
触发器示例
1 | insert |