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

5 - 视图|存储过程

视图|存储过程

  • 视图
    • 视图基本使用
    • 使用视图
    • 视图进阶
  • 存储过程
    • 创建存储过程
    • 存储过程进阶
    • 存储过程参数
    • 循环结构

视图

视图是虚拟存在的表 表头下的数据在真表里 表头下的数据存储在创建视图时 在select命令访问的真表里
优点:

  • 安全
  • 数据独立
  • 简单 用户无需关心数据内部

视图基本使用

create view v1 as select name from tarena.user

在这里插入图片描述
除了视图,每个表都会存在两个文件
在这里插入图片描述
查看所有表的状态

show table status ; 

在这里插入图片描述
查看创建视图具体select命令

show create view 视图名;

在这里插入图片描述

使用视图

  • insert
insert into tarena.v11 vlaues ("xxx",2002);
  • delete
delete from tarena.v11 where name in ("xxx","yyy")
  • update
# 物理表 会跟着变
update tarena.v11 set uid=1001 where name='root'

视图进阶

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以通过视图修改数据限制 限制方式如下:

  • with check option
    • local 首先满足自身的限制,同时满足基表的限制
      local
mysql> create view v31 as select name , uid from tarena.user where uid <= 100;
mysql> create view v45 as select name,uid from v31 where uid>=10 with local check option;
mysql> update v45 set uid=800 where name="ftp"
# 虽然超出基表v31限制,但是还是改成了 因为基表没有加限制
# 修改视图v31 加修改限制
mysql> create or REPLACE view v31 as select name,uid from tarena.user where uid <= 100 with check option;
mysql> update v45 set uid=6 where name="sshd"; 没有满足自身限制
mysql> update v45 set uid=600 where name="sshd"; 没有满足基表v31的限制
  • cascaded 满足视图自身限制即可(默认值)
mysql> create view  v21 as > select name,uid from tarena.user where uid>10> with check option# 此时的限制条件是uid>10  如果改小于10 会失败
mysql> update v21 set uid=9 where name='root'; # 会失败

存储过程

存储过程就是mysql服务里的脚本。mysql存储过程 是登陆mysql服务之后编写的脚本 是由一条或多条sql命令组成,存放在mysql库下的表里。避免重复的sql操作。

写好的存储过程 会存放在mysql库下的proc表里

创建存储过程

命令行结束符 修改为//
delimiter //
---
create procedure 库名.存储过程名(列表参数)
begin一组合法的sql命令
end 
//
--
delimiter ;

在这里插入图片描述
查看已创建的存储过程

select db,name,type,body from mysql.proc where type="procedure"

执行存储过程

call 库名.存储过程名  创建的存储过程没有参数
call 库名.存储过程名(参数) 

删除存储过程

drop procedure 库.存储过程名; 不加括号 无论有无参数

存储过程进阶

在这里插入图片描述
在这里插入图片描述
用户自定义变量

  • 用户变量
    在这里插入图片描述

  • 局部变量:begin/end语句块中
    在这里插入图片描述

存储过程参数

调用参数时,名称前也不需要@
create procedure 名称(类型 变量名 数据类型 , 类型 变量名 数据类型,…)
在这里插入图片描述

delimiter //
create procedure tarena.p3()
begin
select name from tarena.user where name="ftp";
end //
delimiter ;
delimiter //
create procedure tarena.p4(in dept_no int)
begin
select dept_id,count(name) from employees where dept_id=dept_no
group by dept_id
end //
delimiter;## 调用
call tarena.p4(3)
  • out参数的作用

delimiter //
create procedure tarena.p5(in emp_name varchar(10),out mail varchar)
begin
select email into mail from employees where name=emp_name;
end //
delimiter ;# 调用
call tarena.p5("bob",@x)
  • inout参数
    既有in参数的功能 又有out参数的功能
delimiter //
create procedure tarena.myadd(inout i int)
begin
set i=i+100;
end //
delimiter ;
set @x = 8
set @y = 101
call tarena.myadd(@x);
call tarena.myadd(@y);
select @x,@y

循环结构

  • if
    格式一:
IF 条件 THEN语句;
END IF;

格式二:

IF 条件 THEN语句1;
ELSEIF 条件2 THEN语句2;
ELSE语句3;
END IF;

解决乱码问题:

alter database tarena default character set utf8;
# 查看库使用的字符集
show create detabase tarena \G
show create table tarena.departments \G
# 修改完重新创建存储过程 就好使了

在这里插入图片描述

  • case
    语法格式
CASE 变量|表达式|字段
WHEN 判断的值1 THEN 返回值1;
WHEN 判断的值2 THEN 返回值2;
... ...
ELSE 返回值n;
END CASE;

案例

delimiter //
create procedure tarena.deptype_pro2(IN no int ,OUT dept_type varchar(5))
begin
declare type varchar(5);
select dept_name into type from departments where dept_id=no;
case type
when '运维部' then set dept_type='技术部';
else set dept_type='非技术部';
end case;
end //
delimiter ;
# @使用自定义变量接受out参数的值
call tarena.deptype_pro(1,@t);
# 查看自定义变量@t的值
select @t;
  • 循环语法
标签名:WHILE 循环条件 DO循环体;
END WHILE 标签名
# loop循环 只要不人为结束 就一直执行下去
LOOP循环体;
END LOOP
# repeat 循环:至少循环一次
repeat循环体;
UNTILE 循环结束条件
end repeat

循环结构控制语句:在循环条件满足的情况下,控制循环的执行

  • break 结束循环
  • ITERATE 相当于continue 结束当前循环并开始下次循环
    注意:要给循环加标签 (就是给循环起一个名字)才能使用
    案例:
delimiter //
create procedure tarena.while_pro(IN i int)
begin
declare j int default 1;
while j < i doinsert into tarena.departments(dept_name) values("hr");set j=j+1;
end while;
end //
delimiter ;
# 调用
mysql > call tarena.while_pro(3);

show processlist 相当于 ps -aux
在这里插入图片描述
案例

delimiter //
create procedure tarena.while_pro3(IN i int)
begindeclare j int default 0;a:while j<i doset j=j+1;if mod(j,2)=0 then iterate a;end if ;insert into tarena.departments(dept_name) value(concat('hr',i))end while a;
end //
delimiter ;
# 调用
call tarena.while_pro3(10);
select * from tarena.departments;

相关文章:

5 - 视图|存储过程

视图&#xff5c;存储过程 视图视图基本使用使用视图视图进阶 存储过程创建存储过程存储过程进阶存储过程参数循环结构 视图 视图是虚拟存在的表 表头下的数据在真表里 表头下的数据存储在创建视图时 在select命令访问的真表里 优点&#xff1a; 安全数据独立简单 用户无需关…...

系统学习Python——警告信息的控制模块warnings:警告过滤器-[基础知识]

分类目录&#xff1a;《系统学习Python》总目录 警告过滤器控制着警告是否被忽略、显示或转为错误&#xff08;触发异常&#xff09;。 从概念上讲&#xff0c;警告过滤器维护着一个经过排序的过滤器类别列表&#xff1b;任何具体的警告都会依次与列表中的每种过滤器进行匹配&…...

vue中高德地图使用

1、安装 npm i amap/amap-jsapi-loader --save2、封装地图组件 <template><div id"map" ref"mapcontainer"></div> </template><script> import AMapLoader from "amap/amap-jsapi-loader"; export default {befo…...

算法训练营Day33

#Java #贪心 开源学习资料 Feeling and experiences&#xff1a; 单调递增的数字&#xff1a;力扣题目链接 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&am…...

.net6解除文件上传限制。Multipart body length limit 16384 exceeded

在C#中上传文件时如果不修改默认文件的上传大小会提示Multipart body length limit 16384 exceeded这个错误提示表明你的请求中的Multipart body长度超过了16384字节的限制。这通常意味着你正在尝试发送一个太大的请求体&#xff0c;可能是因为包含了太多数据或者太大的文件。要…...

电子电器架构网络演化 —— 车载以太网TSN

电子电器架构网络演化 —— 车载以太网TSN 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消…...

智能门锁触控工作原理中应用的电容式触摸芯片

智能门锁的识别技术中&#xff0c;密码几乎成为标配功能。相比机械按键的触控方式&#xff0c;电容式触控方式可以在加上一层玻璃甚至金属一体成型之后与用户进行交互&#xff0c;由于进行了物理性隔离&#xff0c;使得外壳更具完整性&#xff0c;物理上安全性更佳。电容式触控…...

Spark 中 BroadCast 导致的内存溢出(SparkFatalException)

背景 本文基于 Spark 3.1.1 open-jdk-1.8.0.352目前在排查 Spark 任务的时候&#xff0c;遇到了一个很奇怪的问题&#xff0c;在此记录一下。 现象描述 一个 Spark Application, Driver端的内存为 5GB,一直以来都是能正常调度运行&#xff0c;突然有一天&#xff0c;报…...

深度学习经典算法详细模型图

很早绘制的一些模型图&#xff0c;当时放在CSDN的草稿里&#xff0c;今天发现了&#xff0c;把它分享出来吧&#xff0c;还能更清晰的帮助理解&#xff01; 1.AlexNet(2012) 2. VGGNet(2014) 3. SqueezeNet(2016) 4. GoogleNet(2014)...

03、Kafka ------ CMAK(Kafka 图形界面管理工具) 下载、安装、启动

目录 CMAK&#xff08;Kafka 图形界面管理工具&#xff09;下载安装启动打开 cmak 图形界面 CMAK&#xff08;Kafka 图形界面管理工具&#xff09; Kafka本身并没有提供Web管理工具&#xff0c;而是推荐使用bin目录下各种工具命令来管理Kafka&#xff0c; 这些工具命令其实用起…...

复习python从入门到实践——函数function

复习python从入门到实践——函数function 函数是特别难的&#xff0c;大家一定要好好学、好好复习、反复巩固。函数没学好&#xff0c;会为后面造成很大困扰。 教科书中函数举例会稍微有点复杂。在此章复习中&#xff0c;我将整理出容易疏漏和混淆的知识点&#xff0c;并用最简…...

【Internal Server Error】pycharm解决关闭flask端口依然占用问题

Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. 起因&#xff1a; 我们在运行flask后&#xff0c;断开服务依然保持运行&#xff0…...

torch.nn.functional.interpolate与torchvision.transforms.Resize方法对张量图像Resize应用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、非张量数据使用torch方法resize(transforms.Resize)二、张量数据使用torch方法resize(torch.nn.functional.interpolate) 前言 要使用 PyTorch 对张量进行…...

【Spring】Spring的事务管理

前言&#xff1a; package com.aqiuo.service.impl;import com.aqiuo.dao.AccountMapper; import com.aqiuo.pojo.Account; import com.aqiuo.service.AccountService; import org.springframework.jdbc.core.JdbcTemplate;import java.sql.Connection; import java.sql.SQLEx…...

配置cendos 安装docker 配置阿里云国内加速

由于我安装的cendos是镜像版。已经被配置好了。所以只需要更新相关配置信息即可。 输入 yum update自动更新所有配置 更新完成后输入 yum list docker-ce --showduplicates | sort -r 自动查询所有可用的docker版本 输入 yum install docker-ce docker-ce-cli container…...

【深度学习:Domain Adversarial Neural Networks (DANN) 】领域对抗神经网络简介

【深度学习&#xff1a;Domain Adversarial Neural Networks】领域对抗神经网络简介 前言领域对抗神经网络DANN 模型架构DANN 训练流程DANN示例 GPT示例 前言 领域适应&#xff08;DA&#xff09;指的是当不同数据集的输入分布发生变化&#xff08;这种变化通常被称为共变量变…...

STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)

资料下载: https://download.csdn.net/download/vvoennvv/88680924 一、概述 本系统以STM32F103C8T6单片机为主控芯片&#xff0c;采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集&#xff0c;MQ-7一氧化碳传感器检测CO浓度&#xff0c;GP2Y101…...

【DevOps-08-1】Harbor镜像仓库介绍和安装

一、简要描述 Harbor介绍Harbor安装 下载离线安装包把下载的离线安装包上传到服务器,并且解压修改Harbor配置文件启动Harbor登录Harbor管理后台Harbor管理后台首页二、Harbor介绍 前面在部署项目时,我们主要采用Jenkins推送jar包到指定服务器,再通过脚本命令让目标服务器对当…...

第八节 vue3新特性

系列文章目录 目录 系列文章目录 前言 操作方法 总结 前言 vue3与vue2的区别及特性。 具体信息 页面不用跟标签包裹cs...

Web前端-jQuery

文章目录 jQuery1.1 jQuery 介绍1.1.1 JavaScript 库1.1.2 jQuery的概念1.1.3 jQuery的优点 1.2 jQuery 的基本使用1.2.1 jQuery 的下载1.2.2 jQuery快速入门1.2.3 jQuery入口函数1.2.4 jQuery中的顶级对象$1.2.5 jQuery 对象和 DOM 对象1.2.6. jQuery 对象和 DOM 对象转换 1.3…...

MySQL 无法支撑亿级订单的多维聚合查询的庖丁解牛

MySQL 无法支撑亿级订单的多维聚合查询&#xff0c;是OLTP&#xff08;在线事务处理&#xff09;与 OLAP&#xff08;在线分析处理&#xff09;本质错位的典型表现。 试图用 MySQL 做海量数据分析&#xff0c;就像用法拉利去拉煤——不是车不好&#xff0c;而是用途错了。MySQL…...

【数据集】A股上市公司高管迷信相关数据(2008-2025年)

数据简介&#xff1a;本数据借鉴了Xianjun等人&#xff08;2025&#xff09;的研究方法。具体而言&#xff0c;先是把董事长的出生日期换算成对应的农历生肖年份&#xff08;即出生农历年份&#xff09;。接着进行匹配判断&#xff0c;若董事长出生农历年份与在职年份的生肖相契…...

Spring Boot阳光音乐厅订票系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着互联网技术的快速发展和数字化服务的普及&#xff0c;传统音乐厅订票系统面临着效率低下、用户体验不佳等问题。阳光音乐厅订票系统旨在通过信息化手段解决这些问题&#xff0c;为观众提供便捷的在线选座、购票和订单管理功能。系统通过整合线上线下资源&#xff0c;优…...

互联网大厂 Java 面试:严肃面试官 VS 水货程序员谢飞机(附详细答案)

互联网大厂 Java 面试&#xff1a;严肃面试官 VS 水货程序员谢飞机&#xff08;附详细答案&#xff09; 开场 会议室里空调冷得像 JVM 的 Full GC。 面试官&#xff08;严肃脸&#xff09;&#xff1a;“谢飞机是吧&#xff1f;我们直接开始。回答尽量结合业务场景。” 谢飞机&…...

SUNFLOWER MATCH LAB 模型压缩实战:使用PyTorch进行知识蒸馏

SUNFLOWER MATCH LAB 模型压缩实战&#xff1a;使用PyTorch进行知识蒸馏 最近在做一个移动端的图像匹配项目&#xff0c;用上了SUNFLOWER MATCH LAB这个模型&#xff0c;效果确实不错&#xff0c;匹配精度很高。但问题也来了&#xff0c;这模型有点“胖”&#xff0c;部署到手…...

opus4.6—1M正式上线!

Claude code正式上线100万上下文token&#xff0c;本小站也同步上线了哦&#xff0c;有意者评论区留言或者联系哦。...

边界云自助棋牌室系统怎么样?

随着无人经济的发展&#xff0c;自助棋牌室逐渐成为线下娱乐行业的新模式。通过扫码开门、自动计费和系统管理&#xff0c;一家棋牌室可以实现24小时无人运营&#xff0c;大幅降低人工成本。不过&#xff0c;对于很多准备开店的创业者来说&#xff0c;都会关注一个问题&#xf…...

多模型聚合的AI图像生成工作台——椒图AI深度评测与实战:低成本实现无痕改字与8K高清放大

在当前的AIGC浪潮中&#xff0c;图像生成模型层出不穷。对于开发者、UI设计师以及泛内容创作者而言&#xff0c;单一模型往往难以满足全场景的需求。要么长于写实但短于文字生成&#xff0c;要么支持高清放大但推理效率极低。搭建本地环境不仅硬件成本高昂&#xff0c;且不同模…...

解决brew安装慢问题

用 brew 安装软件慢&#xff0c;通常是因为默认的官方源服务器在国外。解决的核心思路就是将默认源替换为国内的镜像源。对于2025年的新版 Homebrew&#xff0c;有一个关键的新步骤需要留意。 &#x1f4a1; 核心原因 Homebrew 慢主要是因为它的核心仓库和软件包&#xff08;Bo…...

学习率调度的艺术:从Warmup到余弦退火,掌握深度学习的训练节奏

引言在深度学习的训练过程中&#xff0c;优化器的选择决定了“如何更新”参数&#xff0c;而学习率&#xff08;Learning Rate&#xff09; 则决定了“更新多大步”。作为整个训练过程中最重要的超参数之一&#xff0c;学习率直接决定了模型能否收敛以及收敛的质量。然而&#…...