MySql视图触发器存储过程详解视图触发器存储过程详解
视图:
一个临时表被反复使用的时候,对这个临时表起一个别名,方便以后使用,就可以创建一个视图,别名就是视图的名称。
视图只是一个虚拟的表,其中的数据是动态的从物理表中读出来的,所以物理表的变更回改变视图。
创建:
create view v1 as SQL
例如:create view v1 as select * from student where sid<10
创建后如果使用mysql终端可以看到一个叫v1的表,如果用navicate可以在视图中看到生成了一个v1的视图
再次使用时,可以直接使用查询表的方式。例如:select * from v1
修改:只能修改视图中的sql语句
alter view 视图名称 as sql
删除:
drop view 视图名称
触发器:
当对某张表做增删改查的时候(之前后者之后),就可以使用触发器自定义关联行为。
修改sql语句中的终止符号 delimiter
before after 之前之后
-- delimiter //
-- before或者after定义操作(insert或其他)之前或之后的操作
-- on 代表那张表发生操作后引发触发器操作
-- CREATE TRIGGER t1 BEFORE INSERT on teacher for EACH row
-- BEGIN
-- INSERT into course(cname) VALUES('奥特曼');
-- END //
-- delimiter ;
-- insert into teacher(tname) VALUES('triggertest111')
--
-- delimiter //
-- CREATE TRIGGER t1 BEFORE INSERT on student for EACH row
-- BEGIN
-- INSERT into teacher(tname) VALUES('奥特曼');
-- END //
-- delimiter ;
-- insert into student(gender,sname,class_id) VALUES('男','1小刚111',3);
-- 删除触发器
-- drop trigger t1;
-- NEW 和 OLD 代指新老数据 使其数据一致
-- delimiter //
-- create TRIGGER t1 BEFORE insert on student for each row
-- BEGIN
--这里的new 指定的是新插入的数据,old通常用在delete上
-- insert into teacher(tname) VALUES(NEW.sname);
-- end //
-- delimiter ;
insert into student(gender,sname,class_id) VALUES('男','蓝色的大螃蟹',3);
存储过程: