1。视图
视图是将数据库中频繁使用的部分字段取出来,重新组建一个寄生在原有表上的新表,提高操作效率。
2。临时表
3。存储过程
# 相当于程序中的函数
# 过程名间可以用空格,可以用.号,但是不可以和系统函数重名
# mysql过程不可以重载,但是有些数据库是可以的
# 可以使用 show procedure status 来查看当前定义的所有过程
# 过程中不能嵌套新过程,过程中也不能包含同级别的其他操作语句,比如删除过程,修改过程,建立触发器,修改触发器,删除触发器等等(CREATE PROCEDURE / ALTER PROCEDURE / DROP PROCEDURE /CREATE FUNCTION / DROP FUNCTION /CREATE TRIGGE / DROP TRIGGER),也不可以使用 USE DB 这样语句,因为过程本来就是必须在一个特定的数据库下工作的,不可以再更换数据库。
# 可以在过程中使用的有用的子句:
* SQL SECURITY DEFINER 在调用过程时检查创建过程者的权限,而不需检查当前调用过程者的权限,它是默认情况下的选项。
* SQL SECURITY INVOKER 则是仍然要检查调用过程者的权限。
* COMMENT 'ABDEFG' 注释语句
# 在过程中定义的参数可以指定 IN / OUT / INOUT 的属性来指定他们是输入、输出还是两者皆可。
# 在过程中定义变量使用 DECLARE 语句,这样的变量都只在过程中有效。DECLARE test INT DEFAULT 10
# 只是 DECLARE 而没有指定值的变量其值都是 NULL,你可以在任何时候使用SET 来指定变量的值。
4。触发器
可以监视数据库的操作变化,并执行相应的sql。
5. 事务处理
[查看全文]