MySQL學習記錄(導入Excel表到數據庫,並篩選條件輸出)


附上:重置mysql賬號密碼方法

ubuntu系統下mysql重置密碼和修改密碼操作 - skh2015java的博客 - CSDN博客(改完重啟,登錄mysql要root/sudo權限)

Centos7重置Mysql 8.0.1 root 密碼 - 網絡螞蟻 - 博客園
php7訪問mysql8.0的配置

學習MySQL,我個人覺得最好的方法就是獲得一個稍微大的數據庫數據並通過這個數據庫來學習基本操作和優化。所以我把平時學校發下來的個人信息xls/xlsx文件拿來用了。

 在這里推薦一個學習的好地方(比W3C和菜鳥教程好)https://www.shiyanlou.com/courses/9 課程以LINUX為基礎,其實比Windows爽多了,學得更多

當然如果沒有賬號,請點這里注冊:我正在實驗樓擼代碼,你也快來!800+編程實戰教程,無需搭環境,直接練習!用我的鏈接注冊,你我都能獲得3個實驗豆!http://www.shiyanlou.com/register?inviter=NTY0MzE5OTkwNjI1

像我這等窮人,可以篩選他免費的課程:https://www.shiyanlou.com/courses/?fee=free

學到上面挑戰1部分后再看下面吧

 

首先是注意事項:

 

 

 

 

 然后就安裝工具

--圖形化工具--》

SQLyog

社區版免費(當然功能沒有專業/企業版全):

Downloads · webyog/sqlyog-community Wiki  (GITHUB下載地址)

(為什么不去官網下載?因為被DNS污染)

 

安裝語言可選中文

 

附上:

mysql8.0 caching_sha2_password加密方式和5.0之前的區別和解決方案 - 快樂的傻子愛編程 - CSDN博客

【MySQL基礎】mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded - 東陸之滇CSDN - CSDN博客 

 試着復制別的軟件的caching_sha2_password.dll到目錄,報了其他的錯

既然不支持更安全的加密模式?那可能就不適合我這種追求新特性的人了。Bye~

 

Navicat(推薦)

官網下載:Navicat | 下載 Navicat Premium 14 天免費 Windows、macOS 和 Linux 的試用版

破解方法:Navicat Premium 12.1.16.0安裝與激活 - 簡書

 

 

建立數據庫-右擊數據庫導入數據,選擇excel文件

 (了解一下這個軟件的菜單欄: "窗口" "查詢")

導入成功后我們稍微修正一下(設計表),然后就點上面的查詢

注:以下以表名代替你建立的表的名字

SELECT * FROM `表名`;

查詢單個表里的內容:

SELECT * FROM `283班` WHERE 性別= '';
/*
*  table表名(283班)要用反引號`包起來,字符串(女)用單或雙引號'  "
*  column鍵(性別)不能加引號


* 總結: 庫表反引,字符串正引,鍵不引
*/

 

查詢多個表的內容

SELECT

 *

FROM

 `表名1`,

 `表名2`,

 `表名2`

WHERE

 性別="女";

從3個表 選擇查詢(SELECT)  並篩選(WHERE)    性別為女的人的  所有信息(*)

 然后發現報錯:1052 大概是說WHERE子句條件不明確(因為我們沒告訴系統要篩選哪一張表的性別)MySql: Column 'XXXX' in field list is ambiguous 錯誤 - 鄧曉暉 - 博客園 

所以我們先去掉WHERE子句試試,結果......我這個數據庫是整個院系的信息,查詢時導致內存爆了.... (當然內存占滿對硬件應該是沒有破壞力的)

算了,不能作死...

所以我們用UNION

 1 /*當然可以給性別加上表名,如 WHERE 281班.性別='女' ,但我有十多張表,不如下面復制粘貼后修改班級名來得快*/
 2 
 3 SELECT *
 4 FROM `281班`
 5 WHERE 性別=''
 6 
 7 UNION
 8 
 9 SELECT *
10 FROM `282班`
11 WHERE 性別=''
12 
13 UNION
14 
15 
16 SELECT *
17 FROM `283班`
18 WHERE 性別=''
19 
20 UNION
21 
22 SELECT *
23 FROM `284班`
24 WHERE 性別=''
點開我看

報錯:> 1222 - The used SELECT statements have a different number of columns           > 時間: 0.002s

然后從這篇得到啟發: sql語句之union與join的區別 - 揚空 - 博客園 

看了一下我的數據庫幾個表,發現EXCEL導入時多了一些NULL的Column,這些字段數量(即列的數量)不一樣多,導致UNION無法拼接查詢結果,所以刪了多余的NULL列,

【切記】 一定要保存后才能查詢成功  Navicat並不是修改后查詢就會保存的(有沒有保存可以查看Navicat窗口菜單欄,里面有星號的表都是沒有保存的。)未保存的表沒有生效修改,查詢只會查到之前的結果

最終查詢成功!

返回了所有女生的信息... (我TM才發現Excel表里的性別排序被人動過,除了性別其他都是對的....發表的人一定是故意的....)

                                             (數據庫沒有錯,是導入的Excel文件本來就是假的....................)

 

 

關於Navicat的操作:   

當然,要"注意運行當前語句"與"運行"的區別

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM