使用VS Code的MySQL擴展管理資料庫

我將在本文告訴你如何用VS Code的擴展程式管理MySQL資料庫,包括連接到MySQL、新建資料庫和表、修改欄位定義、簡單的查詢方法以及導入導出。

在許多情況下,我們需要隨時查看資料庫的記錄來確保程式是否正確執行。也有許多工具提供了可視化的介面來幫助我們實現這些功能,例如phpMyAdmin(需要安裝PHP和Web伺服器)、Navicat(強大的SQL管理工具,但需要商業授權),也有一些免費的工具可以使用,如Workbench、Sequel Pro、HeidiSQL等等。當然你也可以直接使用mysql控制台去完成所有工作。

但如果你正在使用VS Code來做主力開發,我還是推薦使用這上面的擴展程式來解決這些簡單的需求。首先的好處是免費,在錢包有限的情況下不要做破解白嫖黨;其次是功能簡單,這就意味著我們不需要花精力就能掌握它的使用。

安裝MySQL擴展

在VS Code的Extensions(擴展)中可以搜素到許多MySQL的管理工具,排名靠前的即可幾乎都可以滿足我們的簡單需求。搜索MySQL會出來許多相關工具,這裡我選擇了開發作者為cweijan的這個擴展,當然其他的工具也可以隨你喜歡去選擇。我一般關注這個工具的安裝量、評分和最後更新幾個指標。

搜索MySQL並點擊Install安裝該擴展

安裝完成後在你的VS Code介面活動欄便會出現該擴展的按鈕。該擴展有中文文檔,一些使用方法你可以直接從作者的文檔中了解,下面我記錄一些在開發中常用的MySQL操作。

添加一個MySQL連接

  1. 點擊選擇活動欄的Database圖標;
  2. 在之後打開DATABASE邊欄中點擊Add Connection圖標,打開connect編輯頁;
  3. 將你的連接資訊填到必填項,包括Host連接地址、Port埠號、Username用戶名以及Password密碼;其他可選項可根據需求實際填寫,例如需要顯示的資料庫名Showed Database(若不填則顯示所有)等;
  4. 最後點擊Conncet連接即可完成添加。

添加一個MySQL連接

成功添加一個MySQL連接後,該連接便會出現在側邊欄中。默認的連接名由host@port組成,例如localhost@3306。在連接名的右側分別是Refresh刷新圖標、New Database新建資料庫圖標和Open Terminal打開控制台圖標。

添加一個新資料庫

該插件沒有為我們提供添加資料庫的可視化UI,但我們依然可以方便的添加一個新的資料庫。

在側邊欄的MySQL連接名旁邊點擊New Database圖標會打開一個SQL編輯頁,並已經預先填好了創建新數據的語句:

CREATE DATABASE [name]
    DEFAULT CHARACTER SET = 'utf8mb4';

其中[name]為資料庫的名字,請按需求填寫。並為資料庫設置默認字符集,一般用默認的utf8mb4就好了。最後點擊編輯頁面上方的Run SQL執行該語句便可以成功添加一個資料庫了。

添加、修改表結構

類似的方法,展開剛建好的資料庫,在Table表分組的右側同樣有幾個功能按鈕,分別是Refresh刷新按鈕和Table按鈕。

點擊Table按鈕打開新建表的SQL編輯頁。該頁同樣為我們提供了新建表的SQL模板:

CREATE TABLE [name](  
    id int NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'Primary Key',
    create_time DATETIME COMMENT 'Create Time',
    update_time DATETIME COMMENT 'Update Time',
    [column] VARCHAR(255) COMMENT ''
) DEFAULT CHARSET UTF8 COMMENT '';

這裡借用Mybatis-Plus文檔的新建User表結構,新建一張保存用戶數據的表。

CREATE TABLE user
(
    id BIGINT(20) NOT NULL COMMENT '主鍵ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年齡',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱',
    PRIMARY KEY (id)
);

點擊編輯頁面上方的Run SQL執行該語句便可以成功添加一張表了,且該表會出現在Table分組下。

如果想對建好的表結構進行修改,可以直接右鍵該表,選擇Design Table來打開表結構編輯頁面。在該介面下可以修改表名、添加新的欄位、修改已有欄位和編輯索引。

數據表介面常用操作

單擊Table分組下的表明,可以打開表的數據查看介面。該介面由3部分組成,分別是SQL語句編輯框、常用操作按鈕組和數據表區域。打開數據表後默認使用圖中的SQL語句展示100條數據,如果需要根據條件查詢數據可以自行編輯該語句。點擊綠色的Excute sql按鈕可以執行該SQL語句。其他的操作如插入新數據、修改數據、刪除記錄和導出數據等都可以直接在介面中通過按鈕和直接編輯表格進行操作。

表數據查看介面

執行SQL操作

除了通過UI方式對錶和數據進行操作,我們還可以直接使用SQL語句對數據進行任何操作。有這樣幾種打開SQL編輯頁的方式:

  • 在側欄的資料庫名旁邊點擊Open Query按鈕,可以直接打開一個sql編輯頁面,輸入SQL語句後可以通過點擊右上角的Run Selected SQL來執行語句;
  • 在數據表名旁邊點擊Select Table SQL按鈕,可以直接打開一個sql編輯頁,並預置了數據查詢SELECT語句,通過編輯該語句可以對數據表的數據進行查詢;
  • 展開數據表名,會在邊欄列出所有欄位,點擊一個欄位名,會打開編輯該欄位的sql編輯頁,並預置了一條ALTER TABLE語句,通過編輯該語句可以對某列欄位的屬性進行修改。

導入和導出表結構和數據

在邊欄的資料庫名右鍵,會看到有幾個數據導入導出的按鈕:Export Data(導出數據)、Export Struct(導出表結構)和Import Sql(導入SQL)

在數據表名上右鍵,同樣有Export Data和Export Struct功能按鈕。

除了導入和導出數據,還可以生成模擬測試數據。在數據表名右鍵,選擇Generate Mock Data會打開mock.json編輯頁面,然後點擊右上角的Start Generate按鈕會自動在該表內根據mock.json的定義生成一些隨機數據。

其他擴展遇到的坑

在選擇其他MySQL擴展的過程中也遇到了一些使用問題,這裡記錄下以作提示。

SQLTools by Matheus Teixeira

這個插件採用主管理介面和資料庫驅動分離安裝的路子,先安裝SQLTools擴展後再安裝你所需要使用的資料庫驅動。方法是點擊擴展介紹介面中的作者名字,會在左側搜索欄篩選出作者的其他插件,選擇SQLTools MySQL/MariaDB並安裝便可以使該擴展支援MySQL資料庫了。

安裝SQLTools擴展的的MySQL驅動

除此之外,由於我的Ubuntu 20.04環境安裝的MySQL版本是8.0,因此在連接資料庫的時候會提示錯誤:

Request connection/GetChildrenForTreeItemRequest failed with message: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

該問題是由於這個MySQL驅動不支援MySQL 8的caching_sha2_password加密方式。如果你要繼續用這個插件,可以將資料庫的用戶加密改為mysql_native_password方式。更改方法我在之前的文章中也有說明,見安裝MySQL到Ubuntu 20.04

同時發佈於:使用VS Code的MySQL擴展管理資料庫