视图
视图:VIEW,虚表,保存有实表的查询结果
创建方法:CREATE VIEW view_name AS ..
查看视图定义:SHOW CREATE VIEW view_name
删除视图:DROP VIEW view_name
查看创建时命令:SHOW CREATE VIEW view_name
可从库查看Comment:VIEW是否为虚拟表:SHOW TABLE STATUS FROM DB\G;
视图中的数据事实上存储于“基表”中,因此,其修改操作也会针对基表实现;其修改操作受基表限制 慎重操作,以免破坏原表
系统函数
https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html
自定义函数 (user-defined function UDF)
保存在mysql.proc表中
说明:参数可以有多个,也可以没有参数,必须有且只有一个返回值
函数只能在本库中使用
示例:无参数UDF
CREATE FUNCTION simpleFun() RETURNS VARCHAR(20) RETURN "Hello World!”;
示例:有参数UDF
DELIMITER // 先把;替换成//否则定义中会执行命令
开始定义函数:
CREATE FUNCTION
deleteById(uid SMALLINT UNSIGNED) RETURNS VARCHAR(20)
BEGIN
DELETE FROM students WHERE stuid = uid;
RETURN (SELECT COUNT(stuid) FROM students);
END//
结束定义
DELIMITER ; 定义结束还原;为结束符号
-
查看函数列表:
SHOW FUNCTION STATUS; -
查看函数定义
SHOW CREATE FUNCTION function_name -
删除UDF:
DROP FUNCTION function_name -
调用自定义函数语法:
SELECT function_name(parameter_value,…) -
自定义函数中定义局部变量语法
- DECLARE 变量1[,变量2,… ]变量类型 [DEFAULT 默认值]
- 说明:局部变量的作用范围是在BEGIN…END程序中,而且定义局部变量语句必须在BEGIN…END的第一行定义
示例:
DELIMITER //
CREATE FUNCTION addTwoNumber(x SMALLINT UNSIGNED, Y SMALLINT UNSIGNED)
RETURNS SMALLINT
BEGIN
DECLARE a, b SMALLINT UNSIGNED;
SET a = x, b = y;
RETURN a+b;
END//
DELIMITER ;
- 为变量赋值语法
SET parameter_name = value[,parameter_name = value…]
SELECT INTO parameter_name
示例:
DECLARE x int;
SELECT COUNT(id) FROM tdb_name INTO x;
RETURN x;
END//