61 lines
1.2 KiB
SQL
61 lines
1.2 KiB
SQL
create table t_student(
|
|
s_id int(11) PRIMARY KEY auto_increment,
|
|
s_name VARCHAR(50),
|
|
sex VARCHAR(10)
|
|
)
|
|
|
|
create table t_course(
|
|
c_id int(11) PRIMARY KEY auto_increment,
|
|
c_name VARCHAR(100)
|
|
)
|
|
|
|
CREATE TABLE stu_cou(
|
|
sc_id int(11) PRIMARY KEY auto_increment,
|
|
c_id int(11),
|
|
s_id int(11)
|
|
)
|
|
|
|
INSERT into t_student VALUES
|
|
(0,'学生1','男'),
|
|
(0,'学生2','男'),
|
|
(0,'学生3','女'),
|
|
(0,'学生4','女'),
|
|
(0,'学生5','男'),
|
|
(0,'学生6','男'),
|
|
(0,'学生7','女'),
|
|
(0,'学生8','男'),
|
|
(0,'学生9','女'),
|
|
(0,'学生10','男');
|
|
|
|
INSERT into t_course VALUES
|
|
(0,'语文'),
|
|
(0,'数学'),
|
|
(0,'日语');
|
|
|
|
|
|
INSERT INTO stu_cou VALUES
|
|
(0,1,1),
|
|
(0,1,2),
|
|
(0,1,3),
|
|
(0,2,4),
|
|
(0,2,5),
|
|
(0,2,6),
|
|
(0,3,7),
|
|
(0,3,8),
|
|
(0,3,9),
|
|
(0,3,10);
|
|
-- 查询男生和女生各多少人
|
|
SELECT sex,COUNT(t_student.s_name) from t_student GROUP BY sex
|
|
|
|
-- 查询男生和女生分别占总人数的比例
|
|
SELECT sex,ROUND(COUNT(t_student.s_name)/(SELECT COUNT(t_student.s_name) from t_student)* 100,2) from t_student GROUP BY sex
|
|
|
|
-- 查询每门课程下的学生总人数
|
|
SELECT
|
|
t_course.c_name,
|
|
COUNT( t_student.s_name )
|
|
FROM
|
|
t_student
|
|
LEFT JOIN stu_cou ON t_student.s_id = stu_cou.s_id
|
|
left join t_course on stu_cou.c_id=t_course.c_id
|
|
GROUP BY t_course.c_name |