一、设有一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。

四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。

表1-1数据库的表结构

表(一)Student (学生表)

属性名

数据类型

可否为空

含 义

Sno

varchar (20)

学号(主码)

Sname

varchar (20)

学生姓名

Ssex

varchar (20)

学生性别

Sbirthday

datetime

学生出生年月

Class

varchar (20)

学生所在班级

表(二)Course(课程表)

属性名

数据类型

可否为空

含 义

Cno

varchar (20)

课程号(主码)

Cname

varchar (20)

课程名称

Tno

varchar (20)

教工编号(外码)

表(三)Score(成绩表)

属性名

数据类型

可否为空

含 义

Sno

varchar (20)

学号(外码)

Cno

varchar (20)

课程号(外码)

Degree

Decimal(4,1)

成绩

主码:Sno+ Cno

表(四)Teacher(教师表)

属性名

数据类型

可否为空

含 义

Tno

varchar (20)

教工编号(主码)

Tname

varchar (20)

教工姓名

Tsex

varchar (20)

教工性别

Tbirthday

datetime

教工出生年月

Prof

varchar (20)

职称

Depart

varchar (20)

教工所在部门

表1-2数据库中的数据

表(一)Student

Sno

Sname

Ssex

Sbirthday

class

108

曾华

1977-09-01

95033

105

匡明

1975-10-02

95031

107

王丽

1976-01-23

95033

101

李军

1976-02-20

95033

109

王芳

1975-02-10

95031

103

陆君

1974-06-03

95031

表(二)Course

Cno

Cname

Tno

3-105

计算机导论

825

3-245

操作系统

804

6-166

数字电路

856

9-888

高等数学

831

表(三)Score

Sno

Cno

Degree

103

3-245

86

105

3-245

75

109

3-245

68

103

3-105

92

105

3-105

88

109

3-105

76

101

3-105

64

107

3-105

91

108

3-105

78

101

6-166

85

107

6-166

79

108

6-166

81

表(四)Teacher

Tno

Tname

Tsex

Tbirthday

Prof

Depart

804

李诚

1958-12-02

副教授

计算机系

856

张旭

1969-03-12

讲师

电子工程系

825

王萍

1972-05-05

助教

计算机系

831

刘冰

1977-08-14

助教

电子工程系

1、查询Student表中的所有记录的Sname、Ssex和Class列。

2、查询教师所有的单位即不重复的Depart列。

3、查询Student表的所有记录。

4、查询Score表中成绩在60到80之间的所有记录。

5、查询Score表中成绩为85,86或88的记录。

6、查询Student表中"95031"班或性别为"女"的同学记录。

7、以Class降序查询Student表的所有记录。

8、以Cno升序、Degree降序查询Score表的所有记录。

9、查询"95031"班的学生人数。

10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)

11、查询每门课的平均成绩。

12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

13、查询分数大于70,小于90的Sno列。

14、查询所有学生的Sname、Cno和Degree列。

15、查询所有学生的Sno、Cname和Degree列。

16、查询所有学生的Sname、Cname和Degree列。

17、 查询"95033"班学生的平均分。

18、假设使用如下命令建立了一个grade表:

create table grade(low int(3),upp int(3),rank char(1))

insert into grade values(90,100,'A')

insert into grade values(80,89,'B')

insert into grade values(70,79,'C')

insert into grade values(60,69,'D')

insert into grade values(0,59,'E')

现查询所有同学的Sno、Cno和rank列。

19、  查询选修"3-105"课程的成绩高于"109"号同学成绩的所有同学的记录。

20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。

21、查询成绩高于学号为"109"、课程号为"3-105"的成绩的所有记录。

22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

23、查询"张旭"教师任课的学生成绩。

24、查询选修某课程的同学人数多于5人的教师姓名。

25、查询95033班和95031班全体学生的记录。

26、  查询存在有85分以上成绩的课程Cno.

27、查询出"计算机系"教师所教课程的成绩表。

28、查询"计算机系"与"电子工程系"不同职称的教师的Tname和Prof。

29、查询选修编号为"3-105"课程且成绩至少高于选修编号为"3-245"的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。

30、查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学的Cno、Sno和Degree.

31、 查询所有教师和同学的name、sex和birthday.

32、查询所有"女"教师和"女"同学的name、sex和birthday.

33、 查询成绩比该课程平均成绩低的同学的成绩表。

34、查询所有任课教师的Tname和Depart.

35 、查询所有未讲课的教师的Tname和Depart.

36、查询至少有2名男生的班号。

37、查询Student表中不姓"王"的同学记录。

38、查询Student表中每个学生的姓名和年龄。

39、查询Student表中最大和最小的Sbirthday日期值。

40、以班号和年龄从大到小的顺序查询Student表中的全部记录。

41、查询"男"教师及其所上的课程。

42、查询最高分同学的Sno、Cno和Degree列。

43、查询和"李军"同性别的所有同学的Sname.

44、查询和"李军"同性别并同班的同学Sname.

45、查询所有选修"计算机导论"课程的"男"同学的成绩表。

代码:

 USE exam;
-- 创建表
-- 学生表
CREATE TABLE student(
sno VARCHAR(20) NOT NULL PRIMARY KEY,-- 学生学号
sname VARCHAR(20) NOT NULL,-- 学生姓名
ssex VARCHAR(20) NOT NULL,-- 学生性别
sbirthday date, -- 学生出生年月
class VARCHAR(20)-- 所在班级
);
-- 老师表
CREATE TABLE teacher(
tno VARCHAR(20) NOT NULL PRIMARY KEY,-- 老师编号
tname VARCHAR(20) NOT NULL,-- 老师姓名
tsex VARCHAR(20) NOT NULL,-- 老师性别
tbirthday date,-- 老师出生年月
prof VARCHAR(20),-- 职称
depart VARCHAR(20) NOT NULL-- 所在部门
);
-- 课程表
CREATE TABLE course(
cno VARCHAR(20) NOT NULL PRIMARY KEY,-- 课程号
cname VARCHAR(20) NOT NULL,-- 课程名称
tno VARCHAR(20) NOT NULL,-- 教工编号
FOREIGN KEY (tno) REFERENCES teacher(tno) -- 外键
);
-- 成绩表
CREATE TABLE score(
sno VARCHAR(20) NOT NULL, -- 学生编号
cno VARCHAR(20) NOT NULL, -- 课程编号
degree DECIMAL(4,1),-- 成绩
CONSTRAINT fk FOREIGN KEY (sno) REFERENCES student(sno),-- 学生外键
CONSTRAINT fk1 FOREIGN KEY (cno) REFERENCES course(cno),-- 课程外键
PRIMARY KEY (sno,cno)
);
-- 18题grade表
create table grade(low int(3),upp int(3),rank char(1));
insert into grade values(90,100,'A');
insert into grade values(80,89,'B');
insert into grade values(70,79,'C');
insert into grade values(60,69,'D');
insert into grade values(0,59,'E'); -- 录入信息
-- 录入学生表信息
INSERT INTO student VALUES
('','曾华','男','1977-09-01',''),
('','匡明','男','1975-10-02',''),
('','王丽','女','1976-01-23',''),
('','李军','男','1976-02-20',''),
('','王芳','女','1975-02-10',''),
('','陆君','男','1974-06-03','');
-- 录入老师的信息
INSERT INTO teacher VALUES
('','李成','男','1958-12-02','副教授','计算机系'),
('','张旭','男','1969-03-12','讲师','电子工程系'),
('','王萍','女','1972-05-05','助教','计算机系'),
('','刘冰','女','1977-08-14','助教','电子工程系');
-- 录入课程信息
INSERT INTO course VALUES
('3-105','计算机导论',''),
('3-245','操作系统',''),
('6-166','数字电路',''),
('9-888','高等数学','');
-- 录入成绩信息
INSERT INTO score VALUES
('','3-245',86),
('','3-245',75),
('','3-245',68),
('','3-105',92),
('','3-105',88),
('','3-105',76),
('','3-105',64),
('','3-105',91),
('','3-105',78),
('','6-166',85),
('','6-166',79),
('','6-166',81);
-- 查询
-- 1,查询Student表中的所有记录的Sname、Ssex和Class列
SELECT sname,ssex,class FROM student; -- 2,查询教师所有的单位即不重复的Depart列
SELECT DISTINCT depart 所在单位 FROM teacher; -- 3,查询Student表的所有记录
SELECT * FROM student; -- 4,查询Score表中成绩在60到80之间的所有记录
-- 前闭后开
SELECT * FROM score WHERE degree BETWEEN 60 AND 80; -- 5,查询Score表中成绩为85,86或88的记录
SELECT * FROM score WHERE degree=85 || degree=86 || degree=88;
SELECT * FROM score WHERE degree=85 OR degree=86 OR degree=88;
SELECT * FROM score WHERE degree IN (85,86,88); -- 6,查询Student表中“95031”班,性别为“女”的同学记录
SELECT * FROM student WHERE ssex='女' AND class='';
SELECT * FROM student WHERE ssex='女' OR class=''; -- 7,Class降序查询Student表的所有记录
SELECT * FROM student ORDER BY class DESC; -- 8,以Cno升序,Degree降序查询Score表的所有记录。
SELECT * FROM score ORDER BY cno,degree DESC; -- 9,查询“95031”班的学生人数。
SELECT class 班级,COUNT(*) 人数 FROM student WHERE class='';
SELECT class 班级 FROM student WHERE class=''; -- 10,查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
SELECT sno 学号,cno 课程号 FROM score WHERE degree =(SELECT MAX(degree)FROM score ) -- 11,查询每门课的平均成绩
SELECT cno 课程编号,AVG(degree) FROM score GROUP BY cno;
-- 加上课程名称了
SELECT cno 课程编号,cname 课程名称,AVG(degree)
FROM (SELECT score.cno,cname,degree FROM course,score WHERE course.cno=score.cno) AS xx
GROUP BY cno;
-- 1.明确要查询的表,可能是子查询(明确语句的执行顺序)
-- 2.加条件
-- 3.尽量用IN,不用等号?
-- 12,查询Score表中至少有5名学生选修的并以3开头的课程的平均分数
-- 没有加上课程名,太麻烦
-- 方法一:
SELECT cno,AVG(degree) FROM score WHERE
cno=(SELECT cno FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(*)>=5);
-- 方法二:
SELECT cno,AVG(degree ) FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(*)>=5; -- 13,查询分数大于70,小于90的Sno列
-- between and 前闭后开?
SELECT sno FROM score WHERE degree>70 AND degree<90; -- 14,查询所有学生的Sname、Cno和Degree列
-- 可以试着加上课程的名字
-- 用JOIN写写
SELECT sname,cno,degree FROM student,score WHERE student.sno=score.sno; -- 15,查询所有学生的Sno、Cname和Degree列
-- 用JOIN写写
SELECT student.sno,sname,cname,degree FROM student,score,course
WHERE student.sno=score.sno AND score.cno=course.cno
ORDER BY student.sno; -- 16,查询所有学生的Sname、Cname和Degree列
SELECT sname,cname,degree FROM student,score,course
WHERE student.sno=score.sno AND score.cno=course.cno
ORDER BY student.sno; -- 17,查询“95033”班学生的平均分。
SELECT class,AVG(degree) FROM score,student
WHERE student.sno=score.sno and class=''; -- 18,现查询所有同学的Sno、Cno和rank列
SELECT student.sno,cno,rank FROM student,score,grade
WHERE student.sno=score.sno AND degree<=upp AND degree>low;
-- 方法二:这个很重要
SELECT sno,cno,rank FROM score JOIN grade ON degree BETWEEN low AND upp; -- 19,查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
SELECT * FROM score WHERE cno='3-105'
AND degree>(SELECT degree FROM score WHERE sno=''AND cno='3-105'); -- 20,查询score中选学多门课程的同学中分数为非最高分成绩的记录。
-- 会有别名错误,什么时候才必须加别名
SELECT * FROM score
WHERE cno in(SELECT cno FROM score GROUP BY cno HAVING count(*)>1)
AND degree <> (SELECT MAX(degree) FROM score);
-- 更正
SELECT * FROM score a
WHERE sno in(SELECT sno FROM score GROUP BY sno HAVING count(*)>1)
AND degree <> (SELECT MAX(degree) FROM score b WHERE b.cno=a.cno);
-- 另一种理解
SELECT * FROM score a
WHERE sno in(SELECT sno FROM score GROUP BY sno HAVING count(*)>1)
AND degree <> (SELECT MAX(degree) FROM ); -- 21,查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT * FROM score
WHERE degree > (SELECT max(degree) FROM score WHERE sno=''AND cno = '3-105'); -- 22,查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
SELECT * FROM student
WHERE YEAR(sbirthday)=(SELECT YEAR(sbirthday) FROM student WHERE sno='') AND sno <> ''; -- 23,查询“张旭“教师任课的学生成绩。
SELECT degree FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno AND tname='张旭';
-- :嵌套的做法 -- 24,查询选修某课程的同学人数多于5人的教师姓名
SELECT tname FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno
GROUP BY teacher.tno HAVING count(*)>5;
-- 嵌套的做法
SELECT tname FROM teacher WHERE tno IN
(SELECT tno FROM course WHERE cno IN
(SELECT cno FROM score GROUP BY cno HAVING COUNT(*)>5)); -- 25,查询95033班和95031班全体学生的记录
SELECT * FROM student WHERE class='' OR class='';
SELECT * FROM student WHERE class IN ('',''); -- 26,查询存在有85分以上成绩的课程Cno.
SELECT DISTINCT cno FROM score WHERE degree>85; -- 27,查询出“计算机系“教师所教课程的成绩表。
SELECT score.sno,score.cno,score.degree,depart FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno AND depart='计算机系';
-- 这里也可以用嵌套 -- 28,查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof
-- 方法一:
SELECT tname,prof FROM teacher WHERE depart='计算机系'
AND prof NOT IN(SELECT prof FROM teacher WHERE depart='电子工程系' )
UNION
SELECT tname,prof FROM teacher WHERE depart='电子工程系'
AND prof NOT IN(SELECT prof FROM teacher WHERE depart='计算机系' ) ;
-- 方法二:思路不清晰,得整理
SELECT tname,prof FROM teacher a WHERE
a.prof NOT IN (SELECT b.prof FROM teacher b WHERE b.depart <> a.depart )
-- 方法三:
SELECT * FROM teacher WHERE prof NOT IN (SELECT prof FROM teacher WHERE depart='计算机系'
AND prof IN(SELECT prof FROM teacher WHERE depart='电子工程系')); -- 29,查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的
-- Cno、Sno和Degree,并按Degree从高到低次序排序。
SELECT cno,sno,degree FROM score WHERE cno='3-105'
AND degree > ANY(SELECT MIN(degree) FROM score WHERE cno='3-245' )
ORDER BY degree DESC;
-- ANY 至少一个 ALL 所有的 可以用来替代min和max -- 30,查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
SELECT cno,sno,degree FROM score WHERE cno='3-105'
AND degree > ALL(SELECT MAX(degree) FROM score WHERE cno='3-245' )
ORDER BY degree DESC; -- 31,查询所有教师和同学的name、sex和birthday.
SELECT sname 姓名,ssex 性别,sbirthday 生日 FROM student
UNION-- 研究一下这个还有相关子查询
SELECT tname 姓名,tsex 性别,tbirthday 生日 FROM teacher; -- 32,查询所有“女”教师和“女”同学的name、sex和birthday.
SELECT sname 姓名,ssex 性别,sbirthday 生日 FROM student WHERE ssex='女'
UNION-- 研究一下join
SELECT tname 姓名,tsex 性别,tbirthday 生日 FROM teacher WHERE tsex='女'; -- 33,查询成绩比该课程平均成绩低的同学的成绩表。
-- 相关子查询的应用
SELECT * FROM score a
WHERE a.degree > (SELECT AVG(degree) FROM score b WHERE b.cno=a.cno); -- 34,查询所有任课教师的Tname和Depart.
-- 方法一:
SELECT tname,depart FROM teacher WHERE tname IN
(SELECT DISTINCT tname FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno);
-- 方法二:还得研究一下啊
SELECT DISTINCT tname,depart FROM teacher LEFT JOIN course ON teacher.tno=course.tno
LEFT JOIN score ON score.cno=course.cno WHERE degree IS NOT NULL;
-- 嵌套的方法
SELECT tname,depart FROM teacher WHERE tno IN (SELECT tno FROM course ); -- 35,查询所有未讲课的教师的Tname和Depart.
SELECT tname,depart FROM teacher WHERE tname NOT IN
(SELECT DISTINCT tname FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno);
-- 方法二:
SELECT tname,depart FROM teacher LEFT JOIN course ON teacher.tno=course.tno
LEFT JOIN score ON score.cno=course.cno WHERE degree IS NULL; -- 36,查询至少有2名男生的班号。
SELECT class FROM student
GROUP BY class HAVING COUNT(ssex)>=2; -- 37,查询Student表中不姓“王”的同学记录。
SELECT * FROM student WHERE sname NOT LIKE '王%'; -- 38,查询Student表中每个学生的姓名和年龄。
SELECT sname 姓名,YEAR(NOW())-YEAR(sbirthday) 年龄 FROM student; -- 39,查询Student表中最大和最小的Sbirthday日期值。
SELECT MAX(sbirthday),MIN(sbirthday) FROM student;
SELECT MAX(sbirthday) FROM student UNION SELECT MIN(sbirthday) FROM student; -- 40,以班号和年龄从大到小的顺序查询Student表中的全部记录。
SELECT * FROM student ORDER BY class DESC,sbirthday ASC; -- 41,查询“男”教师及其所上的课程。
SELECT cname,tname FROM course JOIN teacher ON teacher.tno=course.tno
WHERE tsex='男'; -- 42,查询最高分同学的Sno、Cno和Degree列。
SELECT sno,cno,degree FROM score WHERE degree = (SELECT MAX(degree) FROM score); -- 43,查询和“李军”同性别的所有同学的Sname.
SELECT sname FROM student WHERE ssex IN
(SELECT ssex FROM student WHERE sname='李军'); -- 44,查询和“李军”同性别并同班的同学Sname.
SELECT sname FROM student WHERE
ssex IN (SELECT ssex FROM student WHERE sname='李军')
AND
class IN (SELECT class FROM student WHERE sname='李军'); -- 45,查询所有选修“计算机导论”课程的“男”同学的成绩表。
SELECT * FROM course JOIN score ON course.cno=score.cno
JOIN student ON student.sno=score.sno
WHERE cname='计算机导论' AND ssex='男';
-- 嵌套的思路

MySql练习+加源代码的更多相关文章

  1. Python连接MySQL的实例代码

    Python连接MySQL的实例代码   MySQLdb下载地址:http://sourceforge.net/projects/mysql-python/ 下载解压缩后放到%Python_HOME% ...

  2. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  3. MySQL 创始人:写代码比打游戏爽,程序员应多泡开源社区

     王练 发布于2017年09月04日 收藏 43   开源中国全球专享福利,云栖大会购票大返现!>>>   根据StackOverflow的最新调查,MySQL仍然是全世界最流行的数 ...

  4. MySQL复习值代码知识点(1)

    MySQL复习值代码知识点 一. 创建数据库 create database 数据库名: 二. 删除数据库 drop database 数据库名: 三. 选择相应的数据库 use 数据库名: 四. 创 ...

  5. mysql存储html代码之导出后无法导入问题

    我用mysql的text类型存储了一些html代码,然后用navicat for mysql导出,然后再次导入的时候,就死活导不进去. mysql提示的错误是:this saves the data  ...

  6. Java连接MySQl数据库实现代码

    1. 获取数据库连接和查询代码 package connectionmysql; import java.sql.Connection; import java.sql.DriverManager; ...

  7. Linux自动备份MySQL数据库脚本代码

    下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是, ...

  8. jdbc调用mysql存储过程实现代码带有输入和输出

    转载自 http://www.jb51.net/article/34747.htm 1. 创建存储过程 建立一个MySQL的存储过程 add_pro 复制代码代码如下: delimiter // dr ...

  9. SSM 配合 Mysql 数据库和代码数据源主从分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

随机推荐

  1. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  2. keytool生成证书与Tomcat SSL配置

    转自:http://tomhat.iteye.com/blog/2087673 一.Keytool介绍 Keytool是一个Java数据证书的管理工具.Keytool将密钥(key)和证书(certi ...

  3. Android 命名规范 (提高代码可以读性) 转

    转自:http://blog.csdn.net/vipzjyno1/article/details/23542617 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件 ...

  4. adb 卸载APP命令和杀死APP命令

    使用adb 卸载APP命令 在cmd命令行下,直接 输入 adb uninstall 包名 比如 adb uninstall com.ghstudio.BootStartDemo 杀死APP命令 先用 ...

  5. C++的那些事:你真的了解引用吗

    一.引用的本质是什么 说到引用,一般C++的教材中都是这么定义的: 1,引用就是一个对象的别名. 2,引用不是值不占内存空间. 3,引用必须在定义时赋值,将变量与引用绑定. 那你有没有想过,上面的定义 ...

  6. C# 中Datetime类用法总结

    收集了一些记录下来,这些有的是从网上找的,有些是自己使用到的: DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25dt.ToF ...

  7. nignx重启启动关闭

    http://www.cnblogs.com/jianxie/p/3990377.html 一.启动 cd usr/local/nginx/sbin ./nginx cd usr/local/ngin ...

  8. JDK的命令行工具

    Jcmd:综合工具 jcmd -l  列出当前运行的所有虚拟机 参数-l表示列出所有java虚拟机,针对每一个虚拟机,可以使用help命令列出该虚拟机支持的所有命令 jcmd [pid] help j ...

  9. js:数据结构笔记8--集合

    集合:唯一性,无序性: 基本结构: function Set () { this.dataStore = []; this.add = add; this.remove = remove; this. ...

  10. D FFF团的怒火

    Time Limit:1000MS  Memory Limit:65535K 题型: 编程题   语言: 无限制 描述 在信软学院,男女比例失衡已经是习以为常的事情. 在这样的一个学院,诞生了一个神秘 ...