以下为个人作为初学者的自己看书总结,访客看到有不足或差错之处,欢迎交流指正。
day9 2020/10/23
目录
- 12.1 使用存储过程
- 12.1.1 创建存储过程
- 12.1.2 修改分隔符的设置
- 12.1.3 执行存储过程
- 12.1.4 创建只显示大于等于指定值的记录的存储过程
- 12.2 显示、删除
- 12.3 存储函数
- 12.3.1 创建存储函数
- 12.3.2 显示、删除
- 12.4 触发器
- 12.4.1 创建
- 12.4.2 确认、删除
12.1 使用存储过程
将多个 SQL 语句组合成在一起,只需要使用 “CALL XX” 就可以执行的集合,该集合就是存储过程。
12.1.1 创建存储过程
CREATE PROCEDURE 存储过程名()
BEGIN
SQL语句1
SQL语句2
END
12.1.2 修改分隔符的设置
delimiter //
如:delimiter //
CREATE PROCEDURE pr1()
BEGIN
SELECT * FROM tb;
SELECT * FROM tb1;
END
//
delimiter ;
12.1.3 执行存储过程
CALL 存储过程名;
12.1.4 创建只显示大于等于指定值的记录的存储过程
1. 存储过程中参数的编写
CREATE PROCEDURE 存储过程名(参数名 数据类型);
如:delimiter //
CREATE PROCEDURE pr2(d INT)
BEGIN
SELECT * FROM tb WHERE sales>=d;
END
//
delimiter ;
12.2 显示、删除
SHOW CREATE PROCEDURE 存储过程名;
DROP PROCEDURE 存储过程名;
12.3 存储函数
存储函数的方式和存储过程基本相同,但存储函数在执行后会返回一个值。
12.3.1 创建存储函数
注意是 RETURNS 有 S
1. CREATE FUNCTION 存储函数名(参数 数据类型) RETURNS 返回值的数据类型
BEGIN
SQL 语句...
RETURN 返回值·表达式
END
2. 定义变量
DECLARS 变量名 数据类型;
如:返回记录平均值的存储函数
delimiter //
CREATE FUNCTION fu2() RETURNS DOUBLE
BEGIN
DECLARE r DOUBLE;
SELECT AVG(sales) INTO r FROM tb;
RETURN r;
END
//
delimiter ;
SELECT fu2();
12.3.2 显示、删除
DROP FUNCTION 存储函数名;
SHOW CREATE FUNCTION 存储函数名;
12.4 触发器
12.4.1 创建
CREATE TRIGGER 触发器名 BEFORE(或者AFTER) DELETE等命令
ON 表名 FOR EACH ROW
BEGIN
使用更新前(OLD.列名)或者更新后(NEW.列名)的处理
END
12.4.2 确认、删除
SHOW TRIGGERS;
DROP TRIGGER 触发器名;
接下来一系列会每天记录《MySQL基础教程》的学习总结。挑战半个月看书,动手,写博客