八款免费 & 开源的 SQL 客户端,你值得拥有!

指针苔原
• 阅读 6441

访问和修改数据库等操作虽然令人生畏,但却是必不可少的。过去,访问数据库的唯一方式就是通过命令行,这样不仅不够直观,也容易出错,酿成大事。好在经过几十年发展,已经出了很多带有可视化界面 (GUI) 的数据库图形客户端工具能够帮助简化「管理数据库」,他们中也不乏开源 & 免费的工具,今天看看有哪些可供选择。

八款免费 & 开源的 SQL 客户端,你值得拥有!

SQL Chat

SQL Chat 是 SQL 客户端中最年轻的选手,把 SQL 客户端从传统的 GUI-based 带入了 CUI (Chat-based UI) 阶段:它背后接入了 ChatGPT 来帮你写 SQL。用户可以通过 sqlchat.ai 直接访问,也可以通过 Docker 进行私有化部署,支持的数据库包括 MySQL,PostgreSQL 和 MSSQL。

不久前,SQL Chat 在 Product Hunt 上正式发布后,收获了大量关注,以至于公司的 OpenAI Quota 一度被薅秃😭。

八款免费 & 开源的 SQL 客户端,你值得拥有!

DBeaver

DBeaver 是一款老牌 SQL 客户端,除了基本的可视化和管理能力,它还有 SQL 编辑器,数据和模式迁移能力,监控数据库连接等等,支持的数据库(SQL 和 NoSQL)种类相当齐全。DBeaver 也已经接上了 GPT-3,可以把自然语言转换成 SQL。

八款免费 & 开源的 SQL 客户端,你值得拥有!

值得一提的是,DBeaver 不久前刚宣布了 6M 美金的种子轮融资 (https://techcrunch.com/2023/04/11/dbeaver-takes-6m-seed-inves...),新闻稿提到 DBeaver 有超过 8M 用户,5000+ 付费用户,也是成立公司十年后的第一次融资。

Beekeeper Studio

Beekeeper Studio 是款很摩登(颜值高)且轻量级的 SQL 客户端,支持 MySQL,Postgres,SQLite,SQL Server 等,可用于 Linux,Mac 和 Windows 平台。

八款免费 & 开源的 SQL 客户端,你值得拥有!

Beekeeper Studio 的作者是名个人开发者,他不是名 DBA,但经常要使用 Spark,Hadoop,Ansible, AWS 等数据工具,因为没能找到简单易行的跨平台 SQL 客户端,所以 2019 年他开始打造 Beekeeper Studio,花了近一年晚上和周末时间后,在 2020 年初推出了第一个版本。

DbGate

DbGate 支持多平台:在 Windows,Linux,Mac,浏览器中都能 work,功能上也没有什么妥协。支持了 SQL 和 noSQL 数据库,包括 MySQL,PostgreSQL,SQL Server,MongoDB,SQLite,CockroachDB 等等。他的进阶功能包括模式比较,可视化查询设计器,图表可视化或批量导出和导入,和许多基于外键的数据浏览功能。

八款免费 & 开源的 SQL 客户端,你值得拥有!

DbGate 的作者表示这是他的 passion project,因为他没找到适合 Linux 的 SQL 客户端,他过去曾为 Windows 打造过 SQL 客户端,所以这也是受到了自己工作经验的影响,之后才给 DbGate 增加了 noSQL 的支持。

Sqlectron

Sqlectron 是一个简洁且轻量级的 SQL 客户端桌面端和终端,它也具有跨数据库(PostgreSQL, Redshift, MySQL, MariaDB, SQL Server, Cassandra, SQLite)和平台(Mac, Linux, Windows)支持。

八款免费 & 开源的 SQL 客户端,你值得拥有!

和前两个工具故事神似的是,Sqlectron 的原作者建造这个客户端的原因也是因为市面上没有找到好用且能解决他们痛点的工具(简单的,轻量级的,跨数据库和平台支持的 SQL 客户端桌面),不过作者 2018 年表示换工作后就没有使用过 SQL 数据库了,在 GitHub 也开了 Issue 找继承者,似乎有人(半)接手了,最近一次 release 在去年五月。

HeidiSQL

HeidiSQL 也是个轻量级 SQL 客户端,支持的数据库包括 MariaDB, MySQL, MS SQL, PostgreSQL, SQLite, Interbase 和 Firebird。除了基本 SQL 客户端的功能,用户还可以将结构和数据导出为 SQL 文件,或复制到剪贴板或其他服务器上。

八款免费 & 开源的 SQL 客户端,你值得拥有!

HeidiSQL 的代码库最初来自作者自己的 MySQL-Front 2.5 软件,但他后来把 MySQL-Front 品牌卖了,作者于是把他的项目重新命名为 HeidiSQL 作为替代并且维护至今。

phpMyAdmin

phpMyAdmin 诞生于 1998 年,使用 PHP 编写,是一个非常老牌且经典的 SQL 客户端,是当时 LAMP 和 MAMP 的默认工具,只要是做 PHP 项目就会用 phpMyAdmin。如今已经发展成为管理 MySQL 和类 MySQL 数据库(比如 MariaDB)的最主要工具之一,每月有超过 20 万的直接下载量(还有无数的用户使用预包装安装或使用软件包管理器安装)。

八款免费 & 开源的 SQL 客户端,你值得拥有!

pgAdmin 4

pgAdmin 之于 PostgreSQL = phpMyAdmin 之于 MySQL,它可以在 Linux,Unix,macOS 和 Windows上使用,以管理 PostgreSQL。最新的 pgAdmin 4 使用 Python 和 Javascript/jQuery 完全重写了 pgAdmin,更新了很多用户界面元素、多用户/网络部署选项、dashboard 的设计,相比 pgAdmin 3 有了很大改进,旨在满足各个阶段 PostgreSQL 用户的需求(无论是新手还是老手)。

八款免费 & 开源的 SQL 客户端,你值得拥有!

查了一下 pgAdmin 历史,作者也是因为当时(90 年代末)管理 PostgreSQL 的唯一选择在 Windows 上不太 work,于是自己从头设计了新的工具:pgAdmin。在之后的 20+ 年,pgAdmin 也随着发展经过多次迭代,不过作者还是留在了项目的一线。

总结一下

我们主要从工具历史来了解了一些比较出名的开源 SQL 客户端,而非产品体验、功能完整度这些维度(那些老牌 SQL 客户端经过 20 年锤炼不会太差?)。看起来大多数工具的作者还是因为当时的市面上没能找到完全符合自己需求的产品,不过之后的故事大相径庭:有的商业化了,有的持续靠爱发电,有的则因为重心变化,逐渐淡出了社区。

而随着 ChatGPT 的走红,接下来会不会出现更多类似 SQL Chat 这样基于 Chat 交互的开源 SQL 客户端呢,让我们一起期待一下 😚


💡 你可以访问官网 https://www.bytebase.com/,免费注册云账号,立即体验 Bytebase。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
4年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
4年前
Django之Django模板
1、问:html页面从数据库中读出DateTimeField字段时,显示的时间格式和数据库中存放的格式不一致,比如数据库字段内容为2012082616:00:00,但是页面显示的却是Aug.26,2012,4p.m.答:为了页面和数据库中显示一致,需要在页面格式化时间,需要添加<td{{dayrecord.p\_time|date:
Stella981 Stella981
4年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
指针苔原
指针苔原
Lv1
我不怕万人阻挡,我只怕自己投降。
文章
2
粉丝
0
获赞
0