3.1 问题:查询所有学生的学号、姓名、选课数、总成绩。
1)将问题翻译成大白话:
学号、姓名可以从学生表student中查询;选课数即每个学生的选课数目是多少,选课信息可从成绩表score中查询,按学号进行分组,然后对课程号进行计数count;总成绩即每个学生的总成绩,可从成绩表score中查询,按学号进行分组,然后对成绩进行求和sum。
即查询所有学生的学号、姓名,每个学生的选课数目、每个学生的总成绩。
2)分析思路
SELECT 查询结果【学号,姓名,选课数,总成绩】
FROM 从哪张表查询【学生表student,成绩表score,两个表如何联接?通过学号 用哪种联接?左联接】
WHERE 查询条件【没有】
Group by 分组【每个学生的选课数目:按学号分组,对课程号计数count;每个学生的总成绩:按学号分组,对成绩求和sum】
HAVING 对分组指定条件【没有】
Order by 对查询结果排序【没有】
Limit 从查询结果中取出指定行【没有】
3)对应的SQL语句
SELECT a.学号,a.姓名,count(b.课程号) as 选课数,sum(b.成绩) as 总成绩
FROM student as a LEFT JOIN score as b
on a.学号 = b.学号
GROUP BY a.学号;
4)运行结果
3.2 问题:查询平均成绩大于85的所有学生的学号、姓名和平均成绩
即: 查询出所有学生的学号、姓名(从学生表student中查询),平均成绩(从成绩表score中查询,按学号分组,求平均成绩avg(成绩)),并对分组指定条件(平均成绩>85),两个表使用左联接(left join)。
对应的SQL语句及运行结果:
3.3 问题:查询学生的选课情况:学号,姓名,课程号,课程名称
查询学生的学号、姓名(从学生表student中查询),程号、课程名称(从课程表course中查询),学生表和课程表通过成绩表建立关系,学生表和成绩表通过学号联接,成绩表和课程表通过课程号联接。
对应的SQL语句及运行结果:
java https 实现双向认证
一、生成根证书颁发机构的密钥库
keytool -genkeypair -v -keystore root.p12 -storetype pkcs12 -storepass 123456 -alias 我是根证书 -keyalg RSA -keysize 2048 -validity 36500 二、生成服务器密钥库
keytool -genkeypair -v -keysto