Mysql數據庫環境搭建過程
一、 安裝包準備
安裝包資源下載鏈接:https://pan.baidu.com/s/16gxnmlJmVsSbsRGTa0jTFw
提取碼:fixb
二、客戶端工具程序準備
資源包下載同上
三、安裝mysql數據庫
- 解壓安裝程序
- 配置環境變量
(1) 新增 MYSQL_HOME D:\software\mysql\mysql-5.6.31-winx64
(2) 添加Path ;%MYSQL_HOME%\bin - 以管理員身份運行cmd,進入到安裝目錄的bin下,執行下面操作
- 初始化 : 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,這兩個文件在初始化的時候會重新生成 - 重新執行初始化
- 註冊服務: mysqld --install MySQL
- 啓動服務:net start mysql
- 登錄: mysql -uroot -p ,執行後會要求輸入密碼,第一次登錄時直接按回車即可登錄
登錄成功後顯示:
- 修改密碼: set password for root@localhost = password(‘123456’);、
- 關閉服務: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