test02/sql/test002.sql

118 lines
3.8 KiB
SQL

/*
Navicat Premium Data Transfer
Source Server : lyx
Source Server Type : MySQL
Source Server Version : 50736
Source Host : 111.229.181.183:3306
Source Schema : test002
Target Server Type : MySQL
Target Server Version : 50736
File Encoding : 65001
Date: 19/07/2024 09:07:53
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for stu_cou
-- ----------------------------
DROP TABLE IF EXISTS `stu_cou`;
CREATE TABLE `stu_cou` (
`sc_id` int(11) NOT NULL AUTO_INCREMENT,
`c_id` int(11) NULL DEFAULT NULL,
`s_id` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`sc_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of stu_cou
-- ----------------------------
INSERT INTO `stu_cou` VALUES (1, 1, 1);
INSERT INTO `stu_cou` VALUES (2, 1, 2);
INSERT INTO `stu_cou` VALUES (3, 1, 5);
INSERT INTO `stu_cou` VALUES (4, 2, 3);
INSERT INTO `stu_cou` VALUES (5, 2, 4);
INSERT INTO `stu_cou` VALUES (6, 2, 7);
INSERT INTO `stu_cou` VALUES (7, 2, 9);
INSERT INTO `stu_cou` VALUES (8, 3, 10);
INSERT INTO `stu_cou` VALUES (9, 3, 6);
INSERT INTO `stu_cou` VALUES (10, 3, 8);
INSERT INTO `stu_cou` VALUES (11, 2, 8);
INSERT INTO `stu_cou` VALUES (12, 1, 10);
INSERT INTO `stu_cou` VALUES (13, 3, 2);
-- ----------------------------
-- Table structure for t_course
-- ----------------------------
DROP TABLE IF EXISTS `t_course`;
CREATE TABLE `t_course` (
`c_id` int(11) NOT NULL AUTO_INCREMENT,
`c_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`c_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_course
-- ----------------------------
INSERT INTO `t_course` VALUES (1, '英语');
INSERT INTO `t_course` VALUES (2, '语文');
INSERT INTO `t_course` VALUES (3, '数学');
-- ----------------------------
-- Table structure for t_student
-- ----------------------------
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student` (
`s_id` int(11) NOT NULL AUTO_INCREMENT,
`s_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`s_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_student
-- ----------------------------
INSERT INTO `t_student` VALUES (1, '张三', '');
INSERT INTO `t_student` VALUES (2, '李四', '');
INSERT INTO `t_student` VALUES (3, '王五', '');
INSERT INTO `t_student` VALUES (4, '赵六', '');
INSERT INTO `t_student` VALUES (5, '田七', '');
INSERT INTO `t_student` VALUES (6, '晓丽', '');
INSERT INTO `t_student` VALUES (7, '关谷', '');
INSERT INTO `t_student` VALUES (8, '架子', '');
INSERT INTO `t_student` VALUES (9, '淞沪', '');
INSERT INTO `t_student` VALUES (10, '威威', '');
SET FOREIGN_KEY_CHECKS = 1;
-- 查询男生人数
SELECT COUNT(*) AS count
FROM t_student
WHERE sex = '';
-- 查询女生人数
SELECT COUNT(*) AS n_count
FROM t_student
WHERE sex = '';
-- 查询男生占比
SELECT COUNT(*) * 100.0 / (SELECT COUNT(*) FROM t_student) AS people_nan
FROM t_student
WHERE sex = '';
-- 查询女生占比
SELECT COUNT(*) * 100.0 / (SELECT COUNT(*) FROM t_student) AS people_nv
FROM t_student
WHERE sex = '';
-- 查询每门课程下的学生总人数
SELECT c.c_name AS course_name, COUNT(sc.s_id) AS student_count
FROM t_course c
LEFT JOIN stu_cou sc ON c.c_id = sc.c_id
GROUP BY c.c_name