【数据库】sqlite3常用命令及SQL语句
【数据库】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 ***;
相关文章:

资本主义社会是不存在人道的
对叙利亚人民感到无助而写点文章,虽然没有什么大的作用,也谈谈自己对于战争与和平的理解,战争与和平就相当于爱与恨一样,爱的热切,恨之入骨,虽然形容不当,人性的双面总是要拿来剖析一二的。 人类…

再谈javascript图片预加载经典技术
图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展示出来,所以lightb…

【Go】Go基础(四):流程控制(控制结构)
1、if-else结构 格式: if condition1 {// do something } else if condition2 {// do something else } else {// default }和C的不同,条件语句没有大括号; 新增的语法: if initialization; condition {// do something }例…

让世界零距离 小鱼易连的大梦想
“他是高材生,也是技术大拿。十年北美,十年中国,他在高科技领域善于创新、精于管理,五项中美专利加身。他在北电网络领导团队不断创新,成就亚太顶尖;他曾任宝利通全球高管,带领团队从初创一路起飞ÿ…

程序员再也不能埋头敲代码了
上周,阿里巴巴重磅发布了机器学习平台 PAI 3.0 版本,据悉,这个 PAL 平台封装了 200 多种经典算法,可以轻松搭建机器学习实验。作为码农一枚,使我不得不抬起原本一直低着敲代码的头,看看这个为 AI 狂欢的世界…

函数的重载 - C++快速入门06
函数的重载 让编程改变世界 Change the world by program 函数的重载 C 里的函数重载(overloading)机制比我们此前见到的东西都高深,这种语言的灵活性和强大功能在它身上体现得淋漓尽致。 所谓函数重载的实质就是用同样的名字再定义一个有…

【Go】Go基础(五):函数
1、简述 Go 里面有三种类型的函数: * 普通的带有名字的函数 * 匿名函数或者lambda函数 * 方法(Methods)两个特殊函数:main()和init(),它们没有参数和返回值; Go语言里面没有函数重载; 2、函数…

搬箱轮滑再炫技!一个被波士顿动力耽误的机器人
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)据 TheVerge 等多家外媒报道,波士顿动力公司 (Boston Dynamics) 又推出了一款新的机器人&…

我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的 | 掘金技术征文
本人16年毕业于普通二本院校网络相关专业,工作经验两年半,目前就职业于一家普通民营企业。 由于非985、211学历硬伤,校招进大厂的门槛远高于同届985、211的毕业生。于是乎,从毕业到现在经历了三家创业公司,创业公司的痛…

solaris上的pkg管理
原文写于2010-05-18 19:43:40 网易博客,已删. 在solaris上安装程序,很多时候多离不开package管理.上的编译好的软件都是已package的形式压缩好然后提供给大家下载的. 关键是3个命令:pkgadd/pkginfo/pkgrm pkgadd -d pkgname用来添加安装包 pkginfo 用来打印系统…

【Go】Go基础(六):数组、切片slice、映射map
1、数组 1.1 数组定义 数组:数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列。 数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。数组长度最大为 …

语义表征的无监督对比学习:一个新理论框架
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑译者 | Linstancy责编 | 琥珀出品 | AI科技大本营(ID:rgznai100)诸如图像、文本、视频等复杂数据类型的语义表征 (也称为语义嵌入) 已成为机器学习的核心…

YEX黄建:脱离比特币谈区块链,要么真傻,要么装疯卖傻丨区块链十人谈
如果说2017年是属于虚拟货币的一年,那么2018年的区块链将是生态和应用的一年,随之而来的也将是新的玩法、新的赚钱姿势。为此,雷锋网推出“区块链十人谈”(十人者,取是知众人博所长之意,非实指)…

70佳精美的PSD素材免费下载(上篇)
设计师经常会去网上搜罗各种各样的素材,这些免费素材不仅能帮助他们节省大量的时间,而且能有很好的效果。今天,本文与大家分享70佳精美的PSD素材,非常感谢那些很有才华的设计师分享它们的劳动成果,让更多的人可以使用他…

漫画讲述人工智能简史
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑作者 | 武博士、宋知达、袁雪瑶、聂文韬来源 | 大鱼AI(id:DayuAI-Founder)本文我们会以生动有趣的漫画来介绍关于人工智能(AI)相…

【Go】Go基础(七):包
一、标准库概述 1、官方手册 内置包在 Go 语言中有 150 个以上,它们被称为标准库,完整列表可以在Go Walker中查看 https://gowalker.org/search?qgorepos 2、常用包简介 unsafe: 包含了一些打破 Go 语言“类型安全”的命令,一般的程序中不会…

Mysql是时候学习一个存储过程了
create procedure 存储过程名() DECLARE uid INT; #注意声明的变量名不能跟表的字段名一致,否则会报错。如user的主键是id,那么这里声明用来存id值的变量名就不能为id,可以改为uid等 DECLARE done INT DEFAULT 0; #repeat结束标识 DECLARE us…

ASP.NET的Cookie跨域问题
将Cookie的有效范围限制到域。 默认情况下,Cookie 与特定的域相关联。例如,如果您的站点是 www.contoso.com,那么当用户向该站点请求页面时,您编写的Cookie就被发送到服务器。(有特定路径值的Cookie除外)…

详解物联网的中间件:为何说它是不可或缺的?
互联网的大规模普及,拉近了人与人之间的交流,而不同国家人与人之间的交往也变得密切起来。由于彼此使用的语言不通,为了能够互相交流,我们需要将不同种的交流语言转换成对方可识别的信息,这就是翻译存在的理由了。同样…

Decoders对于语义分割的重要性 | CVPR 2019
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑作者 | Lin-Zhuo Chen转载自博客链接:https://linzhuo.xyz/posts/DUpsample/今天为大家推荐一篇 CVPR2019 关于语义分割的文章 Decoders Matter for Semantic Segme…

【Go】Go基础(八):结构体和方法
一、 结构体(struct) 1、结构体定义 type identifier struct {field1 type1field2 type2... }声明:new(Type) 和 &Type{}是等价的 2、初始化结构体 type Interval struct {start intend int }初始化方式: intr : Inter…

Windows 2008 R2 SP1部署Lync2010企业版(四)
9 部署存档和监控服务器 1) 以域管理身份登录SQL01服务器。 2) 单击“开始”,依次指向“程序”、“管理工具”,然后单击“服务器管理器”显示服务器管理器。 3) 单击“添加功能”启动“添加功能向导”,选择“消息队列”,下一步。 …

【Go】Go基础(九):接口(Interfaces)与反射(reflection)
一、接口(interfaces) 1、概述 接口定义了一组方法(方法集),但是这些方法不包含(实现)代码:它们没有被实现(它们是抽象的)。接口里也不能包含变量。 通过如…

用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger
原型链是JS的必备,作为ECMAScript4,原型链也是支持的。 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用。 本文旨在介绍如何使用原型链。 任意对象类型都有一个prototype属性,包括导入的Unity的A…

教育部发文35所高校新增AI本科专业!想回去重新高考
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑作者 | 琥珀出品 | AI科技大本营(ID:rgznai100)2019 年 3 月 28 日,教育部公布了 2018 年度普通高等学校本科专业备案和审批结果。消息一出&…

莱芜市公安局交警支队智能交通项目集成及容灾公开招标公告
莱芜市公安局交警支队智能交通建设项目公开招标公告 时间:2011-7-5 点击:249莱芜市公安局交警支队智能交通建设项目公开招标公告一、招标人名称:莱芜市公安局交警支队 联系方式:0634-5667998(吕老师)二、招标代理机构名称&#x…

【Go】Go基础(十):文件读写
一、读写数据 1、读取用户的输入 使用fmt 包提供的 Scan 和 Sscan 开头的函数; * Scanln 扫描来自标准输入的文本,将空格分隔的值依次存放到后续的参数内,直到碰到换行。 * Scanf 与其类似,除了 Scanf 的第一个参数用作格式字符…

怎样能拿到第一份编程工作?这里告诉你答案 | 码书
“写代码时,每次都要告诉自己:最后负责维护代码的,会是一个知道你住在哪的变态暴力狂。” ——约翰伍德(John Woods)拿下第一份编程工作需要付出更多努力,但是如果采纳下面的建议,应该不会有太大…

JSON知识点
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读…

asp常用函数(备忘)
1.数组长度: <% Dim grade,i gradesplit("1,2,5,10,20,50,100,200,500,1000",",") for i0 to ubound(grade) response.write grade(i)&"\n" next %> 2.获得插入的id set rs server.createobject(&q…