目录
1. 视图
简介:视图是一种虚拟存在的表,视图中的数据并不实际存在,行和列的数据来自定义定义视图时查询的表,是在使用视图时动态生成的。也就是说视图只保存sql语句的逻辑,不保存数据。
- 创建视图的语句
CREATE [OR REPLACE] VIEW 视图名称 AS SELECT 语句 [WITH CASCADED/LOCAL CHECK OPTION] |
- 查看视图的语句
方式一 | SHOW CREATE VIEW 视图名称 |
方式二 | SELECT 视图名称 |
- 修改视图语句
方式一 | SELECT OR REPLACE VIEW 视图名称 AS SELECT 语句 [WITH CASCADED/LOCAL CHECK OPTION] |
方式二 | ALTER VIEW 视图名称 SELECT 语句 [WITH CASCADED/LOCAL CHECK OPTION] |
- 删除语句
DROP VIEW 视图名称 |
具体代码
视图的检查选项
1)cascaded:该选项会在插入数据时检查是否符合条件,符合就插入,否则失败
2)local:该选项会在插入数据时检查是否符合条件,符合就插入,否则失败
视图的更新
视图可更新,视图中的行于基础表中的行必须一一对应,
如果有以下任一选项视图不可更新:
1)聚合函数或窗口函数
2)DISTINCT
3)GROUP BY
4)HAVING
5)UNION或者UNION ALL
视图的作用
1)简单:可以化简用户对数据的理解
2)安全:可以指定用户可以看到的行和列
3)数据独立:可屏蔽真实表带来的影响
2.存储过程
2.1 语句
创建存储过程
CREATE PROCEDURE 存储过程名称(参数列表) BEGIN sql语句 END; |
调用存储过程
CALL 存储过程名称 |
查看存储过程
查询指定数据库的存储过程及状态信息 | SELECT * FROM IMFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_CHEMA = '数据库名称' |
查看指定存储过程的信息 | SHOW PROCEDURE 存储过程名称 |
删除存储过程
DROP PROCEDURE 存储过程 |
具体语法
注意:在命令行中要创建存储过程,需要把分割符 ; 该掉,使用 delimiter 这个命令
如图:
2.2 变量
查看系统变量
查看所有系统变量 | SELECT [SESSION|GLOBAL] VARIABLES |
通过模糊匹配查看系统变量 | SELECT [SESSION|GLOBAL] VARIABLES LIKE '......' |
查看指定变量 | SELECT @@[SESSION|GLOBAL] 系统变量名 |
设置系统变量名
SET [SESSION|GLOBAL] 系统变量名 = 值 |
SET @@[SESSION|GLOBAL] 系统变量名 = 值 |
用户自定义变量
赋值
SET @变量名 = 值; |
SET @变量名 = 值,@变量名 = 值; |
SELECT @变量名 = 值; |
SELECT 字段名 INTO @变量名 FROM 表名 |
使用
SELECT @变量名 |
具体语法
注意:用户定义的变量无需对其进行声明和初始化,获取的值会是空值。
声明变量declare
DECLARE 变量名 变量类型 |
2.3 存储过程的各种语句
2.3.1 if条件判断
IF 条件 THEN ...... ELSEIF 条件 THEM ...... ELESEIF 条件 THEM ..... END IF; |
具体语法
2.3.2 参数
in | 作为输入参数 |
out | 作为输出参数 |
inout | 即可作为输入参数,也可作为输出参数 |
具体语法
2.3.3 case语句
语法
CASE WHEN 条件 THEN ....... WHEN 条件 THEN ....... ELSE ..... END CASE; |
具体语法
2.3.4 while循环语句
语法
WHILE 条件 DO 语句 END WHILE; 当满足条件时,循环继续,当不满足条件时,循环退出 |
具体语法
2..3.5 repeat循环
语句
REPEAT 语句 UNTIL 条件 END REPEAT; 当满足条件时,退出循环,不满足条件时,继续循环 |
具体语法
2..3.6 loop 循环语句
语法
标签名:LOOP 语句 END LOOP 标签名; 可以用来完成简单的死循环 LEAVE:与该选项搭配,可以退出循环 ITERATE:与该选项搭配,可以过这一个循环剩下的语句,进入到下一循环种 |
具体语法
2.3.7 cursor 游标
语法
声明游标 | DECLARE 游标名称 CURSOR FOR SELECT 语句 |
打开游标 | OPEN 游标名称 |
获取游标值 | FETCH 游标名称 INTO 变量1,变量2.... |
关闭游标 | CLOSE 游标名称 |
注意:声明变量必须在游标之前声明
具体语句
2.3.8 handler 条件处理程序
参数定义
3. 存储函数
语法及参数定义
具体语句
4. 触发器
简介:触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。除法器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录和数据校验等操作
4.1触发器类型
类型 | NEW和OLD |
---|---|
INSERT型触发器 | NEW表示将要或者已经更新的操作 |
UPDATE型触发器 | OLD表示修改前的数据,NEW表示将要或者已经修改的数据 |
DELETE型触发器 | OLD表示将要或者已经删除的数据 |
4.2 语法
- 创建
CREATE TRIGGER 触发器名称 AFTER INSERT/UPDATE/DELETE ON 表名 FOR EACH ROW BEGIN 语句 END; |
- 查看
SHOW TRIGGERS |
- 删除
DROP TRIGGER 触发器名称 |
具体语法