1 创建存储过程统计各种职业的需求次数
2 创建存储过程统计指定日期范围内各的时刻时间总和
要求有存储过程和调用结果成功截图
数据库和表已经建好了 自取
链接:https://pan.baidu.com/s/1tTUcxyeUmLRZjx9HTqi1gQ?pwd=csdn
提取码:csdn
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');