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

附上:重置mysql帳號密碼方法php

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

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

學習MySQL,我我的以爲最好的方法就是得到一個稍微大的數據庫數據並經過這個數據庫來學習基本操做和優化。因此我把平時學校發下來的我的信息xls/xlsx文件拿來用了。mysql

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

固然若是沒有帳號,請點這裏註冊:我正在實驗樓擼代碼,你也快來!800+編程實戰教程,無需搭環境,直接練習!用個人連接註冊,你我都能得到3個實驗豆!http://www.shiyanlou.com/register?inviter=NTY0MzE5OTkwNjI1github

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

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

 

首先是注意事項:數據庫

 

 

 

 

 而後就安裝工具編程

--圖形化工具--》

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的操做:   

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

相關文章
相關標籤/搜索