视图
虚拟表 ,不保存数据 只保存sql的逻辑
view
create or replace view 名称 as select 语句
show 查询视图
操作视图同表一样
视图的增删改查: with cascaded check option 视图的检查选项 对视图进行更改操作时 会检查该操作是否符合视图定义时的条件
视图的更新及作用:
并不是所有的视图都可以更新 视图中的行必须满足基础表之间的一对一的关系,视图中有以下情况不允许更新:
聚合函数或者窗口函数,ditinct ,group by ,having ,union 或者union all
作用: 操作简单,将复杂的条件定义在视图中,安全,通过视图用户只看到视图里特定的字段,数据独立可以帮助用户屏蔽基础表变化对业务的影响
存储过程
介绍:
存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率有好处
存储过程的思想很简单就是数据库sql语言层面的代码封装与重启
特点:
封装 复用
可以接受参数返回参数
减少网路交互
基本语法
创建存储过程 :
create procedure 存储过程名称(「参数列表」)
begin
--sql 语句
end
调用 :call 名称(「参数」)
查看:show create procedure存储过程名称:查询存储过程的定义
select * from information-schema.rountins where rountin-schema= 'xx' 查询指定数据库的存储过程及状态信息
删除: drop proced
delimiter: 指定结束符号
系统变量: mysql 服务器自己提供的 分为会话变量session 全局变量global 默认会话级别
查看系统变量: show variables 设置系统变量: set
用户自定义变量 赋值 set @变量名 = XX select 字段名into变量名from 表
查找直接select @变量名
局部变量:局部生效;declare 声明
触发器:
触发器是与表有关的数据库对象,在插入更新删除的之前或之后 ,触发并执行触发器定中的sql语句u集合,可以保证数据库的数据完整性 日志记录 数据检验等操作
使用别名old 和new 来引用触发器中的发生的记录内容 这与其他数据库是相似的,现在触发器只支持行出发,不支持语句级别触发