首页 > 数据库 >MYSQL--存储过程和视图笔记

MYSQL--存储过程和视图笔记

时间:2023-05-10 20:12:12浏览次数:47  
标签:-- CREATE 视图 MYSQL VIEW employees SELECT view

# 存储过程:一组经过预先编译的SQL语句的封装
# 视图主要针对的是查询操作,存储过程可以是更为复杂的SQL语句,比如增删改
# 存储过程没有返回值。

# 存储过程的参数类型可以是IN、OUT和NOUT,可以分为:
# 1、没有参数(无参数无返回)
# 2、仅仅带IN类型(有参数无返回)
# 3、仅仅带OUT类型(无参数有返回)
# 4、既带IN又带OUT(有参数有返回值)
# 5、有INOUT(有参数有返回值)

# 设置新的结束标记
# DELIMITER 新的结束标记
DELIMITER $
SELECT * FROM demo.employees$
DELIMITER ;

# 存储过程:
# DELIMITER 新的结束标记
# CREATE PROCEDURE 存储过程名(IN\OUT\INOUT 参数名 参数类型 ...)
# BEGIN
# 存储过程体
# END 新的标识符
# DELIMITER ;

# 存储过程的调用
# CALL 存储过程名();
USE demo1;
SELECT DATABASE() FROM dual;

# 查看所有员工信息
DELIMITER $
CREATE PROCEDURE select_all()
BEGIN
SELECT * FROM demo1.employees;
END $
DELIMITER ;-- 这个软件不行,运行报错,这个是对的

CALL select_all();

# 查看员工的平均工资
DELIMITER $
CREATE PROCEDURE select_salary_avg()
BEGIN
SELECT AVG(salary) AS "平均月工资" FROM employees;
END $
DELIMITER ;

CALL select_salary_avg();

# 用上OUT
DELIMITER $
CREATE PROCEDURE

 

 

 

# 视图:一个或多个数据表里的数据的逻辑显示,视图并不存储数据,虚表。

# 视图是建立在已有表的基础上,视图赖以建立的这些表叫做基表。
# 可以理解为存储起来的SELECT语句,简化查询,控制视图的访问

# 对视图的创建和删除不会影响基表。

# 创建视图CREATE VIEW
# CREATE VIEW 视图名称 AS 查询语句
# 查询语句中的别名会作为视图的列名
# 如果想在视图起别名,可以在视图名称(别名1,别名2....),注意一一对应,不用加单引号
CREATE TABLE IF NOT EXISTS demo1.employees AS
SELECT * FROM demo.employees;
SELECT * FROM demo1.employees;
CREATE VIEW view_employees(名字,性别,月工资) AS SELECT name,sex,salary FROM demo.employees;
CREATE VIEW view_employees AS SELECT name,sex,salary FROM demo.employees;
# 查看具体的一个视图
# SELECT 列名 FROM 视图名;
SELECT * FROM view_employees;
# 基于视图来创建视图
# CREATE VIEW 视图名称 AS SELECT 列名... FROM 视图名称;
CREATE VIEW view_employees_copy AS SELECT * FROM demo.view_employees;
SELECT * FROM demo.view_employees_copy;

# 查看数据库下的视图
# 1、查看数据库下的表对象、视图对象
# SHOW TABLES;
# 2、查看具体视图的结构
# DESC/DESCRIBE 视图名称;
DESC view_employees;
# 3、查看视图的属性信息
# SHOW TABLE STATUS LIKE '视图名称';
SHOW TABLE STATUS LIKE 'view_employees';
# 4、查看视图的详细定义信息
# SHOW CREATE VIEW 视图名称;
SHOW CREATE VIEW view_employees;


# 对视图的更新
# UPDATE 视图名称 SET 列名 = 更改的数据 WHERE 过滤条件;
SELECT * FROM demo.view_employees_copy;
SELECT * FROM demo.employees;
UPDATE demo.view_employees_copy SET 月工资 = 12000 WHERE 名字 = '斯蒂芬.库里';
UPDATE demo.employees SET salary = 10000 WHERE name = '斯蒂芬.库里';
# 注意:基于一些多行函数,年工资(如AVG,SUM这种)得到的视图,对这个列进行修改,会报错误!
# 对视图的更新和删除是和基表有一对一关系才能运行。视图一般用于查询操作

# 对视图中数据的删除
# DELETE FROM 视图名称 WHERE 过滤条件;

# 删除整个视图
# DROP VIEW IF EXISTS 视图名称1,视图名称2;
SHOW TABLES;
DROP VIEW IF EXISTS view_employess;
# 如果删除了基于视图1创建的视图2,那么视图1也不能用了

标签:--,CREATE,视图,MYSQL,VIEW,employees,SELECT,view
From: https://www.cnblogs.com/kkk0425/p/17389201.html

相关文章

  • 20230510-20230517
    _今天和老万谈了很久啊。真的,或许我已经做出选择了。或许真的很艰难。或许吧。放弃很难,但坚持更难。归于平凡,归于平淡。我到底是什么样的人呢,要做出什么样的选择。“纯粹的享受这段时光”“每分每秒都是开心的”一时间还不知道跟谁宣布。真的。也不知道怎么面对大家......
  • 主席树
    可持久化线段树值域线段树设线段树节点\(i\)管辖区间\([l,r]\),\(i\)的\(val\)表示$l\ge$且$\ler$的数的个数那么\(i.l\)表示$l\ge$且$\lemid$的数的个数,\(i.r\)表示$mid+1\ge$且$\ler$的数的个数如果建\(n\)棵值域线段树,第\(i\)棵......
  • P1676 [USACO05FEB] Aggressive cows G 题解
    题目传送门解题思路最大值最小化问题,考虑二分答案。首先要排序,保证序列单调不降,然后求出两个隔间之间的距离。sort(a+1,a+1+n);for(rii=1;i<=n;i++) dis[i]=a[i+1]-a[i];二分出一个\(mid\),判断它是否合法:每次累加距离,如果距离和比\(mid\)大,说明当前可以分配牛,记录数量......
  • 一位27岁软件测试员,测试在职近5年,月薪不到2W,担心被应届生取代
    工作了近5年,一个月工资不到20K,担心被应届毕业生取代!互联网的快速发展伴随着员工适者生存的加速,测试员的薪资也在不断增长,以3年、5年、8年+为一条分水岭。如果人们的能力和体力不够,他们就会被淘汰。看起来生动的工作生活却让许多人焦虑不安。最近,一名来自211本科的测试工程师在脉......
  • 03人月神话阅读笔记
    《人月神话》还谈到了软件项目开发中的技术挑战和管理挑战。在技术层面,作者关注了软件开发中的设计过程和测试过程,提出了许多技巧和工具,以促进软件开发的质量和效率。在管理层面,作者讨论了如何管理开发和测试过程,以及如何管理软件的开发周期。在这个过程中,作者强调了测试的重要性,......
  • 字典树与搜索进阶
    2023.4.7Vergil回归!本次Vergil讲了很多很有意思的东西,今天我们来总结一下~字典树-Trie顾名思义,一种像字典一样的树,用于应对字符串问题。树的每一条边都代表一个字母,从根节点到任何一点的一条简单路径就代表了一个字符串。举个例子,从\(1\)到\(13\)的简单路径就对应......
  • ffmpeg合并视频
    先下载个ffmpeg命令行:ffmpeg-fconcat-ifilelist.txt-ccopyout\new.mp4filelis.txt与ffmpeg.exe同一目录, 内容如下:file'F:\Download\【日剧_11集全】\1.EP01-1_Av438702220_P1_.mp4'file'F:\Download\【日剧_11集全】\2.EP01-2_Av438702220_P2_.mp4'file�......
  • BGP-capability dynamic
     setprotocolsbgp<asn>neighbor<address|interface>address-family<ipv4-unicast|ipv6-unicast>soft-reconfigurationinboundChangesinBGPpoliciesrequiretheBGPsessiontobecleared.Clearinghasalargenegativeimpactonnetwork......
  • 拓扑排序 - TopoSort
    拓扑排序-TopoSort前言wcy终于考上了心仪的大学,开启了精彩的大学生活!然而光是选课这一件事就把他难住了,因为一些课程包含先修课程:课程编号课程名称先修课程C1高等数学无C2程序设计基础无C3离散数学C1,C2C4数据结构C2,C3C5算法语言C2C6......
  • 学习了 python的数据爬取以及数据的可视化。
     Python中国大学排名数据分析与可视化;【源代码程序】importrequestsfrombs4importBeautifulSoupasbsimportpandasaspdfrommatplotlibimportpyplotaspltdefget_rank(url):   count=0   rank=[]   headers={       "user-agen......