Mysql学习笔记(三)

MySql学习笔记

第十部分 视图

– 视图
– 1.视图是一个虚拟的表,是从数据库中一个或多个表导出的表
– 2.数据库只存放视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中
– 3.使用视图查询数据时,数据库系统会从原来的表中读取相应的数据

– 视图的作用
– 1.使操作简便化
– 2.增加数据的安全性
– 3. -提高表的逻辑独立型

-- 单表创建视图
create view v1 as select * from t_booktype  

select  * from v1
-- 多表创建视图

create view v2 as select bookName,bookTypeName from t_book,t_booktype where t_book.bookTypeId=t_booktype.id

select * from v2
-- 查看视图
DESC v2
-- 查看视图基本信息
show table STATUS like 't_book'
-- 查看视图详细信息
show create view v2
-- x修改视图
-- 1. create or replace
create or replace view v1(bookName,price) as select bookName,price from t_book

-- 2.ALTER
alter view v1 as select * from t_book
-- 更新视图
-- 插入
inserT INTO V1 VALUES(null,'java',100,'ddd',1)

-- 更新
update v1 set bookName='java123' where id=1

-- 删除
delete from v1 where id=1
-- 删除视图

drop view if EXISTS v2

第十一部分 触发器

– 触发器的引入
– 触发器(TRIGGER)是由事件触发某个操作。这些事件包括insert update delete语句,
– 当数据库系统操作这些事件时,就会激活触发器执行相应的操作

– 创建和使用触发器

-- 创建只有一个执行语句的触发器
create TRIGGER tri_book AFTER INSERT 
ON t_book FOR EACH ROW
UPDATE t_booktype SET booknum =booknum+1 where new.bookTypeId=t_booktype.id;

insert into t_book VALUES(NULL,'java',120,'ddd',1 )

select * from t_booktype -- 计算机类的booknum增加了一个

– 创建有多个执行语句的触发器

delimiter|
create TRIGGER trig_book2 AFTER DELETE 
on t_book for EACH ROW
BEGIN
UPDATE t_booktype set bookNum=booknum-1 where old.bookTypeId=t_booktype.id;
INSERT into t_log VALUES (NULL,NOW(),'在book表删除了一条数据');
DELETE from t_test WHERE old.bookTypeId=t_test.id;
END
|
delimiter

DELETE from t_book where id=1;

select * from t_log – 添加在book表删除了一条数据

select * from t_test – id为5的数据删除了

select * from t_booktype – 计算机类的booknum减少了一个

-- 查看触发器
-- 1.show TRIGGERS
-- 删除触发器

drop TRIGGER trig_book

猜你喜欢

转载自blog.csdn.net/m0_37591671/article/details/78010282
今日推荐