sqlit3的常用命令

转自https://blog.csdn.net/aliankg/article/details/72472378

(1)创建数据库文件


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

[plain]  view plain  copy
  1. ~/test_sqlite$ sqlite3 test.db  

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

[plain]  view plain  copy
  1. sqlite> create table test_table (id integer primary key, name text, description text);  
  2. sqlite> .exit  

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

[plain]  view plain  copy
  1. ~/test_sqlite$ sqlite3 test.db  
  2. SQLite version 3.9.2 2015-11-02 18:31:45  
  3. Enter ".help" for usage hints.  
  4. sqlite> .tables  
  5. test_table  

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

[plain]  view plain  copy
  1. sqlite> .schema test_table  
  2. CREATE TABLE test_table (id integer primary key, name text, description text);  

向test_table中插入一些数据:

扫描二维码关注公众号,回复: 1094937 查看本文章
[plain]  view plain  copy
  1. sqlite> insert into test_table (id, name, description) values (0, 'name0', 'des0');  
  2. sqlite> insert into test_table (id, name, description) values (1, 'name1', 'des1');  
  3. sqlite> insert into test_table (id, name, description) values (2, 'name2', 'des2');  
  4. sqlite>   
  5. sqlite>   
  6. sqlite> select * from test_table;  
  7. 0|name0|des0  
  8. 1|name1|des1  
  9. 2|name2|des2  

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


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

[plain]  view plain  copy
  1. sqlite> .output test_table.sql  

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

[plain]  view plain  copy
  1. sqlite> .dump test_table  
重定向输出回标准命令行输出:

[plain]  view plain  copy
  1. sqlite> .output stdout  

查看test_table.sql文件内容:

[plain]  view plain  copy
  1. PRAGMA foreign_keys=OFF;  
  2. BEGIN TRANSACTION;  
  3. CREATE TABLE test_table (id integer primary key, name text, description text);  
  4. INSERT INTO "test_table" VALUES(0,'name0','des0');  
  5. INSERT INTO "test_table" VALUES(1,'name1','des1');  
  6. INSERT INTO "test_table" VALUES(2,'name2','des2');  
  7. COMMIT;  

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

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


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


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

[plain]  view plain  copy
  1. sqlite> BEGIN TRANSACTION;  
  2. CREATE TABLE test_table (id integer primary key, name text, description text);  
  3. INSERT INTO "test_table" VALUES(0,'name0','des0');  
  4. INSERT INTO "test_table" VALUES(1,'name1','des1');  
  5. INSERT INTO "test_table" VALUES(2,'name2','des2');sqlite>   
  6. COMMIT;  

查看表情况:

[plain]  view plain  copy
  1. sqlite> .tables  
  2. test_table  
  3. sqlite> select * from test_table;  
  4. 0|name0|des0  
  5. 1|name1|des1  
  6. 2|name2|des2  

看到表test_table被克隆恢复。

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

[plain]  view plain  copy
  1. sqlite> drop table test_table;  
  2. sqlite> .tables  
  3. sqlite>   
  4. sqlite> .read  test_table.sql  
  5. sqlite> .tables  
  6. test_table  
  7. sqlite> select * from test_table;  
  8. 0|name0|des0  
  9. 1|name1|des1  
  10. 2|name2|des2  

猜你喜欢

转载自blog.csdn.net/weixin_38451161/article/details/80253185