MySQL创建存储过程

1 创建存储过程统计各种职业的需求次数
2 创建存储过程统计指定日期范围内各的时刻时间总和

要求有存储过程和调用结果成功截图

数据库和表已经建好了 自取
链接:https://pan.baidu.com/s/1tTUcxyeUmLRZjx9HTqi1gQ?pwd=csdn
提取码:csdn

回答:有一些问题哈,你不需要去设置编码的,然后不应该采用中文作为表格名称与字段名称;
存储过程如下:

/*
 Navicat Premium Data Transfer

 Source Server         : 123456
 Source Server Type    : MySQL
 Source Server Version : 80028 (8.0.28)
 Source Host           : localhost:3306
 Source Schema         : 学校家教服务管理系统

 Target Server Type    : MySQL
 Target Server Version : 80028 (8.0.28)
 File Encoding         : 65001

 Date: 18/12/2022 18:08:45
*/

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for 工资表
-- ----------------------------
DROP TABLE IF EXISTS `工资表`;
CREATE TABLE `工资表`  (
  `职工号` int NOT NULL,
  `工资` int NULL DEFAULT NULL,
  PRIMARY KEY (`职工号`) USING BTREE
);

-- ----------------------------
-- Records of 工资表
-- ----------------------------
INSERT INTO `工资表` VALUES (1, 200);
INSERT INTO `工资表` VALUES (2, 100);
INSERT INTO `工资表` VALUES (3, 300);
INSERT INTO `工资表` VALUES (4, 400);

-- ----------------------------
-- Table structure for 收费表
-- ----------------------------
DROP TABLE IF EXISTS `收费表`;
CREATE TABLE `收费表`  (
  `职工号` int NOT NULL,
  `开始时间` time NULL DEFAULT NULL,
  `结束时间` time NULL DEFAULT NULL,
  `收费` int NOT NULL,
  PRIMARY KEY (`收费`) USING BTREE
);

-- ----------------------------
-- Records of 收费表
-- ----------------------------
INSERT INTO `收费表` VALUES (2, '09:00:00', '10:00:00', 100);
INSERT INTO `收费表` VALUES (1, '08:00:00', '10:00:00', 200);
INSERT INTO `收费表` VALUES (3, '08:30:00', '11:30:00', 300);
INSERT INTO `收费表` VALUES (4, '12:00:00', '16:00:00', 400);

-- ----------------------------
-- Table structure for 教师信息表
-- ----------------------------
DROP TABLE IF EXISTS `教师信息表`;
CREATE TABLE `教师信息表`  (
  `职工号` int NOT NULL,
  `姓名` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  `性别` varchar(2) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
  `电话` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  `科目` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  `地址` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  PRIMARY KEY (`职工号`) USING BTREE,
  CONSTRAINT `教师信息表_chk_1` CHECK ((`性别` = _utf8mb4'男') or (`性别` = _utf8mb4'女'))
);

-- ----------------------------
-- Records of 教师信息表
-- ----------------------------
INSERT INTO `教师信息表` VALUES (1, '小李', '男', '001', '英语', '北京路');
INSERT INTO `教师信息表` VALUES (2, '小张', '女', '002', '数学', '中山路');
INSERT INTO `教师信息表` VALUES (3, '小刘', '女', '003', '物理', '上海路');
INSERT INTO `教师信息表` VALUES (4, '小王', '男', '004', '语文', '南京路');

-- ----------------------------
-- Table structure for 职业登记表
-- ----------------------------
DROP TABLE IF EXISTS `职业登记表`;
CREATE TABLE `职业登记表`  (
  `职业` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  `姓名` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  `电话` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  `地址` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
  PRIMARY KEY (`职业`) USING BTREE
);

-- ----------------------------
-- Records of 职业登记表
-- ----------------------------
INSERT INTO `职业登记表` VALUES ('公司员工', '小刘', '003', '上海路');
INSERT INTO `职业登记表` VALUES ('大学生', '小张', '002', '中山路');
INSERT INTO `职业登记表` VALUES ('教师', '小李', '001', '北京路');
INSERT INTO `职业登记表` VALUES ('高级家教', '小王', '004', '南京路');

-- ----------------------------
-- Table structure for 职工作息表
-- ----------------------------
DROP TABLE IF EXISTS `职工作息表`;
CREATE TABLE `职工作息表`  (
  `职工号` int NOT NULL,
  `开始时间` time NULL DEFAULT NULL,
  `结束时间` time NULL DEFAULT NULL,
  `工作时间` int NOT NULL,
  `日期` date NULL DEFAULT NULL,
  PRIMARY KEY (`工作时间`) USING BTREE
);

-- ----------------------------
-- Records of 职工作息表
-- ----------------------------
INSERT INTO `职工作息表` VALUES (2, '09:00:00', '10:00:00', 1, '2022-12-01');
INSERT INTO `职工作息表` VALUES (1, '08:00:00', '10:00:00', 2, '2022-12-01');
INSERT INTO `职工作息表` VALUES (3, '08:30:00', '11:30:00', 3, '2022-12-02');
INSERT INTO `职工作息表` VALUES (4, '12:00:00', '16:00:00', 4, '2022-12-03');

SET FOREIGN_KEY_CHECKS = 1;
-- 创建存储过程统计各种职业的需求次数 (对于这个需求次数,不是很理解是啥意思)
CREATE PROCEDURE `statistic`()
begin
    select distinct count(职业) from 职业登记表;
end;

-- 调用存储过程
call statistic();
-- 创建存储过程统计各种职业的需求次数
CREATE PROCEDURE `statisticTime`(in start datetime, in end datetime)
begin
    select sum(工作时间) from `职工作息表` where start <= 日期 and end >= 日期;
end;

-- 调用存储过程
call statisticTime('2022-12-01', '2022-12-02');