第13关:存储过程1、第14关:存储过程2。(2021数据库期末一)

2024-06-23 13:04

本文主要是介绍第13关:存储过程1、第14关:存储过程2。(2021数据库期末一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

首先需要学习和了解的知识

第13关:存储过程1

任务描述

答案

 第14关:存储过程2

任务描述

答案


本篇博客的答案博主是学习别人得来的,敢于借鉴和学习哈哈!!

首先需要学习和了解的知识

  • 了解什么是存储过程以及存储过程的基本语法。(作者博客专栏或者b站学习)
  • 了解在命令行中,执行创建存储过程的SQL时。需要通过关键字 delimiter 指定SQL语句的结束符。

(本题中的答案有规定的格式,不能更改,否则提交不正确!!)

  • 存储过程中的 begin ... end 之中是写 SQL语句的相关代码的。
  • 在创建存储过程时,参数列表中:输入参数前加 in ,返回值后加 out
  • 其它的就是可以用输入参数,然后给返回值赋值用:select  字段值...  into
  • 本题目中在查询的过程中涉及到连接查询的相关知识。
第13关:存储过程1

任务描述

湖南人口hnpeople数据表如下所示

各字段含义如下
cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
13.建立存储过程xbcx,输入城市名称,返回该城市的男性人口百分比,女性人口百分比,要求保留两位小数。
调用该存储过程,将结果赋给变量@lx和@nx


开始你的任务吧,祝你成功!

答案

(该题的测试点:就是测试输入的长沙市,返回它的男性、女性人口比)

  • 注意格式不能更改,上方有个 " delimiter // " 不能修改(应该是一个结束标志用法声明)
use rkpc;
#代码开始delimiter //create procedure xbcx(in city_name varchar(20), out lx decimal(5,2), out nx decimal(5,2))
begin-- 计算男性人口百分比select sum(man) * 100.0 / sum(man + woman) into lx
…delimiter ;call xbcx('长沙市', @lx, @nx);#代码结束select @lx,@nx;
 第14关:存储过程2

任务描述

数据库人口普查rkpc有数据表qgrk,有省份sf、名称name、人口rk字段,数据如下所示

有数据表qgqh,有省份sf、城市city、区县qx、代码dm字段,数据如下所示

本关任务:
建立存储过程sfcx(in sfmc varchar(15))
根据输入的省份名称,建立数据表sfxx,将该省的省份名称sf、城市city、区县qx\代码dm、人口rk各字段的信息存入到数据表数据表sfxx。


开始你的任务吧,祝你成功!

答案

(本题的任务根据题目给出的:要在存储过程中完成的SQL语句任务是创建一张表,然后给表中添加一些符合条件的数据,而题目中其实就是要湖南省的数据。其次就是注意本题的描述与测试相矛盾,所以应该将创建的字段 "city" 改成 "cs"

  • 注意格式不能更改,上方有个 " delimiter // " 不能修改(应该是一个结束标志用法声明)
use rkpc;
#代码开始delimiter //create procedure sfcx(in sfmc varchar(15))
begin-- 首先,创建新表sfxx,如果表不存在的话create table if not exists sfxx (sf varchar(15),cs varchar(50),qx varchar(50),dm varchar(50),rk int);-- 接着,向新表中插入数据insert into sfxx (sf, cs, qx, dm, rk)select qgrk.sf, qgqh.cs, qgqh.qx, qgqh.dm, qgrk.rkfrom qgrkjoin qgqh on qgrk.sf = qgqh.sfwhere qgrk.sf = '湖南省' and qgrk.name=qgqh.qx;end //delimiter ;#代码结束call sfcx("湖南省");
select * from sfxx;

这篇关于第13关:存储过程1、第14关:存储过程2。(2021数据库期末一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087236

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I