MySQL:存储过程与函数、视图

news2024/11/16 9:49:53

一、学习目标

  1. 掌握如何创建存储过程
  2. 掌握如何创建存储函数
  3. 熟悉变量的使用方法
  4. 熟悉如何定义条件和处理程序
  5. 了解光标的使用方法
  6. 掌握流程控制的使用
  7. 掌握如何调用存储过程和函数
  8. 熟悉如何查看存储过程和函数
  9. 掌握修改存储过程和函数的方法
  10. 熟悉如何删除存储过程和函数
  11. 掌握创建存储过程和函数的方法和技巧
  12. 了解视图的含义和作用
  13. 掌握创建视图的方法
  14. 熟悉如何查看视图
  15. 掌握修改视图的方法
  16. 掌握更新视图的方法
  17. 掌握删除视图的方法
  18. 掌握视图应用的方法和技巧

二、实验内容

  1. 通过实例掌握存储过程和函数的创建和使用,步骤如下:

①创建一个名称为sch的数据表,表结构如下所示,将下面sch表内容中的数据插入到sch表中

sch表结构

字段名

数据类型

主键

外键

非空

唯一

自增

id

INT(11)

name

VARCHAR(50)

glass

VARCHAR(50)

sch表内容

id

name

glass

1

xiaoming

glass1

2

xiaojun

glass2

②创建一个存储函数,用来统计表sch中的记录数

③创建一个存储过程,通过调用存储函数的方法来获取表sch中的记录数和sch表中id的和

  1. 掌握视图的创建、查询、更新和删除操作。

假如HenanHebei的3个学生参加Tsinghua University、Peking University的自学考试,现在需要用数据对其考试的结果进行查询和管理,Tsinghua University的分数线为40,Peking University的分数线为41。学生表包含了学生的学号、姓名、家庭住址和电话号码;报名表包含学号、姓名、所在学校和报名的学校,表结构以及表中的内容分别如下列各表所示。

stu表结构

字段名

数据类型

主键

外键

非空

唯一

自增

s_id

INT

s_name

VARCHAR(20)

addr

VARCHAR(50)

tel

VARCHAR(50)

sign表结构

字段名

数据类型

主键

外键

非空

唯一

自增

s_id

INT

s_name

VARCHAR(20)

s_sch

VARCHAR(50)

s_sign_sch

VARCHAR(50)

stu_mark表结构

字段名

数据类型

主键

外键

非空

唯一

自增

s_id

INT

s_name

VARCHAR(20)

mark

INT

stu表内容

s_id

s_name

addr

tel

1

XiaoWang

Henan

0371-12345678

2

XiaoLi

Hebei

1336312XXXX

3

XiaoTian

Henan

0371-12345670

sign表内容

s_id

s_name

s_sch

s_sign_sch

1

XiaoWang

Middle School1

Peking University

2

XiaoLi

Middle School2

Tsinghua University

3

XiaoTian

Middle School3

Tsinghua University

stu_mark表内容

s_id

s_name

mark

1

XiaoWang

80

2

XiaoLi

71

3

XiaoTian

70

步骤如下:

①创建学生表stu,插入3条记录

②创建报名表sign,插入3条记录

③创建成绩表stu_mark,插入3条记录

④创建考上Peking University的学生的视图

⑤创建考上Tsinghua University的学生的视图

⑥XiaoTian的成绩在录入的时候录入错误,多录了50分,对其录入成绩进行更正

⑦查看更新过后视图和表的情况

⑧查看视图的创建信息

⑨删除创建的视图

1.1

 create table sch(id int(11) primary key not null unique,name varchar(50) not null,glass varchar(50) not null);

 1.2

 insert into sch (id,name,glass)values(1,'xiaoming','glass1'),(2,'xiaojun','glass2');

 1.3

create function count_sch()
returns int reads sql data
return (select count(*) from sch);

 1.4

delimiter

create procedure add_id(out count int)
begin declare itmp int;
declare cur_id cursor for select id from sch;
declare exit handler for not found close cur_id;
select count_sch() into count;
set @sum=0;
open cur_id;
repeat
fetch cur_id into itmp;
if itmp < 10
then set @sum = @sum + itmp;
end if;
until 0 end repeat;
close cur_id;
end //

delimiter ;
call add_id(@a);

 2.1

 create table stu(s_id int primary key not null unique,s_name varchar(20) not null,addr varchar(50) not null,tel varchar(50) not null);

 2.2

insert into stu (s_id,s_name,addr,tel)values
(1,'XiaoWang','Henan','0371-12345678'),
(2,'XiaoLi','Hebei','1336312xxxx'),
(3,'XiaoTian','Henan','0371-12345670');

 

 2.3

create table sign(s_id int primary key not null unique,s_name varchar(20) not null,s_sch varchar(50) not null,s_sign_sch varchar(50) not null);

2.4 

 insert into sign (s_id,s_name,s_sch,s_sign_sch)values
(1,'XiaoWang','Middle School1','Peking University'),
(2,'XiaoLi','Middle School2','Tsinghua University'),
(3,'XiaoTian','Middle School3','Tsinghua University');

 2.5

 create table stu_mark(s_id int primary key not null unique,s_name varchar(20) not null,mark int not null);

 

 2.6

insert into stu_mark (s_id,s_name,mark)values
(1,'XiaoWang',80),
(2,'XiaoLi',71),
(3,'XiaoTian',70);

 

 2.7

create view beida(id,name,addr,tel,s_sch,mark,sign_sch) as
select stu_mark.s_id,stu_mark.s_name,stu.addr,stu.tel,sign.s_sch,stu_mark.mark,sign.s_sign_sch
from stu_mark,sign,stu
where stu_mark.s_id=sign.s_id and stu.s_id=stu_mark.s_id
and sign.s_sign_sch='Peking University';

 2.8

create view qinghua(id,name,addr,tel,s_sch,mark,sign_sch) as
select stu_mark.s_id,stu_mark.s_name,stu.addr,stu.tel,sign.s_sch,stu_mark.mark,sign.s_sign_sch
from stu_mark,sign,stu
where stu_mark.s_id=sign.s_id and stu.s_id=stu_mark.s_id
and sign.s_sign_sch='Tsinghua University';

 

 2.9

 update stu_mark set mark=mark-50 where s_name='XiaoTian';

 2.10

show create view qinghua;
show create view beida;

 

2.11 

drop view beida;
drop view qinghua;

 

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

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

相关文章

知识推理——CNN模型总结(一)

记录一下我看过的利用CNN实现知识推理的论文。 最后修改时间&#xff1a;2023.05.12 目录 1.ConvE 1.1.解决的问题 1.2.优势 1.3.贡献与创新点 1.4.方法 1.4.1 为什么用二维卷积&#xff0c;而不是一维卷积&#xff1f; 1.4.2.ConvE具体实现 1.4.3.1-N scoring 1.5.…

TiDB x CAPCOM | 为在线游戏提供灵活、可靠、可扩展的数据库服务

通过 TiDB 连接全球极限场景和创新场景&#xff0c;是 PingCAP 长期坚持的国际化战略。目前&#xff0c;在全球已有超过 3000 家企业选择 TiDB。无论在游戏、金融、物流、互联网还是智能制造等行业&#xff0c;基于规模化 OLTP 扩容、实时 HTAP 分析等应用场景&#xff0c;Ping…

在idea工具下,使用protobuf自动生成java代码,超详细教程

新项目需要使用google protobuf 生成java代码 开始第一步&#xff0c;网上很多教程都说下载protobuf support插件&#xff0c;但是我下载了很多idea版本&#xff0c;就是找不到这个protobuf support 插件 在idea 中选择file ->settings ->plugin , 搜索protobuf,一般都…

[SWPUCTF] 2021新生赛之Crypto篇刷题记录(11)

[SWPUCTF] 2021新生赛之Crypto篇刷题记录① [SWPUCTF 2021 新生赛]crypto6[SWPUCTF 2021 新生赛]ez_caesar[SWPUCTF 2021 新生赛]crypto10[SWPUCTF 2021 新生赛]pigpig[SWPUCTF 2021 新生赛]traditional NSSCTF平台&#xff1a;https://www.nssctf.cn/ PS&#xff1a;记得所有…

渤海银行有点火,李伏安有点烦

文丨新熔财经 作者丨向雪徊 5月8日&#xff0c;大连银保监局连开七份罚单&#xff0c;处罚对象为渤海银行股份有限公司大连分行及相关责任人。 大银保监罚决字〔2023〕27号显示&#xff0c;渤海银行大连分行存在五项主要违法事实&#xff1a;一是未执行统一授信&#xff1b;…

【敬伟ps教程】套索、魔棒工具、快速选择工具、选区的编辑和调整

文章目录 套索工具自由套索多边形套索磁性套索工具 魔棒工具快速选择工具选区的编辑和调整 套索工具 自由套索 套索工具的用法&#xff0c;点击鼠标左键拖动鼠标建立选区。当选区没闭合时&#xff0c;松开鼠标会自动闭合选区。套索工具灵活快速但不够准确。套索工具的选项栏是…

拥有Type-C接口的显示器上 绝大多数人都不知这么大作用

大多数的数码爱好者认识Type-C接口&#xff0c;估计都是从2015年的安卓手机开始的。 但估计不少用户不知道的是&#xff0c;电脑端的显示器上也有Type-C接口。 如果你是一个刚入门想买显示器的朋友&#xff0c;下面可以分别看看显示器最常见的几种接口的介绍&#xff0c;结合你…

Sentinel 入门使用

目录 一. Sentinel简介1.1Sentinel简介1.2 Sentinel与Hystrix的区别1.3 名词解释 二. sentinel控制台2.1 下载启动控制台2.3 客户端接入控制台2.4 Rest整合Sentinel2.5 Feign 整合Sentinel 想了解Sentinel具体的使用规则就点这里呀&#xff01;&#xff01;&#xff01; 一. Se…

FISCO BCOS v3.3.0发布,新增块内分片技术,单链性能突破10万TPS

FISCO BCOS开源社区一贯秉承开源、开放、联合共建的原则&#xff0c;致力于链接社区力量将FISCO BCOS打造成更加完美的区块链底层平台。 作为FISCO BCOS开源社区重要的发起者和推动者&#xff0c;微众区块链持续参与开源生态共建。在社区通力协作下&#xff0c;FISCO BCOS v3.…

【Linux】RK3399平台开发系列——设备树的学习笔记

学习内容 RK3399平台开发系列讲解&#xff08;设备树篇&#xff09;设备树的详解 - 视频介绍 简介 设备树&#xff08;Device Tree&#xff09;是用于描述硬件设备和系统关系的树形数据结构&#xff0c;主要用于 Linux 操作系统中的设备驱动程序。在嵌入式系统中&#xff0c…

ARM和X86、X86和X64、Intel和AMD、CPU和GPU介绍

一、ARM和X86 X86 和 ARM 都是CPU设计的一个架构。X86 用的是复杂指令集。ARM用的是精简指令集。 指令集其实就是机器码&#xff0c;机器码上是汇编&#xff0c;汇编之上是程序语言例如java、c、c#。 复杂指令集是在硬件层面上设计了很多指令&#xff0c;所以编程会简单些。 精…

ChatGLM是什么?ChatGLM和ChatGPT有什么区别?

ChatGLM是什么&#xff1f; ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练&#xff0c;它具备多领域知识、代码能力、常识推理及运用能力&#xff1b;支持与用户通过自然语言对话进行交互&#xff0c;处理多种自…

IS210WSVOH1AE直流发电机的种类 ? 直流发电机中换向器的用途

​ IS210WSVOH1AE直流发电机的种类 ? 直流发电机中换向器的用途 什么是直流发电机 通过使用直流发电机&#xff0c;我们可以发电&#xff0c;发电机 4个作用是将机械能转化为电能。直流发电机主要用于特殊应用或本地发电&#xff0c;直流发电机的运行特性非常重要&#xff0c;…

企业快递管理软件使用教程

想要分析企业快递管理软件的作用&#xff0c;首先要明白&#xff0c;企业快递管理的大致情况&#xff0c;以及面临的难题是什么&#xff1f; 随着经济的发展&#xff0c;以及快递行业的不断前行。因公寄件早已成了企业运作必不可少的环节之一&#xff0c;试问哪家企业没有寄递…

vue项目中echarts自适应问题高级解决方案

一、问题描述 1.1 页面布局 项目首页中有多个echarts图表&#xff0c;如下图所示&#xff1a; 页面布局如下&#xff1a; index页面&#xff08;绿框&#xff09;是父页面&#xff0c;父页面中包含A页面&#xff08;红框&#xff09;和B页面&#xff08;橙框&#xff09;&…

黑客是怎么练成的(自学黑客四大知识点)

前言 网学黑客技术的人越来越多了&#xff0c;不少人都不知道该怎么学&#xff0c;今天就来详细的说一说黑客是如何炼成的。 首先&#xff0c;什么是黑客&#xff1f; 黑客 &#xff1a;泛指擅长IT技术的电脑高手 黑客一词&#xff0c;源自英文Hacker&#xff0c;早期其实就…

选择排序详解(Selection sort)

本文已收录于专栏 《算法合集》 目录 一、简单释义1、算法概念2、算法目的3、算法思想 二、核心思想三、图形展示四、代码实现1、优化之前2、优化之后 五、算法描述1、问题描述2、算法过程 六、算法分析1、时间复杂度2、空间复杂度3、算法稳定性 一、简单释义 1、算法概念 选择…

Web3中文|生成式 AI 参与的未来,行业该做好哪些准备?

依照 AI 技术目前的发展态势&#xff0c; AI 可能会颠覆诸多行业的未来。 当前 AI 技术的突破让大众关注到了特定类型的 AI ——生成式 AI。生成式 AI 围绕分析、自动化和内容生成展开&#xff0c;生成内容兼具质和量。 了解生成式 AI 如何融入实用应用程序的是非常有必要的。根…

并查集算法

文章目录 1. 原理介绍2. 并查集的应用3. find()函数的定义与实现4. 并查集的join函数5. 路径压缩优化算法-优化find6. 路径压缩优化算法按秩合并算法 1. 原理介绍 并查集是一种用于维护集合关系的数据结构&#xff0c;它支持合并集合和查询元素所在的集合。它的基本思想是将元…

【人力资源管理】第1集 免费开源ERP: Odoo 16 Employees员工管理 构建一体化企业人力资源管理

文章目录 前言一、概览二、主要功能1.成功管理您的员工 集中您的所有 HR 信息2.跟踪时间&#xff0c;考勤3.休假管理4.经简化的费用管理5.轻松完成员工评估全面评估6.简化招聘流程7.简化招聘流程 总结 前言 人力资源 适用于当代企业 一体化&#xff1a;招聘、考评、报销、 休假…