首先,说一下,在导入文件之前需做好的准备工作以避免乱码现象的出现
将test.csv文件以记事本的方式打开,将第一行数据删除,在另存为的下方选择编码方式UTF-8,按照下述步骤即可完成文件的导入问题。
进入sqlite命令
运行cmd命令,然后使用adb shell命令进入Linux命令,使用adb命令的前提是已经配置好了相关的环境变量。进入linux命令后可以用ls命令查看系统文件,然后用cd命令改变目录以致最终进入数据库文件目录,使用sqlite3 test.db就进入了sqlite的命令操作。
具体的操作的实现过程:cmd-adb shell-cd data/data/your.package.name/databases-sqlite3 test.db
之后就是使用sql语言,必须以分号“;”结束
下面正式进入文件导入和导出的操作:
以下是进入sqlite3命令后的一些常用操作及解释
>.databases //显示所有数据库 和 mysql的 show databases;
>.tables //显示当前数据库的表格 和 mysql 的show tables;
>.schment tablename; //显示表格结构 和mysql的 SHOW Create TABLE tbl_name
>.output c://1.sql //导出当前数据库的 sql语句 和mysql的 mysqldump
>.dump
>.import c://1.sql //导入 //mysql 用source
===================
关于导入
命令: .importsqlite> .import 文件名 表名
注1: 不要忘了开头的点
注2: 这条语句不能用分号结束. 非SQL不需要分号结束.
注3: 需要查看默认的分隔符separator. 必须一致. 如果不一致可能导致sqlite字段分割错误.
查看分隔符使用命令 .show , 如果不一致可直接修改, 比如:
sqlite>.separator ","
将分隔符转为逗号.
举例1:
将sdcard文件a.csv中的数据导入表 table_name. (test.csv中字段以逗号分割)
sqlite> .separator ","
sqlite> .import /mnt/sdcard/test.csv tab_name
sqlite>
导入结束.
关于导出
实现方式: 将输出重定向至文件.命令: .output
sqlite> .output test.txt
然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件.
结束后,输入
sqlite> .output stdout
将输出重定向至屏幕.
举例2:
将 tab_xx 中的数据导出到文件test.txt
sqlite> .output test.txt
sqlite> select * from table_name;
sqlite> .output stdout
导出完毕.
关于文件导入乱码问题可参考:http://blog.csdn.net/johnnycode/article/details/7413111