背景
在公司需要用到数据库管理个人的一些信息,做简单的统计分析,我曾想过用Sqlite,但考虑到经常有内容要从Excel导入导出,觉得还是用原生的MS Access好一点。结果不用不知道,一用吓一跳,Access很难使,问题如下:
1 无法支持编辑SQL提示,需要手工输入字段名称
2 其编辑界面无法像Excel那样方便,能够批量粘贴
3 其查找功能也十分不爽,经常需要模糊查询的我需要在查询框中选择
想找一款能够基于MS Access数据库文件(毕竟已经有历史数据,而且也希望能够给别人Access的文件),又完全代替MS Access功能的。
----------华丽丽的分界线---------------
RazorSQL(http://www.razorsql.com/)
是一款用Java开发的工具,可以管理众多数据库。
DB2 | H2 | Microsoft Access | OpenBase | solidDB |
DBASE | HSQLDB | Mimer SQL | Oracle | SQL Anywhere |
Derby | Informix | MongoDB | Paradox | SQL Azure |
Filemaker | Ingres | MS SQL Server | Pervasive | Sybase (ASE) |
Firebird | Interbase | MySQL | PostgreSQL | Sybase IQ |
Frontbase | Int.Sys. Cache | Netezza | SimpleDB | Teradata |
Greenplum | JavaDB |
可以对数据库创建、删除表、增删改查,又有Query Builder可以较好的辅助写SQL。
缺点
对中文支持不是十分好,虽然以下博客对于RazorSQL支持中文的方式进行了说明:
http://blog.sina.com.cn/s/blog_3fba24680100xp67.html
PS:上述方法中,在设置Editor Font时,经常无法设置成功,进去看与设置不一致,但又好像生效了,比较诡异。
经过多次实验,知道可以调整jre的编码,也尅在Edit->preference中的“Query Results”和“Editor / GUI”中可以设置字符编码(一般设置成为GB18030)。
但是如果你的表里面有中文表名、中文字段名,查询还是可能出现乱码。
结论:如果你的数据库不是中文表名和字段名,可以一试。但是是要注册码的哦,至今未找到。
然后给予RazorSQL,又去找了一些类似的软件
http://alternativeto.net/software/razorsql/
Database Master(http://www.nucleonsoftware.com/DatabaseMaster.aspx)
左侧的树形结构,无法双击查看数据,比较怪异
可以区分Table和View,但是都需要点击工具条中的Tables和Views按钮,不方便。
展示数据后,无法再表格界面编辑,需要点击“Edit Data”在一个表单的界面编辑,不方便。
WinSQL
可以使用ODBC连接Access文件,Connection String写法我是参考www.connectionstrings.com
(DSN=MS Access Database;DBQ=【文件全路径】;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;)
WinSQL对中文的字段名称支持不好,其SQL编辑器貌似只支持英文宽度的字符,中文全都只有一半。
Database Browser(http://www.dbsoftlab.com/database-editors/database-browser/overview.html)
SQL编辑器也可以很好支持中文,也有Query Builder辅助编写
缺点:
1 tables(上图 )中将所有的表和视图都放在一起,连系统表也出来了,虽然可以查找,但不方便
2 无新增表功能,估计只能写SQL新增,因此无法完全替代MS Access
使用了那么多,仍然没有找到一个完美的工具,只能用回MS Access 。其实归根结底是因为表名或者字段中有中文,以上为抛砖引玉,根据实际情况使用吧。