Mysql学习笔记(三)

来源:互联网 发布:maven java目录下的xml 编辑:程序博客网 时间:2024/06/18 04:01

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.idselect * from v2
-- 查看视图DESC v2
-- 查看视图基本信息show table STATUS like 't_book'
-- 查看视图详细信息show create view v2
-- x修改视图-- 1. create or replacecreate or replace view v1(bookName,price) as select bookName,price from t_book-- 2.ALTERalter 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 ROWUPDATE 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 ROWBEGINUPDATE 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