概述
**
一、视图介绍
**
view:当查询的复杂度比较大,多表,多关系,会导致查询语句混乱,不利于sql语句的编写和编写的sql语句的编写和编写的sql语句的可读性。于是mysql推出了视图模式;视图模式是对一个查询的结果进行记录,视图里面只存放语句,不存放结果,类似于虚表。
视图优势:
1、简单,视图构建了一个虚拟的逻辑表,这个表里面的数据来自于指定的查询,而查询可以是多表联查,在使用的时候,我们可以直接对视图表里面的数据进行查询,不用从原始表查。
2、安全,数据库有权限设置,但是没有对行和列的权限,mysql本身的权限的设置有些不够,我们视图查询出用户需要的数据,用户基于视图进行查询。
3、数据独立,视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。对于视图的操作,例如,查询只依赖于视图的定义,当构成视图的基本表需要修改时,只需要修改视图定义中的子查询部分,而基于视图的查询不用改变。
视图的缺点:
视图会降低查询的效率。尤其在视图当做的查询当做再次使用试图
视图的设立:
创建:
数据库学生表中所有姓孙的学生
select * from student where name like “孙%”;
然后将该查询行程视图
create view student_sun as (select * from student where name like “孙%”);
使用:
select * from student_sun where gender =“女”;
删除视图 :
drop view student_sun;
查询所有视图命令:
show table status where comment=“view”G
**
二、触发器
**
触发器定义:
trigger,当某个事物满足某个条件所触发的某个功能。
触发器的编写:
以tab1和tab2作为案例,当tab1插入数据的时候,自动插入数据到tab2.
tab1
tab2
创建触发器:
DELIMITER ||声明mysql的结束符,默认结束符;
测试效果:
触发器的语句分析
create 创建; trigger 触发器; tb2_auto_add触发器名称,必须有意义;
after 触发事件之后; before 触发事件之前;each row 任意一行;begin开始编写触发事件;
inser into tb2(name,age) value (“老王”,18);触发事件;end 触发事件结束;
查看触发器:
触发器的信息都被存放在information_schema数据库当做的trigger表当中。
select * from information_schema.triggers;#查看触发器命令使用触发器之前一定要确定数据
库关系能不能完成需求。
DELIMITER;
再触发器当中,NEW变量代表触发表
DELIMITER ||
create trigger tb5_add_tb3_id_1 after insert ON tb3
for each row
begin
insert into tb5(tb3_id) value(NEW.id);
end
||
DELIMITER;
触发器作用:
1、安全考虑,考虑到数据被修改的权限问题,我们用触发器代替用户来修改数据
2、审计功能,对前端操作进行审计
3、实现业务规则
4、同步数据
5、用于科学计算,做数学统计
**
三、数据库备份方法
**
导出数据库
mysqldump -u root -p database table>*.sql
会在桌面生成一个school.sql文件,表示数据库中的school已经被导出。
导入数据库
mysql -u 用户名 -p数据库名称<数据库文件
最后
以上就是合适犀牛为你收集整理的mysql数据库视图与触发器的全部内容,希望文章能够帮你解决mysql数据库视图与触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复