如何列出MySQL資料庫(分步程式碼教學)

如何列出MySQL資料庫(分步程式碼教學)配圖

MySQL是當今最廣泛使用的關係型資料庫管理系統(RDBMS)之一。它是一個強大的資料庫平臺,允許建立和管理可擴充套件的資料庫,主要使用結構化查詢語言(SQL)。

MySQL伺服器是資料庫所處的環境–也是它們被訪問的地方。作為一個伺服器管理員,你經常需要檢索這個環境的細節–列出伺服器上的資料庫,顯示特定資料庫的表,檢視使用者角色和許可權,訪問約束條件,等等。

本文將解釋如何通過命令提示符列出MySQL資料庫的詳情辦法。

  1. 列出MySQL資料庫的先決條件
  2. 在你的系統變數環境中新增MySQL路徑
  3. 登入到MySQL
  4. 顯示MySQL伺服器內的資料庫
  5. 過濾資料庫輸出的結果
  6. 使用資訊結構來查詢表後設資料
  7. 常見的問題和最佳做法
  8. 資料庫管理工具

列出MySQL資料庫的先決條件

你必須在你的本地機器上執行MySQL伺服器才能開始使用。如果你沒有MySQL,有幾種方法可以安裝它。

  • 安裝WAMPServer、XAMPP、MAMP或任何其他包括MySQL的軟體分發棧。
  • 直接從他們的官方網站下載並執行MySQL安裝程式,通過設定過程來配置和安裝MySQL伺服器和其他工具。

為了方便地使用命令列執行MySQL命令,你需要將MySQL可執行檔案的路徑新增到你的系統環境中。如果你使用選項二安裝了MySQL,這一步就沒有必要了,所以可以隨意跳過下一節。

將MySQL路徑新增到你的系統的變數環境中

如果你在Windows電腦上執行XAMPP或WAMP,本節將指導你把MySQL可執行路徑新增到你的系統變數環境中。

首先,啟動你的Windows檔案資源管理器並導航到此電腦。點選你安裝WAMP或XAMPP軟體包的驅動器(C:)。

如果你正在執行XAMPP,導航到xampp > mysql > bin,並複製bin資料夾的完整路徑。對於WAMP,通過{your-wamp-version} > bin > mysql > {your-mysql-version} > bin導航到其完整路徑。

bin資料夾的完整路徑

bin資料夾的完整路徑

點選 “Start“選單,搜尋 “path”。點選Edit the system environment variable

然後,點選Startup and Recovery(啟動和恢復)下的Environment Variables(環境變數),選擇PATH變數並點選編輯

接下來,點選 “新建“,貼上你的MySQL可執行檔案的完整路徑(你之前複製的)。

編輯環境變數

編輯環境變數

然後,通過單擊 “確定 “來儲存這些更改。

現在路徑已被新增,你可以在終端執行MySQL命令。

登入到MySQL

要列出MySQL資料庫,使用者必須被授權訪問所有資料庫,或者你必須設定一個全域性的SHOW DATABASES許可權,授予所有使用者訪問權。

在通過命令提示符登入之前,請確保你的MySQL伺服器正在執行。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mysql -u -p
mysql -u -p
mysql -u  -p

注意:用你的使用者名稱替換 u 。MySQL的預設使用者名稱是 root,而密碼是空的(預設沒有密碼)。

登入到MySQL

登入到MySQL

顯示MySQL伺服器中的資料庫

現在你已經登入了,你可以通過執行 SHOW DATABASES 命令列出伺服器中存在的MySQL資料庫。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SHOW DATABASES;
SHOW DATABASES;
SHOW DATABASES;

在返回資料中,你會得到儲存中存在的所有資料庫。

儲存的資料庫的列表

儲存的資料庫的列表

 

在返回的六個資料庫中,information_schemaperformance_schema是安裝MySQL時自動生成的預設資料庫。

information_schema 資料庫是一個不可修改的資料庫,它儲存了與資料庫和其他儲存在MySQL伺服器中的物件(檢視、使用者許可權、表、約束等)有關的所有資訊。

過濾資料庫輸出的結果

以前,你用 SHOW DATABASES返回MySQL伺服器上的所有資料庫,但你經常需要過濾資料庫輸出,主要是當伺服器上有許多資料庫時。

LIKE 子句根據一個指定的模式過濾 SHOW DATABASE 的結果。下面是一般的語法。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SHOW DATABASES LIKE '';
SHOW DATABASES LIKE '';
SHOW DATABASES LIKE '';

它必須是一個代表你想匹配的模式的字串。該字串必須以百分比符號(%)結尾,表示一個或多個字元。

例如,如果你想只顯示名稱以字母w開頭的資料庫,你可以通過執行以下程式來實現。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SHOW DATABASES LIKE 'w%';
SHOW DATABASES LIKE 'w%';
SHOW DATABASES LIKE 'w%';

下面是過濾後的結果。

使用'w%'過濾後的資料庫響應

使用’w%’過濾後的資料庫響應

使用資訊結構來查詢表後設資料

早些時候,你看到了 information_schema 資料庫如何在MySQL伺服器環境中儲存與資料庫、表和其他物件有關的所有資訊。

information_schema 資料庫利用schemata表來儲存所有資料庫的資訊。對於資料庫的過濾,你可以進行復雜的搜尋,以查詢特定資料庫的模式表。

例如,如果你想要那些名字以 “samp “或 “word “開頭的資料庫,你可以結合其他幾個子句來進行復雜查詢。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

下面是結果。

複雜查詢的結果

複雜查詢的結果

此外,你還有來自 information_schema 資料庫的tables表,它包含了所有表的資訊。同樣,你可以執行一個查詢,只檢索符合指定模式的表。

例如,下面的查詢只返回WordPress表的模式資訊–只返回名稱以 “wp_”開頭的表。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

結果是這樣的。

只有WordPress表的資訊結構的結果

只有WordPress表的資訊結構的結果

在 information_schema 中發現的其他表格包括columnsconstraintstable_constraintscheck_constraintsreferential_constraints

常見的問題和最佳做法

執行SQL時最常見的錯誤原因之一是沒有在語句的結尾使用分號。

另一個原因是使用無效的SQL語法或表/列名稱拼寫錯誤。為了避免這種情況,請交叉檢查表或列的名稱,確保其拼寫正確。請確保也要交叉檢查你的語法。

這裡有一些其他的最佳做法要記住。

對SQL關鍵詞使用大寫字母

當寫SQL程式碼時,總是對SQL關鍵字使用大寫字母,對錶名和列名使用小寫字母。這使你的程式碼更易讀,更不容易出錯。

所以,與其這樣:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
select * from information_schema.tables where table_name like 'wp_%';
select * from information_schema.tables where table_name like 'wp_%';
select * from information_schema.tables where table_name like 'wp_%';

不如這樣做:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

避免使用 SELECT *

避免在你的SQL查詢中使用SELECT *。你的請求是不明確的,因為你不能總是知道它將返回什麼。相反,指定你想從表中選擇的列。

所以,與其這樣:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT * EXCEPT(phone) FROM users.profile
SELECT * EXCEPT(phone) FROM users.profile
SELECT * EXCEPT(phone) FROM users.profile

不如這樣:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT name,
dob,
address,
country,
address,
FROM user.profile
SELECT name, dob, address, country, address, FROM user.profile
SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

縮排你的程式碼

最後,還有一個使查詢錯誤更容易的提示是縮排你的程式碼。這將使它更有可讀性。

資料庫管理器

另外,你可以選擇通過使用資料庫管理器來管理你的資料庫,而不用寫SQL。這允許使用者訪問資料庫管理功能,而不需要編寫SQL查詢。這個軟體連線到MySQL伺服器,並提供一個使用者介面來暴露資料庫的功能。一旦連線,使用者介面將顯示伺服器上的所有資料庫。各個管理工具的外觀和感覺各不相同,但過程是相似的。

使用Navicat管理MySQL

Navicat資料庫管理器

有幾個工具可供選擇,包括 phpMyAdmin 和 Adminer。我們對目前最受好評的幾款的MySQL資料庫管理工具進行了整理,具體如下:

MySQL Workbench

MySQL Workbench

Image: MySQL Workbench

甲骨文公司的MySQL Workbench是一個引人注目的GUI工具,來自開發和維護MySQL的同一家公司。正因為如此,使用者可以確信,它將與所有未來的MySQL迭代和功能一起工作。

MySQL Workbench允許你定義和管理連線引數、資料庫-伺服器連線以及組合查詢的執行。還包括一個表編輯器,它允許使用者輕鬆地改變列、索引、插入、選項、許可權、表、觸發器和分割槽。最後,MySQL Workbench允許使用者跨MySQL版本或在MySQL和其他資料庫系統之間遷移資料。

主要特點

  • 易於使用的介面
  • 支援Windows、macOS和Linux
  • 能夠檢視伺服器日誌和狀態

優點

  • 獲得GPL授權,可免費下載
  • 視覺化查詢和模式構建器
  • 因為這是唯一由MySQL維護和開發的SQL客戶端,你可以確信它將擁有所有最新的功能來反映MySQL的伺服器更新。
  • 使用EverSQL外掛,可以直接從IDE(整合開發環境)中優化SQL查詢。

缺點

  • 一些使用者報告了系統崩潰的情況
  • 大型查詢有時無法停止,必須強制關閉
  • 在某些情況下,整個應用程式必須被終止。

價格

MySQL Workbench的社羣版可以免費使用。然而,一些客戶可能選擇購買MySQL Workbench的標準版、企業版或叢集運營商級版本。這些版本的價格從2,140.00美元到64,200.00美元不等。

BeeKeeper Studio

BeeKeeper Studio

Image: BeeKeeper Studio

BeeKeeper Studio是一個開源的SQL編輯器,用於關係查詢,可用於一系列的資料庫型別,包括MySQL、PostgreSQL和SQLite。無論使用者是否連線到網際網路,BeeKeeper都可以使用。這對那些需要靈活使用資料庫和使用地點的企業來說是非常理想的。

BeeKeeper提供快速響應的參與標籤導航,無需在視窗之間切換,從而提高工作效率。BeeKeeper也致力於保護隱私,所以它最大限度地減少了收集使用者的資料量。

主要特點

  • 現代化的使用者介面
  • 提供自動完成的SQL查詢
  • 可離線工作,並可通過防火牆連線
  • 支援Windows、macOS和Linux。

優點

  • 支援多種資料庫型別,包括MySQL和PostgreSQL
  • 擁有一個龐大的貢獻者和追隨者社羣,它是免費和開源的
  • 在標籤之間切換很簡單
  • 我們在使用該軟體時沒有遇到任何滯後或問題
  • 允許你儲存和命名查詢,以便將來使用

缺點

  • 因為目前不支援某些資料庫,所以它不能作為一個全能的資料庫IDE來使用
  • 還沒有高階資料庫管理功能,如SQL轉儲恢復和資料遷移。
  • 目前不支援外掛,也沒有可用的社羣增強功能。

價格

BeeKeeper是免費使用的。但是,客戶可以選擇購買BeeKeeper Studio終極版的許可證,價格為99美元。

phpMyAdmin

phpMyAdmin
Image: phpMyAdmin

phpMyAdmin是另一個流行的基於PHP、基於網路的MySQL管理工具。這個軟體的設定和使用都很簡單,而且是免費的。資料庫管理員和架構師可以使用該應用程式來完成從簡單到複雜的工作,如建立多格式的資料庫視覺化。

它的基本功能使使用者無需瞭解MySQL就能開發可用的網站。它還提供了先進的功能,如多伺服器管理和逐例查詢(QBE),以支援更復雜的使用案例。使用者可以通過GUI執行普通操作,也可以直接執行更復雜的SQL語句的指令。

主要特點

  • 跟蹤資料庫和表的變化
  • 用80種不同的語言進行互動,包括從右到左和從左到右的語言
  • 能夠同時執行幾個伺服器

優點

  • 表、資料庫、欄位、檢視和索引都受到MySQL方法的支援,如瀏覽和刪除
  • 可以用各種格式匯入和匯出資料
  • 預先定義的函式和格式被用來轉換儲存的資料
  • 因為它是基於網路的,所以幾乎可以從任何計算機訪問它
  • 易於設定和使用

缺點

  • 它不能與任何資料庫一起使用,因為它只支援MySQL和MariaDB
  • 雖然它支援傳統的伺服器和系統,但它的發展並沒有跟上當前行業的要求。

價格

phpMyAdmin是免費使用的。

dbForge Studio for MySQL

dbForge Studio

Image: dbForge Studio

dbForge Studio是一個IDE中的多功能GUI工具。它為MySQL資料庫的開發和管理提供了廣泛的特性和功能。

通過dbForge Studio,使用者可以建立和執行查詢,使用簡單明瞭的介面評估表資料,設計和除錯儲存例程,自動化資料庫物件管理,等等。其複雜的編碼功能還允許您開發和編輯程式碼配置檔案,從而產生乾淨、標準化的程式碼。CRUD生成器還可以生成DELETE、INSERT、SELECT和UPDATE查詢的結果指令碼到SQL檔案。

主要特點

  • 建立、執行和排除查詢的故障
  • 備份嚮導可以進行預定的資料庫備份
  • 自動的資料庫維護和分析

優點

  • 新手和高階使用者都可以使用的簡單介面
  • 內建的查詢分析器允許你對你的查詢進行分析並與其他查詢進行比較
  • 通過拖放建立你自己獨特的查詢和資料庫模式
  • 語法完成和檢查器很好
  • 完整的資料庫使用者和許可權管理的選項
  • 允許儲存程式碼片斷
  • 支援大型SQL檔案,無需開啟它們

缺點

  • 沒有免費版本;價格比許多替代品高
  • JSON檢視器在某些方面過於簡單(例如,沒有辦法摺疊或擴充套件資料塊)
  • 當大量的連線被開啟時,使用者聲稱自動完成功能在某些情況下會停止工作

價格

  • 標準版:179.95美元
  • 專業版:299.95美元
  • 企業版:399.95美元

Navicat for MySQL
Image: Navicat for MySQL

Navicat for MySQL 是一個強大的 MySQL GUI 工具,可以在任何時候自動儲存和共享你的連線設定、模型和查詢到 Navicat Cloud。你可以用查詢生成器編寫和編輯查詢,只需要有限的 SQL 知識,而不用擔心語法問題。

Navicat 提供通過 SSH(安全殼)隧道連線到 MySQL 資料庫的能力。SSH 通道允許堅固的認證和加密機制,主機可以在不影響安全的情況下彼此遠端通訊。它還通過支援廣泛的資料格式來促進資料移動。

主要特點

  • 提供微軟Excel、TXT、XML、JSON和其他格式的資料輸出
  • 提供資料生成和視覺化工具
  • 支援Windows、macOS和Linux系統

優點

  • 使用者介面直觀,使用簡單
  • 如果你沒有為遠端連線開啟預設埠,你可以使用SSH隧道來訪問MySQL資料庫
  • 安排資料庫工作,如備份、恢復和報告生成
  • 可以從ODBC、Microsoft Excel和Access、DBF、TXT、CSV、XML和JSON檔案匯入資料
  • 視覺化的模式和查詢生成器
  • 訂閱版允許團隊成員協作和分享搜尋、連線等。

缺點

  • 專業版的價格很高
  • 在Linux上使用Wine來執行IDE,這使其速度變慢
  • 一些使用案例需要開啟一個新的標籤/視窗,消費者認為這是一個耗時的操作。

價格

  • 標準版:每年179.99美元
  • 企業版:每年215.88美元
  • 永久版:每個許可證349.00美元

DBeaver

DBeaver

Image: DBeaver

開發人員和資料庫管理員都利用DBeaver,因為它是一個開源的、跨平臺的SQL資料庫GUI工具。有了這個平臺,你可以很容易地對你的資料進行全文檢索,利用GUI生成過濾的表格和顯示。

將它連線到你的本地資料庫的方法相當簡單,你不需要任何先前的CLI經驗來使用它。

這個程式可以匯入和匯出各種檔案格式的資料,包括CSV、HTML、XML、JSON、XLS和XLSX。這個工具還可以用來為資料庫或模式建立ER(實體關係)圖。

主要特點

  • 資料分析圖表允許對查詢進行視覺化表示
  • 模擬資料生成器(在企業版中可用)以更簡單的方式生成測試用的有效資料
  • 視覺化查詢生成器使複雜的資料庫設計更容易,對於理解表之間的關係非常有用。

優點

  • DBeaver可以連線到任何有JDBC驅動的資料庫,包括MariaDB、Sybase、SQLite、Oracle、SQL Server、DB2、MS Access、Firebird、Teradata和Apache Hive。
  • 表編輯器使得改變表、列、索引、觸發器、選項、許可權、插入和分割槽以建立多個資料檢視變得容易。
  • 支援Windows、Linux和MacOS

缺點

  • 處理大型資料集時可能會很慢
  • 偶爾會出現錯誤
  • 有時大型查詢必須被強制殺死
  • 在某些情況下,必須終止整個應用程式。

價格

  • 免費
  • 精簡版:10美元(每月訂閱)至99美元(永久許可)
  • 企業版:23美元(每月訂閱)至230美元(永久許可證)。
  • 終極版:起價為440美元的永久許可證

SQLyog

SQLyog
Image: SQLyog

SQLyog是一個具有視覺化資料設計和比較工具的資料庫管理應用程式。你可以使用SQLyog輕鬆連線到你的資料庫。

這個平臺對你所有的資料進行加密,從SQL語句的格式化到快速的資料檢索。如果你沒有為遠端連線開啟預設埠,你可以使用SSH隧道來訪問MySQL資料庫。這些功能對於在使用該工具時維護你的系統安全很有價值。

SQLyong使使用者能夠安排備份,自動進行資料匯出和同步,並從任何ODBC源向MySQL匯入外部資料。

然而,SQLyong與Mac OS X或Linux不相容–它只能在Windows下下載。如果你是一個Linux或Mac OS X使用者,這個產品不適合你。

主要特點

  • 模式優化器和索引分析器允許你分析哪些資料被儲存在表中
  • 使用SSH隧道來很好地操縱你的MySQL伺服器,即使假設MySQL埠被封鎖或不允許遠端訪問
  • 執行多執行緒查詢,可選擇同時執行多個查詢。

優點

  • 現代、創新和可定製的使用者介面
  • 建立模式表、約束和查詢的視覺化表示
  • 可以安排備份、恢復、電子郵件通知和其他任務
  • 快速和一致
  • 資料和模式同步工具執行良好
  • 終極版中包含了一個良好的資料比較工具

缺點

  • 專業版的價格很高
  • 一些使用者報告說偶爾會出現程式問題
  • 缺乏對MySQL以外的資料庫的支援
  • 沒有原生的Linux或Mac支援
  • 不支援在多個標籤之間進行拖放操作

價格

  • SQLyog Ultimate:每個使用者299美元
    SQL Diagnostic Manager for MySQL:每臺伺服器每年399美元

DronaHQ

DronaHQ

Image: DronaHQ

DronaHQ是一個低程式碼開發平臺,允許你建立MySQL圖形使用者介面、管理面板、儀表板和自定義應用程式,而無需高階編碼經驗。

你可以建立全功能的MySQL圖形使用者介面,執行CRUD操作,通過RESTGraphQL API連線到任何東西,在表格、圖表和JSON瀏覽器中檢視資料,並使用所見即所得的UI編輯器和預建的UI控制元件自動完成任務。通過DronaHQ,你可以通過在平臺上建立互動式GUI工具來快速檢查、更新和分析資訊,無論你喜歡列表、表格還是圖表。

主要特點

  • 即時連線到MySQL資料庫,提供一個直觀的拖放介面,以快速建立自定義的MySQL前臺
  • 視覺化生成器使用簡單。可重複使用的控制元件,如圖表、表格網格、列表、詳細檢視、按鈕、表單欄位和自定義UI控制元件,在建立完美的使用者介面時可以節省更多的時間。

優點

  • 只需點選幾下,你就可以通過REST或GraphQL API連線到MySQL和幾乎任何其他東西。
  • 當你需要基於執行時定義的標準進行伺服器端過濾時,使用這個視覺化查詢生成器來查詢你的SQL/NoSQL資料庫
  • 你可以從任何終端使用者的門戶訪問你的資料庫GUI–網頁、平板電腦或手機
  • 所有(基於使用的)價格水平允許無限數量的使用者
  • 如果你需要與更多的終端使用者分享工具/應用程式,你可以授予基於角色的訪問許可權,以限制誰有檢視許可權、編輯許可權、刪除許可權等。

缺點

  • 由於DronaHQ在建立時沒有考慮到MySQL,它缺乏一些功能,如實時查詢除錯。
  • 現在只有大約50個DB(資料庫)聯結器可用,但更多的聯結器即將推出。

價格

  • 開發者:免費
  • 初學者:每月100美元(每年計費)。
  • Business:每月500美元(按年計費)。
  • Enterprise:自定義定價

小結

作為一名伺服器管理員,你需要能夠有效和準確地檢索關於你的MySQL伺服器上的資料庫的詳細資訊。檢視伺服器上有哪些資料庫,檢視特定的表和其中的資訊,以及訪問有關使用者角色和許可權的資訊,這些都是至關重要的任務。幸運的是,從你的命令列使用SQL可以使這一切變得輕而易舉。

評論留言