我遇到一个.db文件的实际问题,它的大小约为20gb,有三个表和其余的数据。
我在Mac上,所以我不得不使用一些糟糕的应用程序,但它不会在Access中打开。
有没有人知道什么软件会生成.db文件?哪些软件允许我打开它并将其导出为CSV或MySQL文件?
此外,如果连接在传输过程中被中断,这会影响文件吗?
答案 0 :(得分:4)
由于mac现在是基于BSD的,尝试打开一个终端并执行命令file /path/to/large/db
- 它应该告诉你至少DB是什么文件类型,从那里你可以确定要使用哪个程序打开它。它可能是MySQL,可能是PostGreSQL,可能是SQLite - 文件会告诉你。
示例:
$ file a.db
a.db: SQLite 3.x database
$ file ~/.kde/share/apps/amarok/mysqle/amarok/tracks.{frm,MYD,MYI}
~/.kde/share/apps/amarok/mysqle/amarok/tracks.frm: MySQL table definition file Version 10
~/.kde/share/apps/amarok/mysqle/amarok/tracks.MYD: data
~/.kde/share/apps/amarok/mysqle/amarok/tracks.MYI: MySQL MISAM compressed data file Version 1
所以这是SQLite v3?然后尝试
sqlite3 /path/to/db
您可以从CLI执行几乎标准的SQL。 At the CLI, you can type .tables
to list all the tables in that DB。 - 或者如果您更喜欢GUI,this question中列出了一些选项。接受的答案是SQLite manager for Firefox。
然后,您可以根据需要drop tables或delete。
以下是将csv转储到stdout的示例:
$ sqlite3 -separator ',' -list a.db "SELECT * FROM t"
3,4
3,5
100,200
并将其存储到文件中 - > operator将输出重定向到您命名的文件:
$ sqlite3 -separator ',' -list a.db "SELECT * FROM t" > a.csv
$ cat a.csv # puts the contents of a.csv on stdout
3,4
3,5
100,200
-separator ','
表示字段应以逗号分隔; -list
表示使用分隔符将行数据放在同一行上; a.db
表示要使用的数据库;而"SELECT * FROM t"
只是要执行的SQL命令。
答案 1 :(得分:0)
我不是Mac用户,但如果它是一个SQLite文件,我听说过有关Base的好消息。