1. 程式人生 > >MySql插入任何資料,查詢到的都是NULL

MySql插入任何資料,查詢到的都是NULL

初入程式設計,記錄自己的每一步

按照網上的教程安裝完成MySql-8.0.11

測試時沒有問題、建立資料庫、建立表、插入查詢都正常

隨後在使用過程中發現,新建的表可以正常插入資料;但是插入後查詢到的所有值都為NULL,而且欄位設定的是not null

沒多想,以為是編碼問題,導致中文無法插入 

試著插入英文和數字,結果查詢還是NULL

後來研究到原因:

在安裝完資料庫後,我查詢資料庫發現裡面自帶三個資料庫

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

其中一個是名稱叫mysql

強迫症作怪,mysql不是我該取的資料庫名稱嗎???我的資料庫,這名稱沒毛病,不能忍,你怎麼能就給我佔用了!

於是我默默的.....刪了!!!

刪........了!!

然後建立表後,就無法正常插入資料了

我解除安裝了MySql重新刪除服務,重新安裝了一次,這次保留了mysql這個資料庫。

插入資料正常,查詢正常;

順便去網上了解了一下這三個資料庫的作用:

1.information_schema:提供訪問資料庫元資料的方式。

元資料:關於資料的資料,如資料庫名或表名,列的資料型別,或訪問許可權等。

有些時候用於表述該資訊的其他術語包括“資料詞典”和“系統目錄”,在MySQL中,把 information_schema 看作是一個資訊資料庫。其中儲存著關於MySQL伺服器所維護的所有其他資料庫的資訊。如資料庫名,資料庫的表,表欄的資料型別與訪問權 限等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是檢視,而不是基本表,因此,你將無法看到與之相關的任何檔案。

2.mysql:MySql的核心資料庫,主要負責儲存資料庫的使用者、許可權設定、關鍵字等;mysql自己需要使用的控制和管理資訊。不可以刪除,如果對mysql不是很瞭解,也不要輕易修改這個資料庫裡面的表資訊。

3.performance_schema:用於監控MySql server在一個較低級別的執行過程中的資源消耗、資源等待等情況;這個功能預設是關閉的,需要設定引數performance_schema才可以啟動該功能,這個引數是靜態引數,只能寫在my.cnf 中 不能動態修改。

4.sys:系統資料庫,通過這個庫可以快速的瞭解系統的元資料資訊;

這個庫是通過檢視的形式把information_schema 和performance_schema結合起來,查詢出更加令人容易理解的資料

儲存過程可以執行一些效能方面的配置,也可以得到一些效能診斷報告內容

儲存函式可以查詢一些效能資訊