视图
- 基本操作
CREATE VIEW pro AS SELECT c_name, c_con, p_id FROM customers, orders, orderitems WHERE customers.c_id = orders.c_id AND orderitems.o_num = orders.o_num;//创建一个pro视图
SELECT * FROM pro;//从视图中查询数据
SHOW CREATE VIEW viewname;//查看创建视图的语句
DROP VIEW viewname;//删除视图
//更新视图时,可以先用DROP再用CREATE,也可用CREATE OR REPLACE VIEW
视图中的数据在某些条件下是可更新的(INSERT
UPDATE
DELETE
)
MySQL不能正确的确定被更新的基数据
,则不允许更新:
- 分组(
GROUP BY
或者HAVING
) - 联结
- 子查询
- 并
- 聚集函数(
Min()
,Count()
,Sum()
等) DISTINCT
- 导出(计算)列
存储过程
- 创建存储过程
CREATE PROCEDURE pro()
BEGIN
SELECT AVG( price) AS average_p
FROM ticketinfo;
END;
在命令行中需要修改语句分隔符;
DELIMITER //
CREATE PROCEDURE pro()
BEGIN
SELECT AVG( price) AS average_p
FROM ticketinfo;
END //
DELIMITER ;
创建有参数的存储过程
(
OUT 变量名 参数类型,//存储过程往外输出
IN 变量名 参数类型,//往存储过程内输入
INOUT 变量名 参数类型 //输入和输出
)
- 调用存储过程
CALL pro();//有参数要加上参数在()中 (@param,@param2)
//右参宿的调用时
CALL pro(@param1,@param2);
SELECT @param1,@param2;
- 删除存储过程
DROP PROCEDURE 名称;
游标
MySQL
中游标只能使用在存储过程或函数中
- 创建游标
DECLARE 游标名 CURSOR
FOR
查询语句;
- 打开或关闭游标
OPEN 游标名;
CLOSE 游标名;
- 使用游标数据
FETCH 游标名 INTO 变量;