不说废话,直接上干货!
1. 首先打开要保证本地已经装了mysql, 然后打开终端,启动mysql 如下:
2. 然后创建一个库,在库里面创建对应的表结构和数据(也可自行修改表结构和数据),
CREATE TABLE `students` (`Sid` varchar(11) NOT NULL,`Sname` varchar(20) DEFAULT NULL,`Sage` int(11) DEFAULT NULL,PRIMARY KEY (`Sid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;插入数据:INSERT INTO `students` VALUES ('s01', ' 巧虎 ', '18');INSERT INTO `students` VALUES ('s02', ' 琪琪 ', '19');INSERT INTO `students` VALUES ('s03', ' 桃乐比 ', '18');INSERT INTO `students` VALUES ('s04', ' 圆圆 ', '17');INSERT INTO `students` VALUES ('s05', ' 美美 ', '20');INSERT INTO `students` VALUES ('s06', ' 多比 ', '25');
CREATE TABLE `teachers` (`Tid` varchar(11) NOT NULL,`Tname` varchar(20) DEFAULT NULL,PRIMARY KEY (`Tid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;插入数据:INSERT INTO `teachers` VALUES ('1', ' 汪老师 ');INSERT INTO `teachers` VALUES ('2', ' 小朋老师 ');INSERT INTO `teachers` VALUES ('3', ' 皮皮老师 ');INSERT INTO `teachers` VALUES ('4', ' 熊五郎老师 ');INSERT INTO `teachers` VALUES ('5', ' 微微老师 ');INSERT INTO `teachers` VALUES ('6', ' 天天老师 ');
CREATE TABLE `courses` (`Cid` varchar(11) NOT NULL,`Cname` varchar(20) DEFAULT NULL,`Cteacher` varchar(20) DEFAULT NULL,PRIMARY KEY (`Cid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;插入数据:INSERT INTO `courses` VALUES ('c01', ' 美术 ', ' 汪老师 ');INSERT INTO `courses` VALUES ('c02', ' 音乐 ', ' 小朋老师 ');INSERT INTO `courses` VALUES ('c03', ' 体能 ', ' 皮皮老师 ');INSERT INTO `courses` VALUES ('c04', ' 自行车 ', ' 熊五郎老师 ');INSERT INTO `courses` VALUES ('c05', ' 钢琴 ', ' 微微老师 ');
CREATE TABLE `results` (`id` int(11) NOT NULL AUTO_INCREMENT,`Sid` varchar(11) DEFAULT NULL,`Cid` varchar(11) DEFAULT NULL,`Cscore` varchar(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;插入数据:INSERT INTO `results` VALUES ('1', 's01', 'c01', '58');INSERT INTO `results` VALUES ('2', 's01', 'c02', '59');INSERT INTO `results` VALUES ('3', 's01', 'c03', '55');INSERT INTO `results` VALUES ('4', 's02', 'c02', '83');INSERT INTO `results` VALUES ('5', 's02', 'c05', '79');INSERT INTO `results` VALUES ('6', 's02', 'c04', '77');INSERT INTO `results` VALUES ('7', 's03', 'c01', '55');INSERT INTO `results` VALUES ('8', 's03', 'c03', '81');INSERT INTO `results` VALUES ('9', 's03', 'c04', '73');INSERT INTO `results` VALUES ('10', 's04', 'c01', '67');INSERT INTO `results` VALUES ('11', 's04', 'c02', '78');INSERT INTO `results` VALUES ('12', 's04', 'c03', '82');INSERT INTO `results` VALUES ('13', 's04', 'c05', '80');INSERT INTO `results` VALUES ('14', 's05', 'c01', '61');INSERT INTO `results` VALUES ('15', 's04', 'c04', '78');
1. 查询并统计同龄学生人数
select Sage,count(*) from students group by Sage;
2.
查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
select Cid,avg(Cscore) from results group by Cid order by avg(Cscore),Cid desc ;
3. 按平均成绩从高到低显示所有学生的平均成绩
select Sid,avg(Cscore) from results group by Sid order by avg(Cscore) desc;
4.
查询各科成绩最高分、最低分和平均分:以如下形式显示:课程
ID
,课程
name
,最高分,最低
分,平均分
select r .Cid 课程 ID,c .Cname 课程 name,max(r .Cscore ) 最高分 ,min(r .Cscore ) 最低分,avg(r .Cscore ) 平均分 from results r inner join courses c on r .Cid = c .Cid group by 课程 ID;
5.
按各科平均成绩从低到高顺序排序
select Cid,avg(Cscore) from results group by Cid;
6.
查询学生的总成绩并进行排名
select Sid,sum(Cscore) from results group by Sid order by sum(Cscore) desc ;
7.
检索至少选修两门课程的学生学号
select Sid, count (Cid) from results group by Sid having count (Cid) >= 2 ;
8.
查询出只选修了一门课程的全部学生的学号和姓名
select r .Sid ,s .Sname from results r inner join students s on r .Sid = s .Sid group by r .Sid having count (r .Cid ) = 1 ;
9.
查询每门课都在
70
分以上的学生
id
select Sid from results group by Sid having min(Cscore) > 70 ;
10.
查询课程编号为
"c01"
且课程成绩在
60
分以上的学生的学号和姓名
select r .Sid ,s .Sname from results r inner join students s on r .Sid = s .Sid where r .Cid = 'c01' and r .Cscore > 60 ;
11.
查询平均成绩大于
60
分的同学的学号和平均成绩
select Sid,avg(Cscore) from results group by Sid having avg(Cscore)> 60 ;
12.
查询所有同学的学号、姓名、选课数、总成绩
select r .Sid ,s .Sname , count (r .Cid ),sum(r .Cscore ) from results r inner join students s on r .Sid = s .Sid group by r .Sid ;