2020-07-15作业

2020-07-17  本文已影响0人  我就是那个无敌大长腿

1、如何暂停或开启mysql服务?

net stop mysql
net start mysql

2、如何用cmd命令登录mysql窗口

首先win+R后输入cmd进入cmd窗口后,切换盘符,进入到mysql所在的盘,然后查看mysql目录下的bin文件的位置,将位置复制到cmd窗口中,进入mysql,输入mysql -u用户名 -p密码即可登录到mysql窗口。

3、登录时mysql用到 -u \ -p 等参数,如何查看所有参数意思?

输入mysql --help可以查看所有参数的意思

习题

要求写一段 SQL 语句,查询出每个学生参加每一门科目测试的次数,结果按 student_id 和 subject_name 排序。




需要生成的结果如以下表所示

代码如下

select
a.student_id,
a.student_name,
b.subject_name,
count(c.subject_name)  as attended_exams
from students  as a
cross join subjects as b
left join examinations as c
on a.student_id = c.student_id
and b.subject_name = c.subject_name
group by a.student_id , b.subject_name
order by a.student_id , b.subject_name;

这里在第一次连接表时用了left join发现,Alex的考试次数无法计算,所以换了cross join来连接,就成功了。
这里学到了一个新的知识点,用到cross join交叉连接,,它们都返回被连接的两个表所有数据行的笛卡尔积,返回到的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。惟一的不同在于,交叉连接分开列名时,使用CROSS JOIN关键字而不是逗号。
举个例子:
test1



test2



交叉连接后

在本题中可以简单的理解为将每门科目与students连接,连接后在进行后续的分组聚合。
上一篇下一篇

猜你喜欢

热点阅读