MySQL之视图,存储

复制代码
1.
CREATE VIEW v_emp_dept_id_1 AS
SELECT e.emp_name, e.address
FROM emp e
JOIN dept d ON e.dept_id = d.dept_id
WHERE e.dept_id = 1;
复制代码
2.
CREATE VIEW v_emp_dept AS
SELECT e.emp_name, e.address, d.dept_name
FROM emp  e 
JOIN dept d ON e.dept_id = d.dept_id
WHERE e.dept_id = 1;
复制代码
3.
CREATE VIEW v_dept_emp_count AS
SELECT d.dept_name, COUNT(e.emp_id) AS emp_count, AVG(e.salary) AS avg_salary
FROM dept d
LEFT JOIN emp e ON d.dept_id = e.dept_id
GROUP BY d.dept_id;
复制代码
4.
ALTER VIEW v_emp_dept AS 
SELECT e.emp_name, e.address,d.dept_name,e.salary
FROM emp e  
JOIN dept d ON e.dept_id = d.dept_id
WHERE e.dept_id = 1;
复制代码
5.
SHOW TABLES LIKE 'v_emp_dept_id_1';
SHOW TABLES LIKE 'v_emp_dept';
SHOW TABLES LIKE 'v_dept_emp_count';
复制代码
6.
SHOW CREATE VIEW v_emp_dept_id_1;
SHOW CREATE VIEW v_emp_dept;
SHOW CREATE VIEW v_dept_emp_count;
复制代码
7.
DROP VIEW IF EXISTS v_emp_dept_id_1;
DROP VIEW IF EXISTS v_emp_dept;
DROP VIEW IF EXISTS v_dept_emp_count;


DELIMITER //
CREATE PROCEDURE s1()
BEGIN
  SELECT SUM(salary) as total_salary FROM emp;
END; //
DELIMITER ;
复制代码
CALL s1();

DELIMITER //
CREATE PROCEDURE s2(IN emp_name_param VARCHAR(255))
BEGIN
  SELECT address FROM emp WHERE emp_name = emp_name_param;
END; //
DELIMITER ;
复制代码
CALL s2('张晓红');

DELIMITER //
CREATE PROCEDURE avg_sai(IN dept_id_param INT, IN gender_param CHAR(1), OUT avg_salary_param DECIMAL(10, 2))
BEGIN
  SELECT AVG(salary) INTO avg_salary_param FROM your_employee_table
  WHERE dept_id = dept_id_param AND gender = gender_param;
END; //
DELIMITER ;
复制代码
DECLARE @avg_salary DECIMAL(10, 2);
CALL avg_sai(1, '男', @avg_salary);
SELECT @avg_salary;

DROP PROCEDURE IF EXISTS s1;
DROP PROCEDURE IF EXISTS s2;
DROP PROCEDURE IF EXISTS avg_sai;
相关推荐
新法国菜4 分钟前
MySql知识梳理之DDL语句
数据库·mysql
DarkAthena1 小时前
【GaussDB】全密态等值查询功能测试及全密态技术介绍
数据库·gaussdb
ShawnLeiLei1 小时前
2.3 Flink的核心概念解析
数据库·python·flink
石皮幼鸟2 小时前
数据完整性在所有场景下都很重要吗?
数据库·后端
大只鹅3 小时前
Centos7.9 Docker26容器化部署 MySql9.4 一主一从的同步复制部署
mysql·centos
叁沐3 小时前
MySQL 28 读写分离有哪些坑?
mysql
nightunderblackcat4 小时前
新手向:异步编程入门asyncio最佳实践
前端·数据库·python
DarkAthena4 小时前
【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
数据库·mysql·gaussdb
livemetee4 小时前
Flink2.0学习笔记:使用HikariCP 自定义sink实现数据库连接池化
大数据·数据库·笔记·学习·flink
XXD啊4 小时前
Redis 从入门到实践:Python操作指南与核心概念解析
数据库·redis·python