今日内容
视图
触发器
事务
存储过程
内置函数
流程控制
索引
视图
# 1、什么是视图?
视图就是通过查询得到的一张虚拟表,然后保存下来,下次直接使用即可
# 2、为什么使用视图?
如果频繁的使用一张虚拟表,可以不用反复的查询
# 3、如何使用视图?
create view teacher2course as
select * from teahcer inner join course on teacher.tid = course.teacher_id;
#4、如何删除视图
drop view teacher2course
注:
1.在硬盘中,视图只存在表结构文件,没有表数据文件
2.视图通常是用于查询,尽量不要修改视图中的数据
触发器
# 1、什么是触发器?
在满足对某张表数据的增改删的情况下自动触发的功能称之为触发器
# 2、为什么是要使用触发器?
触发器专门针对我们对某一张表数据结构的insert,drop,update的行为,这类的行为一旦触发执行就会触发触发器的执行,即自动运行另一段SQL代码
# 3、怎么创建触发器的语法?
# 针对插入
create trigger tri_after_insert_t1 after/before insert on 表名 for each row
begin
sql代码
end
# 针对删除
create triggle tri_after_delete_t1 after/before delete on 表名 for each
row
begin
sql 代码
end
# 针对修改
create triggle tri_after_update_t1 after/before update on 表名 for each
row
begin
sql 代码
end
# 案例
CREATE TABLE cmd (
id INT PRIMARY KEY auto_increment,
USER CHAR (32),
priv CHAR (10),
cmd CHAR (64),
sub_time datetime, #提交时间
success enum ('yes', 'no') #0代表执行失败
);
CREATE TABLE errlog (
id INT PRIMARY KEY auto_increment,
err_cmd CHAR (64),
err_time datetime
);
delimiter $$ # 将MySQL默认的结束符由;换成$$
create trigger tri_after_inser_cmd after insert on cmd for each row
begin
if NEW.sucess ='no' then # 新纪录都会被Mysql封装成New对象
insert into errlog(err_cmd,err_time)values(NEW.cmd,