2021开始用DBeaver连接各种数据库:强烈推荐这款免费开源的通用数据库工具

平常用微软的SQL Server(MSSQL)数据库最多,用的是微软的SQL Server Management Studio (SSMS) 客户端,免费的。

Oracle使用频率次之,用的是它自家的Oracle SQL Developer,也是免费的。

MySQL数据库使用的最少,用得是以前介绍过的SQLyog,免费试用版,过期了也不用了。

最近又要连接MySQL数据库了,听说Navicat for MySQL不错,企业版永久授权活动价也就1600多块钱。但用得实在不多,就懒得买了。

在捣鼓Ubuntu Server的虚拟机下Ngnix的过程中,安装了Ubuntu Desktop版本,通过其App Store找到了DBeaver CE(Community Edition社区版),评价很高,并且免费开源。

在Ubuntu下体验了一下,还挺不错,支持很多数据库,使用时自动下载相应的数据库驱动。

于是在Windows下就正式启用了,下载的速度不快,官网是:DBeaver Community | Free Universal Database Tool

这款软件定位是免费开源的通用数据库工具:为开发者、数据库管理员、分析师和所有需要使用数据库的人提供免费的多平台数据库工具。支持所有流行的数据库:MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL Server、Sybase、MS Access、Teradata、Firebird、Apache Hive、Phoenix、Presto等。

软件是基于Java开发的,所以支持跨平台:Linux、Windows、Mac都支持。除了社区版和企业版,它还有云端的基于浏览器的版本。

安装后首次运行会问你要不要创建一个SQLite的示例数据库,用于探索软件。这个引导功能做的挺赞,必须赞一下。

我试了访问MySQL、SQL Server,体验挺不错的,第一时间就把过期的SQLyog删除了。

后续我会深度用一下它的MySQL和Oracle连接数据库,请关注后续更新。

如果你也有类似管理MySQL的需要,不妨试试这款DBeaver:非常强大易用的数据库管理和开发工具。

Oracle中如何获取当年第几周、第几天,当月第几周、第几天等

最近弄有关标签上的日期码DATECODE,遇到了自动生成的问题,这个呢可以在C#程序中根据日期自动生成,也可以通过数据库生成。今天先介绍下数据库生成,这里用Oracle数据库。

先来说一下需求:日期格式需要取年的后两位+月份转为A-L+当月第几周,如21I1就是今天的日期码。

相应的Oracle SQl语句如下:

SELECT TO_CHAR(SYSDATE, 'YY')||
DECODE(TO_CHAR(SYSDATE,'MM'),'01','A','02','B','03','C','04','D','05','E','06','F','07','G','08','H','09','I','10','J','11','K','12','L','MM')||
TO_CHAR(SYSDATE,'W') AS DATECODE FROM DUAL;

可能你会问,这个周是9月份的第二个周了,为啥显示为第1周?

有必要把一些常用的SQl解释下。

SELECT TO_CHAR(SYSDATE, 'w') FROM DUAL; --1个月中的第几周
(从每月1号开始算,日期+6天为每1周结尾)
SELECT TO_CHAR(SYSDATE, 'ww') FROM DUAL; --1年中的第几周(每年1月1日为第1周开始,日期+6天为每1周结尾)
SELECT TO_CHAR(SYSDATE, 'iw') FROM DUAL; --1年中的第几周(星期一至星期日算1周,且每年的第一个星期一为第1周)
SELECT TO_CHAR(SYSDATE, 'd') FROM DUAL; --1周的第几天
SELECT TO_CHAR(SYSDATE, 'day') FROM DUAL; --当前日期是星期几,可设置显示英文还是中文
SELECT TO_CHAR(SYSDATE, 'ddd') FROM DUAL; --1年中第几天
SELECT TO_CHAR(SYSDATE,'q') FROM DUAL; --1年中第几季度