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:非常强大易用的数据库管理和开发工具。

Loading

如何解决MSSQL自增字段突然增大1000中的自增跳跃问题?

昨天看服务器提示有补丁升级,就重启了一下服务器。可是今天用户反馈一个记录的Id跳了1000开始,心想这下是不是程序的bug,或者有数据丢失了?

赶紧查,虽是虚惊一场,但还是要吐槽下微软的MSSQL 2012,这个变化居然成了默认设置,开始学Oracle那套Sequence的做法了。

参考了这篇文章:https://www.codeproject.com/Tips/668042/SQL-Server-2012-Auto-Identity-column-Value-Jump-Issue

用了方法2进行了全局设置,不想因为这个改程序,还得升级SQL Server版本。

设置方法如下:
1、打开Sql Server Configuration配置管理器
2、左侧点击Sql Server服务
3、右侧右键点击SQL Server(MSSQLSERVER)
4、点击启动参数
5、在参数里输入 -T272 ,然后点击增加
6、点击确定,手动重启服务后生效

2019年7月14日更新:

参数不能小写,一定要用大写的-T272才能生效。

Loading

微软MSSQL(SQL Server)的版本及Express版的连接字符串

今天体验了一下SQL SERVER 2017 Express版本,将MSSQL 2008 R2的数据库附加到新版本,发现从2008跳到2017的中间版本还真多。

另外大家熟知的SQL2000应该是80,SQL2005为90。

以前没用过Express版本,对于C#程序的Web.config的数据库连接字符串有点变化需要注意:比如说公用一台服务器的时候可以用.也可以用(local),还可以用127.0.0.1,但是如果是Express版就要用.\sqlexpress或者(local)\sqlexpress或者127.0.0.1\sqlexpress这种表示。如果你是独立的数据库服务器,你只需要改一下对应的服务器IP或名称即可,别忘了开启MSSQL的远程访问。

Loading

SQL中如何删除一个表中重复的纪录

忙中偷闲,整理了30772个汉语成语,但是在整理的过程中药删除大概1025条重复的数据,这些数据应该是在采集整理的过程中网络中断造成的重复。

下面的就是一条简单的语句用来删除一个表中重复的记录:

DELETE FROM ChengYu WHERE (ID NOT IN (SELECT ID = MIN(ID) FROM ChengYu GROUP BY name))

DELETE FROM Table WHERE (KeyID NOT IN (SELECT KeyID = MIN(KeyID) FROM Table GROUP BY Name))

Loading

Web开发中涉及的数据库连结方式

今天开始了解[URL=http://www.riacn.com]RIA[/URL]的一些知识,无意之间看到了一些提问者对数据库连结方式的提问,然后从网络上搜索了一下,整理在这里,希望对新手有帮助。

第一种叫做DSN-less,也就是不用DSN (Data Source Name,数据源名称)的联机方式。
这种方法是通过系统的ODBC驱动程序来连接数据库,ODBC就像翻译人员一样,让我们用同一种沟通方式来指挥不同的数据库,但是它的效率较差一些
ACCESS
“DRIVER={Microsoft Access Driver(*.mdb)};DBQ=数据库的完整路径”
Microsoft SQL数据库
“Driver={SQL Server};Server=服务器名称;Database=数据库名称;uid=登入名称;pwd=密码;”
MySQL数据库
“Driver={mysql};Database=数据库名称;uid=登入名称;pwd=密码;”
Oracle数据库
“Driver={Microsoft ODBC for Oracle};Server=数据库名称;uid=登入名称;pwd=密码;”

第二种叫做OLE DB Connection,OLE DB Connection(OLE DB联机)称为自定义联机字符串方式,它不需经由ODBC联机,效果也比较好

ACCESS
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库的完整路径;User id=登入名称;Password=密码;”
Microsoft SQL数据库
“Provider=SQL OLEDB;Data Source=服务器名称;Initial Catalog=数据库名称;User id=登入名称;Password=密码;”
Oracle数据库
“Provider=OraOLEDB.Oracle;Data Source=数据库名称;User id=登入名称;Password=密码;”

第三种是系统DSN方式,这种对于网络开发应用不大,以前的C/S结构的程序用的较多,比如我原来使用的IERP5.2系统,就是使用了系统DSN,每个客户端都生成一个系统数据源,然后ERP客户端程序调用这个数据源。

以后的开发可能使用最多的是MsSQL和Oracle数据库,同时选择较好的连接方式:OLE DB
1、“Provider=OraOLEDB.Oracle;Data Source=数据库名称;User id=登入名称;Password=密码;”
2、“Provider=SQL OLEDB;Data Source=服务器名称;Initial Catalog=数据库名称;User id=登入名称;Password=密码;”

Loading