ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
删除视图,需要用户具有删除权限
DROP VIEW [IF EXISTS] view_name
查看视图
SHOW TABLE STATUS
查看的定义
show create view 名称
二: 存储过程跟存储函数
定义:
存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合
存储过程和函数的区别在于函数必须有返回值,而存储过程没有,存储过程的参数可以使用 IN、OUT、INOUT 类型,而函数的参数只能是 IN 类型的。如果有函数从其他类型的数据库迁 移到 MySQL,那么就可能因此需要将函数改造成存储过程
优点
可以将数据的处理放在数据库服务器上进行,避免将大量的结果集传输给客户端,减少数据的传输
缺点
数据库服务器上进行大量的复杂运算也会占用服务器的 CPU,造成数据库服务器的压力
存储过程或者函数的操作
创建
CREATE PROCEDURE 存储过程名称 (参数]) 语句
CREATE FUNCTION 函数名称 (参数]) RETURNS 返回值类型 语句
存储过程参数:
[ IN | OUT | INOUT ] 参数名 参数类型
函数参数:
参数名 参数类型
调用
CALL 存储过程名称(参数1,参数2.....)
删除存储过程或者函数
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
查看存储过程或者函数
SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern']
查看定义
SHOW CREATE {PROCEDURE | FUNCTION} 名称
三:触发器
创建触发器
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
示例:(DELIMITER 将解为标志符替换为$$)
DELIMITER $$
CREATE TRIGGER ins_film
AFTER INSERT ON film FOR EACH ROW BEGIN
INSERT INTO film_text (film_id, title, description)
VALUES (new.film_id, new.title, new.description);
END;
$$
delimiter ;
trigger_time 是触发器的触发时间,可以是 BEFORE 或者 AFTER,BEFORE 的含义指在检
查约束前触发,而 AFTER 是在检查约束后触发。
而 trigger_event 就是触发器的触发事件,可以是 INSERT、UPDATE 或者 DELETE
mysql中对同一个表相同触发时间的相同触发事件,只能定义一个触发器
删除触发器
DROP TRIGGER [数据库.]trigger_name
不写数据库名称,默认为当前数据库
查看触发器 可以通过执行 SHOW TRIGGERS 命令查看触发器的状态、语法等信息,但是因为不能查询指 定的触发器,所以每次都返回所有的触发器的信息,使用起来不是很方便