Kotomii 2022-12-18 18:17 采纳率: 100%
浏览 47
已结题

MySQL创建存储过程

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

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

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

  • 写回答

1条回答 默认 最新

  • bingbingyihao 2022-12-18 18:49
    关注

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

    /*
     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');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月18日
  • 已采纳回答 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 Fluent udf 编写问题
  • ¥15 求合并两个字节流VB6代码
  • ¥15 Pyqt 如何正确的关掉Qthread,并且释放其中的锁?
  • ¥30 网站服务器通过node.js部署了一个项目!前端访问失败
  • ¥15 WPS访问权限不足怎么解决
  • ¥15 java幂等控制问题
  • ¥15 海湾GST-DJ-N500
  • ¥15 氧化掩蔽层与注入条件关系
  • ¥15 Django DRF 如何反序列化得到Python对象类型数据
  • ¥15 多数据源与Hystrix的冲突