【数据库】sqlite3数据库备份、导出方法汇总

一、准备工作

0、安装SQLite3
1)ubuntu命令安装(不是最新版本)
sudo apt install sqlite3
2)源码安装(可以安装最新版本)

下载:
https://www.sqlite.org/download.html
sqlite-autoconf-3300100.tar.gz(2.72 MiB)
编译:

./configure
make
sudo make install

默认安装在/usr/local/bin下

1、创建数据库

sqlite3 <数据库文件名>

$ ls
$ sqlite3 test.db
SQLite version 3.11.0 2016-02-15 17:29:24
Enter ".help" for usage hints.
sqlite>
2、创建表格
CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(50) NOT NULL,age INT
);

注意:

1> 在MySQL中自增关键词是AUTO_INCREMENT,在sqlite3中使用无效
2> 自增类型必须是 INTEGER,不能是 INT,否则报错:Error: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY
3> 主键自增定义时注意关键词的顺序:INTEGER PRIMARY KEY AUTOINCREMENT,要按照这个顺序。
3、插入数据
INSERT INTO test (name, age) VALUES ('XiaoHong', 18);
INSERT INTO test (name, age) VALUES ('XiaoMing', 19);
4、查询
SELECT * FROM test;
1|XiaoHong|18
2|XiaoMing|19

二、sqlite3命令总结

1、命令列表
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail on|off           Stop after hitting an error.  Default OFF
.binary on|off         Turn binary output on or off.  Default OFF
.changes on|off        Show number of rows changed by SQL
.clone NEWDB           Clone data into NEWDB from the existing database
.databases             List names and files of attached databases
.dbinfo ?DB?           Show status information about the database
.dump ?TABLE? ...      Dump the database in an SQL text formatIf TABLE specified, only dump tables matchingLIKE pattern TABLE.
.echo on|off           Turn command echo on or off
.eqp on|off            Enable or disable automatic EXPLAIN QUERY PLAN
.exit                  Exit this program
.explain ?on|off|auto? Turn EXPLAIN output mode on or off or to automatic
.fullschema            Show schema and the content of sqlite_stat tables
.headers on|off        Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indexes ?TABLE?       Show names of all indexesIf TABLE specified, only show indexes for tablesmatching LIKE pattern TABLE.
.limit ?LIMIT? ?VAL?   Display or change the value of an SQLITE_LIMIT
.load FILE ?ENTRY?     Load an extension library
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:ascii    Columns/rows delimited by 0x1F and 0x1Ecsv      Comma-separated valuescolumn   Left-aligned columns.  (See .width)html     HTML <table> codeinsert   SQL insert statements for TABLEline     One value per linelist     Values delimited by .separator stringstabs     Tab-separated valuestcl      TCL list elements
.nullvalue STRING      Use STRING in place of NULL values
.once FILENAME         Output for the next SQL command only to FILENAME
.open ?FILENAME?       Close existing database and reopen FILENAME
.output ?FILENAME?     Send output to FILENAME or stdout
.print STRING...       Print literal STRING
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.save FILE             Write in-memory database into FILE
.scanstats on|off      Turn sqlite3_stmt_scanstatus() metrics on or off
.schema ?TABLE?        Show the CREATE statementsIf TABLE specified, only show tables matchingLIKE pattern TABLE.
.separator COL ?ROW?   Change the column separator and optionally the rowseparator for both the output mode and .import
.shell CMD ARGS...     Run CMD ARGS... in a system shell
.show                  Show the current values for various settings
.stats on|off          Turn stats on or off
.system CMD ARGS...    Run CMD ARGS... in a system shell
.tables ?TABLE?        List names of tablesIf TABLE specified, only list tables matchingLIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.timer on|off          Turn SQL timer on or off
.trace FILE|off        Output each SQL statement as it is run
.vfsinfo ?AUX?         Information about the top-level VFS
.vfslist               List all available VFSes
.vfsname ?AUX?         Print the name of the VFS stack
.width NUM1 NUM2 ...   Set column widths for "column" modeNegative values right-justify
sqlite>
2、备份数据库
$ ls // 查看文件列表,只有test.db
test.db
$ sqlite3 test.db   // 进入数据库
sqlite> .databases   // 查看数据库
seq  name             file
---  ---------------  ------------------------
0    main             /home/laoer/Templates/test.db
sqlite> .backup main test-backup.db  // 备份数据库,main可以省略
sqlite> .exit    // 退出$ ls   // 查看备份数据,确认备份成功
test-backup.db  test.db
$ sqlite3 test-backup.db
sqlite> select * from test;
1|XiaoHong|18
2|XiaoMing|19
3、导出数据到csv格式文件中
sqlite> .headers on   // 显示列表头,否则在csv中没有表头
sqlite> .mode csv    // 选择csv(逗号分隔值类型)
sqlite> .once test.csv   // 将下面的SQL语句输出保存到文件中,只保存一次,// 第二个SQL会恢复输出到终端。
sqlite> SELECT * FROM test;
sqlite> .exit;
$ cat test.csv // 查看csv文件,导出成功
id,name,age
1,XiaoHong,18
2,XiaoMing,19

.once 只将下面的一个SQL语句输出保存到文件中;如果使用.output命令则会把下面所有SQL输出保存到文件中。

4、查看数据信息
sqlite> .databases    // 列出数据库名称和文件
seq  name             file
---  ---------------  ----------------------------------------------------------
0    main             /home/laoer/Templates/test.db
sqlite> .tables  // 列出数据表
test
sqlite> .schema  // 打印数据表创建语句
CREATE TABLE test (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(50) NOT NULL,
age INT
);
sqlite> .show    // 显示当前配置参数值echo: off   // 回显eqp: off   // 解释查询计划EXPLAIN QUERY PLAN,只用在交互式分析和排除故障explain: auto   // 解释模式,只用在交互式分析和排除故障headers: off    // 表格头mode: list    // 输出模式nullvalue: ""output: stdout// 输出位置
colseparator: "|"
rowseparator: "\n"stats: offwidth:
sqlite> .dbinfo  // 显示数据库的状态信息
database page size:  1024
write format:        1
read format:         1
reserved bytes:      0
file change counter: 3
database page count: 3
freelist page count: 0
schema cookie:       1
schema format:       4
default cache size:  0
autovacuum top root: 0
incremental vacuum:  0
text encoding:       1 (utf8)
user version:        0
application id:      0
software version:    3011000
number of tables:    2
number of indexes:   0
number of triggers:  0
number of views:     0
schema size:         132
sqlite> .limit   // 显示或设置数据库限制信息:SQLITE_LIMITlength 1000000000    // 字符串或BLOB的最大长度10亿,一行的最大长度sql_length 1000000000 // sql语句最大长度column 2000 // 列数,可以在编译时才可以将最大列出改为32767expr_depth 1000   // 表达式树的最大深度,SQLite将表达式解析到树中进行处理。compound_select 500 // 复合SELECT语句中的最大术语数vdbe_op 25000   // 虚拟机程序中用于实现SQL语句的最大指令数function_arg 127    // 一个函数的最大参数个数attached 10       // ATTACH语句,附加数据库最大值为125like_pattern_length 50000    // LIKE模式匹配算法或GLOB模式的最大长度variable_number 250000 // 任何参数的索引号trigger_depth 1000   // 触发递归的最大深度worker_threads 0        // 可以启动的辅助工作线程的最大数量

常用查询SQL语句

1、查询头几条数据

SELECT * FROM table ORDER BY id LIMIT 10;

2、查询最后几条数据

SELECT * FROM table ORDER BY id DESC LIMIT 10;

DESC:降序排列
3、查询数据库中所有的数据表table

SELECT name FROM sqlite_master WHERE type='table' ORDER BY  name;

sqlite_master:里面存储着数据库的数据结构,只能对其查询(只读)
sqlite_temp_master:是记录临时表信息
4、查询表是否存在

SELECT count(*)  FROM sqlite_master WHERE type='table' AND name = 'tablename';

SELECT * FROM sqlite_master WHERE type='table' AND name = 'tablename';

如果查询结果大于0,表示该表存在于数据库中,否则不存在。
5、创建引索

CREATE INDEX index_name ON table_name (column_name);
CREATE INDEX index_name ON table_name (column_name DESC);   //降序

在表中创建索引,可以更加快速高效地查询数据
6、获取搜索的数量,可以添加条件

SELECT  COUNT() FROM table;
SELECT  COUNT() FROM table WHERE ***;

【数据库】sqlite3常用命令及SQL语句相关推荐

  1. mysql〉_MySql 基础知识-常用命令及sql语句

    一.常用mysql命令行命令 1,启动mysql服务 net start mysql. 停止mysql服务 net stop mysql 2,netstart -na|findstr 3306查看被监 ...

  2. sqlite3 实现批量处理 sql语句,避免频繁操作数据库,从而影响性能的问题

    sqlite3 实现批量处理 sql语句,避免频繁操作数据库,从而影响性能的问题.C++语言,begin开始事务,commit提交事务处理. int SQL_EXE(std::vector<st ...

  3. Oracle数据库基本常用命令

    Oracle数据库基本常用命令 1.得到数据库名和创建日期 SELECT name, created, log_mode, open_mode FROM v$database; 2.ORACLE数据库 ...

  4. oracle bcp out,SQL Server利用bcp命令把SQL语句结果生成文本文件

    这篇文章主要为大家详细介绍了SQL Server利用bcp命令把SQL语句结果生成文本文件,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!在SQL ...

  5. java的mysql语句规范_常用的标准SQL 语句

    1.创建数据库的语句如下: Create database databaseName 上述语句创建一个名字叫 databaseName 的数据库 2.删除数据库的语句如下. Drop database ...

  6. oracle rman 实例,Oracle数据库rman常用命令的使用示例

    Oracle数据库rman常用命令的使用是本文我们主要要介绍的内容,接下来我们就开始介绍这一部分内容,希望能够对您有些收获! 连接到rman 1.连接到目标数据库(不使用恢复目录) [oracle@l ...

  7. postgresql数据库工作常用命令-(数据库性能检查相关命令) -TODO

    文章目录 一.postgresql数据库工作常用命令 1. 数据库性能检查相关命令 2. 表结构信息查询 3. 命令行下更好显示 查询结果 一.postgresql数据库工作常用命令 查看当前都有什么 ...

  8. 【oracle】查看数据库最近执行了哪些sql语句

    前言 oracle 12.1.0.2.0 为了确定功能是否生效,需要查看数据库最近执行的sql语句,在里面找到想要的SQL语句 查看数据库最近执行了哪些sql语句 # 查看1小时内执行的sql语句,并 ...

  9. linux查看mysql表空间使用率_Oracle查看数据库表空间使用情况sql语句

    Oracle查看数据库表空间使用情况sql语句 SELECT UPPER(F.TABLESPACE_NAME)        "表空间名", D.TOT_GROOTTE_MB    ...

最新文章

  1. 测试机型不够?把玩家反馈过的问题机型,都测个遍
  2. led灯光衰怎么解决_什么是LED光衰,光衰怎么解决?
  3. 免安装版Tomcat6.0启动方法
  4. 纯C#代码的Excel读取器(不需要Office Excel Com组件)
  5. 【如何选】2019我的手机功能需求,千元机功能需求分析手机对比
  6. Struts2学习8--文件上传(单个文件上传)
  7. php 邮箱验证原理
  8. BERT重计算:用22.5%的训练时间节省5倍的显存开销(附代码)
  9. 无迹卡尔曼滤波(UKF)
  10. 一文了解linux内核,一文了解Linux的系统结构
  11. 铁路系统的在线检测系统讲座
  12. android通过ContentProvider 取得电话本的数据
  13. mysql sql model设置_操作mysql model
  14. 结对-人机对战象棋游戏-测试过程
  15. 笔记 -- Maxwell软件仿真
  16. android 编辑框失去焦点,关于android:editText并没有失去焦点
  17. 怎么把图片转换成pdf格式?图片转PDF方法
  18. 软考中级网络工程师学习笔记(知识点汇总)单点详细版
  19. 思考一道题:非相邻数最大和
  20. 淘宝装修前需要了解的css小技巧

热门文章

  1. 读后感与机翻《理解工具:面向任务的对象建模、学习和识别》
  2. mxnet speech_recognition踩坑记
  3. C++中的vector的用法
  4. linux系统重装后挂载数据盘,Linux重装系统后如何重新挂载数据盘?
  5. python中的模块如何学习_在python中学习队列模块(如何运行它)
  6. jsp ul设置滚动条_jquery实现Li滚动时滚动条自动添加样式的方法
  7. ajax请求中的reponseType和withCredetials分别是啥?
  8. libcurl+ncurses 分段range批量下载和进度条显示源码实例
  9. GeoIP的使用 - PHP版
  10. OpenCV 像素存储