1、如何暫停或開啟mysql服務(wù)?
net stop mysql
net start mysql
2、如何用cmd命令登錄mysql窗口
首先win+R后輸入cmd進(jìn)入cmd窗口后,切換盤符,進(jìn)入到mysql所在的盤,然后查看mysql目錄下的bin文件的位置,將位置復(fù)制到cmd窗口中,進(jìn)入mysql,輸入mysql -u用戶名 -p密碼即可登錄到mysql窗口。
3、登錄時mysql用到 -u \ -p 等參數(shù),如何查看所有參數(shù)意思?
輸入mysql --help可以查看所有參數(shù)的意思
習(xí)題
要求寫一段 SQL 語句,查詢出每個學(xué)生參加每一門科目測試的次數(shù),結(jié)果按 student_id 和 subject_name 排序。



需要生成的結(jié)果如以下表所示

代碼如下
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發(fā)現(xiàn),Alex的考試次數(shù)無法計算,所以換了cross join來連接,就成功了。
這里學(xué)到了一個新的知識點,用到cross join交叉連接,,它們都返回被連接的兩個表所有數(shù)據(jù)行的笛卡爾積,返回到的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。惟一的不同在于,交叉連接分開列名時,使用CROSS JOIN關(guān)鍵字而不是逗號。
舉個例子:
test1

test2

交叉連接后

在本題中可以簡單的理解為將每門科目與students連接,連接后在進(jìn)行后續(xù)的分組聚合。