• SQLite 通过.sql文件导入导出数据


    (1)创建数据库文件

    无需手动创建db文件,直接在命令行执行:

    ~/test_sqlite$ sqlite3 test.db

    进入SQLIte命令行,直接使用标准SQL建表:

    sqlite> create table test_table (id integer primary key, name text, description text);
    sqlite> .exit

    看到对应目录下,db文件“test.db”已经被自动创建。再打开,检查一下刚刚创建的表:

    ~/test_sqlite$ sqlite3 test.db
    SQLite version 3.9.2 2015-11-02 18:31:45
    Enter “.help” for usage hints.
    sqlite> .tables
    test_table

    当然,还可以用schema命令查看一下更详细的信息:

    sqlite> .schema test_table
    CREATE TABLE test_table (id integer primary key, name text, description text);

    向test_table中插入一些数据:

    sqlite> insert into test_table (id, name, description) values (0, ‘name0’, ‘des0’);
    sqlite> insert into test_table (id, name, description) values (1, ‘name1’, ‘des1’);
    sqlite> insert into test_table (id, name, description) values (2, ‘name2’, ‘des2’);
    sqlite>
    sqlite>
    sqlite> select * from test_table;
    0|name0|des0
    1|name1|des1
    2|name2|des2

    (2)利用dump命令导出数据库表到文件

    首先,重定向sqlite输出到文件。同样不需要手动创建文件,直接给出文件名即可:

    sqlite> .output test_table.sql

    利用dump命令,将数据导出到文件。如果dump不带参数,则导出整个数据库:

    sqlite> .dump test_table

    重定向输出回标准命令行输出:

    sqlite> .output stdout

    查看test_table.sql文件内容:

    PRAGMA foreign_keys=OFF;
    BEGIN TRANSACTION;
    CREATE TABLE test_table (id integer primary key, name text, description text);
    INSERT INTO “test_table” VALUES(0,‘name0’,‘des0’);
    INSERT INTO “test_table” VALUES(1,‘name1’,‘des1’);
    INSERT INTO “test_table” VALUES(2,‘name2’,‘des2’);
    COMMIT;

    dump命令将数据库对象导出成SQL格式:数据库定义语言(DDL)和数据操作语言(DML)命令,这些信息可以帮助我们重建数据库对象和其中的数据,可以说是完整地重现整个表。

    从test_table.sql文件内容可以看到,其中包含了DDL——create table,DML——insert values,并且在一个数据库事务中完成。

    (3)利用read命令导入数据

    利用(2)中导出的数据库dump信息,批量执行其中的SQL:

    sqlite> BEGIN TRANSACTION;
    CREATE TABLE test_table (id integer primary key, name text, description text);
    INSERT INTO “test_table” VALUES(0,‘name0’,‘des0’);
    INSERT INTO “test_table” VALUES(1,‘name1’,‘des1’);
    INSERT INTO “test_table” VALUES(2,‘name2’,‘des2’);sqlite>
    COMMIT;

    查看表情况:

    sqlite> .tables
    test_table
    sqlite> select * from test_table;
    0|name0|des0
    1|name1|des1
    2|name2|des2

    看到表test_table被克隆恢复。

    可以用read命令来直接读取(2)中dump导出的文件test_table.sql,完成数据库导入:

    sqlite> drop table test_table;
    sqlite> .tables
    sqlite>
    sqlite> .read test_table.sql
    sqlite> .tables
    test_table
    sqlite> select * from test_table;
    0|name0|des0
    1|name1|des1
    2|name2|des2

    转自: https://blog.csdn.net/rrrrrr89098087/article/details/109309016

  • 相关阅读:
    [PTA练习] 愿天下有情人都是失散多年的兄妹(25分)
    sql server远程连接非1433端口
    java把double转化为long型
    StringUtils工具类
    JfreeChart折线图
    Log4j配置
    Ibatis,Spring整合(注解方式注入)
    Spring中的autowire属性(转)
    MyBatis3入门样例
    struts2 ibatis Spring系统架构图
  • 原文地址:https://www.cnblogs.com/ylz8401/p/16300281.html
Copyright © 2020-2023  润新知