SQLite数据库导入和导出

  学习android开发快一个月了,手头上有个项目要用到SQLite数据库,所以在网上搜了下并结合自己的体会总结了一下关于SQLite数据库的导入和导出的知识。

  新建student.bat脚本文件和student.sql数据库文件,代码如下

student.bat

@ECHO OFF
C:
CD %HOMEPATH%/Desktop
SQLITE3 STUDENT.DB < student.sql //从student.sql文件提取数据导入并创建student.db
SQLITE3 STUDENT.DB .dump > student_result.sql  //从student.db导出数据并创建student_result.sql

student.sql

CREATE TABLE STUDENTS(
    ID INTEGER PRIMARY KEY,
    TEACHER_ID INTEGER,
    NAME TEXT NOT NULL,
    SEX CHAR NOT NULL);
INSERT INTO STUDENTS (ID, TEACHER_ID, NAME, SEX) 
    VALUES (11111111111, 22222222222, '张三', '男');
INSERT INTO STUDENTS (ID, TEACHER_ID, NAME, SEX) 
    VALUES (1111111111, 22222222222, '李四', '男');
INSERT INTO STUDENTS (ID, TEACHER_ID, NAME, SEX) 
    VALUES (1111111, 22222222222, '王五', '男');
.quit
注意这里在sql文件里输入了中文,新建txt文件时默认编码格式是ANSI,这样运行时会出错或者什么结果都没,所以应该把文件的编码格式都改成UTF-8,经过尝试,这里另存为UTF-8也不行,所以最好是用EditPlus来写txt里面的内容并转码成UTF-8。

运行student.bat后会出现两个文件 student.db和student_result.sql

student.db


student_result.sql

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE STUDENTS(
    ID INTEGER PRIMARY KEY,
    TEACHER_ID INTEGER,
    NAME TEXT NOT NULL,
    SEX CHAR NOT NULL);
INSERT INTO "STUDENTS" VALUES(1111111,22222222222,'王五','男');
INSERT INTO "STUDENTS" VALUES(1111111111,22222222222,'李四','男');
INSERT INTO "STUDENTS" VALUES(11111111111,22222222222,'张三','男');
COMMIT;
 

是不是发现和student.sql长得很像,其实两个文件是一样的,不信你把student_result.sql做导入文件试试。
上面是根据脚本创建SQLite数据库并导出,接下来看看从已知已经存在的SQLite数据库中导出sql文件方便随时恢复数据库。
这里以桌面上salesmanager.db为例
运行命令进入桌面路径



sqlite3命令打开salesmanager.db数据库


导出数据到sales.sql


这里最后一行的.output stdout一定不能掉,不然导出的sql文件为空,里面什么数据都没有。有了sal文件之后,可以随时按照上面已经提供的方法恢复数据库。

当然,有时候我们只需要SQLite里面的相关数据就行,只需要把最后三行代码修改一下就可以了。

这里把salesmanager.db中的productinfo表导出到productinfo.txt中,前面忘了说了,所有导出文件如不存在会自动创建。


所有文件导出导入都在桌面上进行,打开productinfo.txt发现所有数据都已经导入了,这可比手动一个个输入快多了,特别要注意的一点是倒数第二行后面必须跟分号,不然SQlite会认为命令没输完。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值