我将在本文告诉你如何用VS Code的扩展程序管理MySQL数据库,包括连接到MySQL、新建数据库和表、修改字段定义、简单的查询方法以及导入导出。

在许多情况下,我们需要随时查看数据库的记录来确保程序是否正确执行。也有许多工具提供了可视化的界面来帮助我们实现这些功能,例如phpMyAdmin(需要安装PHP和Web服务器)、Navicat(强大的SQL管理工具,但需要商业授权),也有一些免费的工具可以使用,如Workbench、Sequel Pro、HeidiSQL等等。当然你也可以直接使用mysql控制台去完成所有工作。

但如果你正在使用VS Code来做主力开发,我还是推荐使用这上面的扩展程序来解决这些简单的需求。首先的好处是免费,在钱包有限的情况下不要做破解白嫖党;其次是功能简单,这就意味着我们不需要花精力就能掌握它的使用。

安装MySQL扩展

在VS Code的Extensions(扩展)中可以搜素到许多MySQL的管理工具,排名靠前的即可几乎都可以满足我们的简单需求。搜索MySQL会出来许多相关工具,这里我选择了开发作者为cweijan的这个扩展,当然其他的工具也可以随你喜欢去选择。我一般关注这个工具的安装量、评分和最后更新几个指标。

安装完成后在你的VS Code界面活动栏便会出现该扩展的按钮。该扩展有中文文档,一些使用方法你可以直接从作者的文档中了解,下面我记录一些在开发中常用的MySQL操作。

添加一个MySQL连接

  1. 点击选择活动栏的Database图标;
  2. 在之后打开DATABASE边栏中点击Add Connection图标,打开connect编辑页;
  3. 将你的连接信息填到必填项,包括Host连接地址、Port端口号、Username用户名以及Password密码;其他可选项可根据需求实际填写,例如需要显示的数据库名Showed Database(若不填则显示所有)等;
  4. 最后点击Conncet连接即可完成添加。

成功添加一个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数据库了。

除此之外,由于我的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扩展管理数据库的


扫描二维码,在手机上阅读!