当前位置: 首页 > news >正文

mysql视图和存储过程

视图


视图就是将一条sql查询语句封装起来,之后使用sql时,只需要查询视图即可,查询视图时会将这条sql语句再次执行一遍。视图不保存数据,数据还是在表中。

SELECT 语句所查询的表称为视图的基表,而查询的结果集称为虚拟表,视图本身并不存储具体的数据,视图的数据存在于视图的基表中,基本表数据发生了改变,视图的数据也会跟着改变,因为查询语句时不变的,使用视图时会将sql语句再调用一次

-- 定义视图:
create view 视图名 as  查询语句(select 列1,列2...from 表)
-- 使用视图
select * from 视图名
-- 删除视图
drop view 视图名

存储过程


存储过程是什么?

如果实现用户的某些需求时,需要编写一组复杂的 SQL 语句才能实现,那么可以将这组复杂的 SQL 语句集编写在数据库中,由 JDBC 调用来执行这组 SQL语句。把编写在数据库中的 SQL 语句集称为存储过程。

存储过程也就是将逻辑处理的过程是放在数据库中,而不放在java后端代码中,就类似于java语言中的方法,需要先定义,使用时调用。将一些逻辑处理的代码可以事先存储在数据库中,然后使用时直接调用即可。可以减少应用程序与数据库之间的交互次数。

语法格式

存储过程事先需要创建好(包含逻辑),存储过程中可以传入参数。参数分为3种,in(输入参数) out(输出参数) inout(即可以输入还可以输出):

create procedure 存储过程名([in 变量名 类型,out 参数 2,…])

begin

[declare 变量名 类型 [DEFAULT 值];]

存储过程语句块;

end;

CREATE VIEW test ASSELECT * FROM admin;  -- 创建视图
SELECT * FROM test   -- 使用视图
DROP VIEW test       -- 删除视图
​
​
​
​
-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE `gradedb`.`test1`(IN namess INT)
BEGINDECLARE a INT DEFAULT 0;SELECT  a;SET namess=10;SELECT  namess;END$$
DELIMITER ;
​
​
-- 调用存储过程
CALL test1(1);
​
​
-- 流程控制语句
DELIMITER $$
CREATE PROCEDURE `gradedb`.test2(IN t_day INT )
BEGINIF t_day=1 THEN SELECT"星期一";ELSEIF t_day =2 THEN SELECT"星期二";ELSE SELECT"无效日期";END IF;
END$$
DELIMITER ;
​
-- 调用存储过程
CALL test2(2);
​
​
-- case when
DELIMITER $$
​
CREATE PROCEDURE `gradedb`.test3 (IN t_day INT)
BEGINCASEWHEN t_day = 1THENSELECT"星期一";WHEN t_day = 2THENSELECT"星期二";END CASE;
END $$-- 调用存储过程CALL test3(1);       -- 循环
DELIMITER $$
​
CREATE PROCEDURE `gradedb`.test4 () 
BEGIN
DECLARE v_num INT DEFAULT 0;
-- 循环开始 addnum :LOOPSET v_num = v_num + 1;IF v_num = 10THEN LEAVE addnum;END IF;
END LOOP;
-- 循环结束 
SELECTv_num;
END $$
-- 调用存储过程
CALL test4()

举例:

创建存储过程,完成一个逻辑实现

http://www.lryc.cn/news/28227.html

相关文章:

  • uniapp 实现人脸认证
  • 自学大数据第三天~终于轮到hadoop了
  • Unity 入门精要00---Unity提供的基础变量和宏以及一些基础知识
  • Kubernetes的网络架构及其安全风险
  • Blob分析+特征+(差分)
  • Flink 提交模式
  • 网络总结知识点(网络工程师必备)三
  • 测开:前端基础-css
  • Java学习记录之JDBC
  • 矩阵翻硬币
  • 【C语言跬步】——指针数组和数组指针(指针进阶)
  • 第十四届蓝桥杯模拟赛第三期(Python)
  • css-盒模型
  • Linux | 调试器GDB的详细教程【纯命令行调试】
  • wifi芯片大市场和个人小生活
  • 全国计算机技术与软件专业技术资格(水平)考试 上半年2023年3月13日开始,下半年2023年8月14日开始
  • 大数据框架之Hadoop:MapReduce(六)Hadoop企业优化
  • Spring File Storage的详细文档
  • Java软件开发好学吗?学完好找工作吗?
  • 【独家C】华为OD机试提供C语言题解 - 优秀学员统计
  • 数据仓库、数据中台、数据湖都是什么?
  • 0099 MySQL02
  • 应急响应-ubuntu系统cpu飙高
  • MDK软件使用技巧
  • 3 333333
  • 1528. 重新排列字符串
  • 【8】【用户操作日志】操作日志SpringBootStarter
  • 【游戏逆向】寻路函数隐藏检测点分析
  • 【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法
  • 这款 Python 工具进行数据分析及数据可视化真的很棒啊