1.简述触发器、函数、视图、存储过程?
视图、触发器、事务、存储过程、函数、流程控制皆是在库下面建立
触发器:在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器
为何要用触发器: 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行就会触发触发器的执行,即自动运行另外一段sql代码
函数:mysql内置的函数只能在sql语句中使用,mysql> select date_format(sub_time,'%Y-%m'),count(id) from blog group by date_format(sub_time,'%Y-%m');
什么是视图:通过查询得到一张虚拟表,保存下来,下次可直接使用
为什么要用视图: 如果要频繁使用一张虚拟表,可以不用重复查询
如何用视图:create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id;
删除视图:drop view teacher2course;
强调:在硬盘中,视图只有表结构文件(.frm),没有表数据文件(.idb); 其在后台对应的是一条sql语句;视图通常是用于查询,尽量不要修改视图中的数据
#在mysql中函数是不能单独使用的,必须放在sql语句中使用;但存储过程是可以单独使用的
存储过程:存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql
2.select执行顺序
-- DQL select
1 SELECT 列名,别名,表达式,聚合函数,函数
2 FROM 表名,子查询
3 WHERE 条件
4 GROUP BY 分组列
5 HAVING 分组之后的条件(聚合函数,列别名)
6 ORDER BY 排序列 (DESC,ASC)
7 LIMIT 分页(过滤条数,显示条数)
执行顺序:
1 FROM
2 WHERE 行过滤
3 SELECT 列投影
4 GROUP BY 分组
5 HAVING 分组后条件过滤
6 ORDER BY 排序
7 LIMIT 分页