mysql视图和存储过程

news2025/1/19 8:08:48

视图


视图就是将一条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)
BEGIN
    DECLARE 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 )
BEGIN
 IF 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)
BEGIN
  CASE
    WHEN t_day = 1
    THEN
    SELECT
      "星期一";
    WHEN t_day = 2
    THEN
    SELECT
      "星期二";
  END CASE;
END $$
        
-- 调用存储过程
 CALL test3(1);       
        
        
        
        
-- 循环
DELIMITER $$
​
CREATE PROCEDURE `gradedb`.test4 () 
BEGIN
DECLARE v_num INT DEFAULT 0;
-- 循环开始 
 addnum :LOOP
  SET v_num = v_num + 1;
  IF v_num = 10
  THEN LEAVE addnum;
  END IF;
END LOOP;
-- 循环结束 
SELECT
  v_num;
END $$
-- 调用存储过程
CALL test4()

举例:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/386921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ATTCK v10版本战术实战研究—持久化(一)

一、前言“在网络安全的世界里,白帽子与黑帽子之间无时无刻都在进行着正与邪的对抗,似乎永无休止。正所谓,道高一尺魔高一丈,巨大的利益驱使着个人或组织利用技术进行不法行为,花样层出不穷,令人防不胜防。…

udk2017环境搭建编译步骤

win10 64bit系统 1.参考minnowboard-max-rel-1-01-bin-releasenotes-for-binary-firmware-images.TXT MyWorkspace.rar 解压到c:\,参考txt中的git操作 3.复制ASL,NASM 到c:\ 安装vs2015 ,勾选sdk 5.安装 python-2.7.10.amd64.msi&#xf…

【论文泛读】NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis | NeRF: 用于视图合成的神经辐射场的场景表示 | 2020年 出自文献:Mildenhall B, Srinivasan P P, Tancik M, et al. Nerf: Representing scenes as neural radiance fields for view synth…

泼辣修图Polarr5.11.4 版,让你的创意无限延伸

泼辣修图是一款非常实用的图片处理软件,它不仅拥有丰富的图片处理功能,而且还能够轻松地实现自定义操作。泼辣修图的操作界面非常简洁,功能也非常丰富,使用起来非常方便快捷。 泼辣修图拥有非常丰富的图片处理功能,包括…

【冲刺蓝桥杯的最后30天】day1

大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨‍💻,断更了整整一年,又开始恢复CSDN更新,从今天开始逐渐恢复更新状态,正在备战蓝桥杯的小伙伴可以支持一下哦!…

Rockchip Android13 GKI开发指南

Rockchip Android13 GKI开发指南 文章目录Rockchip Android13 GKI开发指南GKI介绍Google upstream kernel下载及编译Rockchip SDK中GKI相关目录介绍Rockchip GKI编译代码修改编译固件烧写KO编译及修改添加新的模块驱动的方法调试ko方法开机log确认uboot阶段Android阶段KO加载KO…

Java IO流详解

文章目录一、File1.1 构造方法1.2 文件操作 方法1.3 目录操作 方法1.4 文件检测 方法1.5 获取文件信息 方法1.6 应用练习二、IO 流2.1 InputStream 字节输入流 (读)🍓FileInputStream🍓BufferedInputStream2.2 OutputStream 字节输出流 (写)&#x1f34c…

【Redis】redis大key和大value的危害,如何处理?

前序 还记得上次和同事一起去面试候选人时,同事提了一个问题:Redis的大key有什么危害?当时候选人主要作答的角度是一个key的value较大时的情况,比如: 内存不均:单value较大时,可能会导致节点之…

[经验分享]gpt-3.5-Turbo|unity中实现http接口调用gpt新接口以及信息处理的实现案例分享

最近openAI发布了目前chatGPT所使用的模型gpt-3.5-Turbo,之前使用了text-davinci-003模型做了一个galgame的AI女友对话的demo。这次趁着新接口的发布,对这个demo也同步更新了模型调用的代码。本篇文章将分享一下,如何在unity里使用UnityWebRe…

记录一次PWM信号异常问题

问题我使用单片机输出PWM控制机械臂,但是控制过程中,机械臂总是会出现莫名的抽动。利用示波器测试PWM信号,发现信号正常。过程(1)在反复的测试过程中,队友提出,将示波器的地线放在左侧的GND波形…

计算机EI会议论文,和EI期刊论文有什么区别? - 易智编译EaseEditing

EI期刊论文,是期刊论文的一种。顾名思义,就是指发在期刊上的论文。 期刊论文发表的格式需要具体参考各期刊文章的要求学术论文格式,主要会发在月刊/季刊/年刊/不定期的刊上。 目前,国际著名的科技文献检索系统是SCI(…

安卓-AndroidManifest.xml修复

解析编译之后的AndroidManifest文件格式:http://www.520monkey.com/archives/575 案例apk jadx打开发现AndroidManifest.xml异常,无法正常显示 那么我们用apktool反编译试试 apktool d APK逆向-2.apk -f可以看到报错了,显示不能解析此xml…

[SSD科普] 固态硬盘物理接口SATA、M.2、PCIe常见疑问,如何选择?

前言犹记得当年Windows 7系统体验指数中,那5.9分磁盘分数,在其余四项的7.9分面前,似乎已经告诉我们机械硬盘注定被时代淘汰。势如破竹的SSD固态硬盘,彻底打破了温彻斯特结构的机械硬盘多年来在电脑硬件领域的统治。SSD数倍于HDD机…

数据结构 “串“ 的补充提升与KMP算法及其优化的具体实现

❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 ✨精品专栏:C面向对象 🔥系列专栏:数据结构与课程设计 文章目录…

XSS漏洞基本概念

目录 XSS的原理和分类 XSS漏洞分类 dom 存储型 XSS的危害 XSS漏洞的验证 XSS的黑盒测试 XSS漏洞的白盒测试 XSS的原理和分类 xss全称跨站脚本攻击xss(Cross Site Scripting) 为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆&am…

MCU实现对外部脉冲信号的计数功能

有的传感器会输出脉冲信号,MCU需要统计脉冲输入的个数,通常有如下实现方式: 1.GPIO中断 原理很简单,利用GPIO的上升沿或者下降沿中断,进中断的次数就是脉冲的个数。只需要在中断服务函数里计数即可。 使用GPIO中断需…

Streaming System是第一章翻译

GIthub链接,欢迎志同道合的小伙伴一起翻译 Chapter 1.Streaming101 如今,流数据处理在大数据中是非常重要的,其主要原因是: 企业渴望对他们的数据有更及时的了解,而转换到流处理是实现更低延迟的一个好方法&#xf…

使用vite+vue3.0 创建一个cesium基础应用 ----01 项目搭建

使用vitevue3.0 创建一个cesium基础应用 ----01 项目搭建 1.使用yarn创建一个vite项目 我们可以在vite官网找到vite创建项目的命令 https://cn.vitejs.dev/ 可以使用yarn创建项目选择使用vue3.0框架,语言使用js 创建完成后结构如下: 2.找到vite社区中的…

idea通过Dockerfile上传项目到服务器

Docker通过Dockerfile上传项目 文章目录Docker通过Dockerfile上传项目1.创建一个简单的springBoot项目2.写一个简单的接口3.写Dockerfile文件4.新建docker镜像5.上传代码运行1.创建一个简单的springBoot项目 点击文件–>新建–>项目 点击选择Spring Initializer &#x…

火山引擎 DataTester:A/B 实验如何实现人群智能化定向?

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 在精细化运营时代,用户需求和业务场景愈加多元,在产品功能迭代以及各类活动中,面向不同人群的兴趣点,有针对性地“精…