Mysql安裝教程和sql練習題(windows環境,內附Mysql安裝包和客戶端安裝包)

Mysql數據庫環境搭建過程

一、 安裝包準備

安裝包資源下載鏈接:https://pan.baidu.com/s/16gxnmlJmVsSbsRGTa0jTFw
提取碼:fixb

二、客戶端工具程序準備

資源包下載同上

三、安裝mysql數據庫
  1. 解壓安裝程序
  2. 配置環境變量
    (1) 新增 MYSQL_HOME D:\software\mysql\mysql-5.6.31-winx64
    (2) 添加Path ;%MYSQL_HOME%\bin
  3. 以管理員身份運行cmd,進入到安裝目錄的bin下,執行下面操作
  4. 初始化 : mysqld --initialize --user=mysql --console
    可能會出現異常,如下圖:
    在這裏插入圖片描述
    報錯信息主要如下:
發現報錯信息爲:
[ERROR] InnoDB: .\ibdata1 can't be opened in read-write mode
[ERROR] InnoDB: The system tablespace must be writable!
ps:此處錯誤不解決,在啓動服務時會失敗
解決方案:
  • 通過任務管理器終止mysqld進程
  • 打開mysql安裝目錄下的data文件夾,重命名這2個文件:ib_logfile0 和
    ib_logfile1,這兩個文件在初始化的時候會重新生成
  • 重新執行初始化
  1. 註冊服務: mysqld --install MySQL
  2. 啓動服務:net start mysql
  3. 登錄: mysql -uroot -p ,執行後會要求輸入密碼,第一次登錄時直接按回車即可登錄

登錄成功後顯示:
在這裏插入圖片描述

  1. 修改密碼: set password for root@localhost = password(‘123456’);、
  2. 關閉服務:net stop mysql
四、安裝mysql客戶端

解壓文件安裝即可,過程省略。。。。

放大招

如果上述過程中出現錯誤,解決不了。直接把解壓後的安裝路徑下的文件全部刪除,重新解壓再次按照上述步驟執行即可安裝成功,親測有效

--------------------------------------------------------------------------------------------------------------------------------------

mysql語句練習彙總

一、建表語句和數據準備請自行下載,地址爲

   GitHub地址: https://github.com/BigData404/tools
   文件爲: mysql-create_tables_insert_data.txt

二、練習題

#查詢"01"課程比"02"課程成績高的學生的信息及課程分數

SELECT stu.*,a.`score`,b.`score` FROM t_students stu
LEFT JOIN t_score a ON stu.`stu_id`=a.`stu_id` AND a.`course_id`=1
LEFT JOIN t_score b ON stu.`stu_id`=b.`stu_id` AND b.`course_id`=2
WHERE a.`score` < b.`score`

#查詢平均成績大於等於60分的同學的學生編號和學生姓名和平均成績

SELECT b.*,a.ss AS '平均成績' FROM
(SELECT stu_id,AVG(score) AS ss FROM t_score GROUP BY stu_id HAVING AVG(score)<=60) a
LEFT JOIN t_students b ON a.`stu_id`=b.`stu_id`

#查詢所有同學的學生編號. 學生姓名. 選課總數. 所有課程的總成績

SELECT a.stu_id,a.stu_name,b.aa,b.bb
FROM t_students a
LEFT JOIN (SELECT stu_id,COUNT(course_id) AS aa,SUM(score) AS bb FROM t_score GROUP BY stu_id) b ON a.`stu_id`=b.`stu_id`

#查詢學過"貝吉塔"老師授課的同學的信息

SELECT * FROM 
t_students a
LEFT JOIN t_score b ON a.`stu_id`=b.`stu_id`
LEFT JOIN t_courses c ON b.course_id=c.course_id
LEFT JOIN t_teachers d ON c.teacher_id=d.teacher_id
WHERE d.teacher_name<>'貝吉塔'

#查詢學過編號爲"01"並且也學過編號爲"02"的課程的同學的信息

SELECT * FROM t_students stu
JOIN (SELECT * FROM t_score WHERE course_id=1) a ON stu.`stu_id`=a.`stu_id`
JOIN (SELECT * FROM t_score WHERE course_id<>2) b ON a.`stu_id`=b.`stu_id`

#查詢沒有學全所有課程的同學的信息

SELECT * FROM 
(SELECT stu_id,COUNT(DISTINCT course_id) AS con FROM t_score GROUP BY stu_id ) a 
LEFT JOIN t_students c ON a.stu_id=c.stu_id
LEFT JOIN (SELECT COUNT(DISTINCT course_id) AS conn FROM t_courses)  b ON a.con=b.conn 
WHERE b.conn IS NULL

#查詢和"01"號的同學學習的課程完全相同的其他同學的信息

SELECT a.*,c.* FROM 
(SELECT stu_id,GROUP_CONCAT(course_id) AS g2  FROM `t_score` WHERE stu_id<>1 GROUP BY stu_id ) a
LEFT JOIN (SELECT stu_id,GROUP_CONCAT(course_id) AS g1 FROM `t_score` WHERE stu_id=1 GROUP BY stu_id) b ON a.g2=b.g1
LEFT JOIN t_students c ON a.stu_id=c.stu_id
WHERE b.`stu_id` IS NOT NULL

#查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績

SELECT * FROM
(
SELECT b.`stu_id`,AVG(b.`score`) FROM 
(SELECT stu_id,COUNT(1) FROM `t_score` WHERE score<60 GROUP BY stu_id HAVING COUNT(1)>1) a
LEFT JOIN t_score b ON a.`stu_id`=b.`stu_id`
GROUP BY b.`stu_id`
) aa 
LEFT JOIN t_students c ON aa.`stu_id`=c.stu_id

#檢索"01"課程分數小於60,按分數降序排列的學生信息

SELECT * FROM `t_score` aa
LEFT JOIN t_students c ON aa.`stu_id`=c.stu_id
WHERE score<60 AND course_id=1
ORDER BY score DESC 
發佈了10 篇原創文章 · 獲贊 12 · 訪問量 1901
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章