视图:VIEW
-
概念
① 虚拟表,本身不存储数据,可以看做是存储起来的SELECT语句
② 视图中SELECT语句中涉及到的表,称为基表
③ 针对视图做DML操作,对影响到基表中的数据,反之亦然
④ 创建、删除视图本身,不会影响到基表 -
创建视图
CREATE VIEW view_emp_avg_salary(dept_id, avg_salary) AS SELECT department_id, AVG(salary) FROM employees WHERE department_id IS NOT NULL GROUP BY department_id; -
查看视图:
DESC 视图名; -
修改视图
# 方式一 CREATE OR REPLACE VIEW 视图名 AS SELECT ... #方式二 ALTER VIEW 视图名 AS SELECT ... -
删除视图
DROP VIEW 视图名;
索引:INDEX
用于提高查询性能
存储过程:PROCEDURE
用于完成一次完整的业务处理,没有返回值,但可以通过传出参数将多个值传给调用者
- 创建
① 无参数无返回值
② 无参数有返回值:# 查询所有员工信息 DELIMITER $ CREATE PROCEDURE select_all_emp() BEGIN SELECT * FROM employees; END $ DELIMITER; # 调用 CALL select_all_emp();OUT
③ 有参数无返回值:# 查询员工中的最低工资,并将最低工资输出到ms DELIMITER $ CREATE PROCEDURE select_min_sal(OUT ms DECIMAL) BEGIN SELECT MIN(salary) INTO ms FROM employees; END $ DELIMITER; # 调用 CALL select_min_sal(@ms); # 查看参数结果 SELECT @ms;IN
④ 有参数有返回值:# 查询指定姓名的员工工资 DELIMITER $ CREATE PROCEDURE show_salary_by_lastname(IN lastName VARCHAR(50)) BEGIN SELECT salary FROM employees WHERE last_name = lastName; END $ DEIMITER; # 调用 CALL show_salary_by_lastname('Popp');IN、OUT
⑤ 有参数有返回值:# 查询指定姓名的员工工资和部门,并从参数中返回出来 DELIMITER $ CREATE PROCEDURE show_salary_by_lastname2(IN lastName VARCHAR(50), OUT sal DECIMAL, OUT dept_id INT) BEGIN SELECT salary,department_id INTO sal, dept_id FROM employees WHERE last_name = lastName; END $ DELIMITER; # 调用 CALL show_salary_by_lastname2('Popp', @sal, @deptId); # 查询结果 SELECT @sal, @deptId;INOUT# 查询指定员工的领导姓名,并从参数中返回出来 DELIMITER $ CREATE PROCEDURE show_manager_by_lastname(INOUT lastName VARCHAR(50)) BEGIN SELECT m.last_name INTO lastName FROM employees e JOIN employees m

最低0.47元/天 解锁文章
2130

被折叠的 条评论
为什么被折叠?



