官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中。目前在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
Sqlite命令分类:
(DDL)数据定义语言:
| CMD |
Description |
| CREATE |
创建一个新的表,一个表的视图,或者数据库中的其他对象。 |
| ALTER |
修改数据库中的某个已有的数据库对象,比如一个表。 |
| DROP |
删除整个表,或者表的视图,或者数据库中的其他对象。 |
(DML)数据操作语言:
| CMD |
Description |
| INSERT |
创建一条记录。 |
| UPDATE |
修改记录。 |
| DELETE |
删除记录。 |
(DQL)数据查询语言:
| CMD |
Description |
| SELECT |
从一个或多个表中检索某些记录。 |
Sqlite点命令
先看一张Windows下的截图:

这是在Windows的cmd下运行sqlite3命令(如何安装和配置烦请自行google " baidu),然后依据提示运行.help的打印(只截图一部分)。
可以发现sqlite的help列出来了所有sqlite支持的点命令,也可以发现,点命令不需要已”;”结尾。
我们对上面的.help命令进行翻译大致如下:
| CMD |
Description |
| .backup ?DB? FILE |
备份DB数据库(默认是”main”)到FILE文件。 |
| .bail ON/OFF |
发生错误后停止。默认为OFF。 |
| .databases |
列出附加数据库的名称和文件。 |
| .dump ?TABLE? |
以SQL文本格式转储数据库。如果指定了TABLE表,则只转储匹配LIKE模式的TABLE表。 |
| .echo ON/OFF |
开启或关闭echo命令。 |
| .exit |
退出SQLite提示符。 |
| .explain ON/OFF |
开启或关闭适合于EXPLAIN的输出模式。如果没有带参数,则为EXPLAIN on,及开启EXPLAIN。 |
| .header(s) ON/OFF |
开启或关闭头部显示。 |
| .help |
显示消息。 |
| .import FILE TABLE |
导入来自FILE文件的数据到TABLE表中。 |
| .indices ?TABLE? |
显示所有索引的名称。如果指定了TABLE表,则只显示匹配LIKE模式的TABLE表的索引。 |
| .load FILE ?ENTRY? |
加载一个扩展库。 |
| .log FILE/off |
开启或关闭日志。FILE文件可以是stderr(标准错误)/stdout(标准输出)。 |
| .mode MODE |
设置输出模式,MODE可以是下列之一:csv 逗号分隔的值;column 左对齐的列;html HTML的代码;insert TABLE表的SQL插入(insert)语句;line 每行一个值;list 由 .separator字符串分隔的值;tabs 由Tab分隔的值;tcl TCL列表元素。
| .nullvalue STRING |
在NULL值的地方输出STRING字符串。 |
| .output FILENAME |
发送输出到FILENAME文件。 |
| .output stdout |
发送输出到屏幕。 |
| .print STRING... |
逐字地输出STRING字符串。 |
| .prompt MAIN CONTINUE |
替换标准提示符。 |
| .quit |
退出SQLite提示符。 |
| .read FILENAME |
执行FILENAME文件中的SQL。 |
| .schema ?TABLE? |
显示CREATE语句。如果指定了TABLE表,则只显示匹配LIKE模式的TABLE表。 |
| .separator STRING |
改变输出模式和.import所使用的分隔符。 |
| .show |
显示各种设置的当前值。 |
| .stats ON/OFF |
开启或关闭统计。 |
| .tables ?PATTERN? |
列出匹配LIKE模式的表的名称。 |
| .timeout MS |
尝试打开锁定的表MS微秒。 |
| .width NUM NUM |
为”column”模式设置列宽度。 |
| .timer ON/OFF |
开启或关闭CPU定时器测量。 |
Sqlite数据库的sqlite_master表 主表中保存数据库表的关键信息,并把它命名为sqlite_master。如要查看表概要,可如下操作:
sqlite>.schema sqlite_master
Sqlite语法规则 SQLite是遵循一套独特的称为语法的规则和准则。 SQLite是不区分大小写的,但也有一些命令是大小写敏感的,比如GLOB和glob在SQLite的语句中有不同的含义。 SQLite 注释是附加的注释,可以在 SQLite 代码中添加注释以增加其可读性,他们可以出现在任何空白处,包括在表达式内和其他 SQL 语句的中间,但它们不能嵌套。 SQL注释以两个连续的”-“字符开始,并扩展至下一个换行符或直到输入结束,以先到者为准。也可以以”/*"开始,并扩展至下一个 “*/” 字符对或直到输入结束,以先到者为准。SQLite的注释可以跨越多行。 SQLite语句以任何关键字开始,以”;”结束。 Sqlite数据类型 SQLite数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。您可以在创建表的同时使用这些数据类型。SQLite使用一个更普遍的动态类型系统。在SQLite中,值的数据类型与值本身是相关的,而不是与它的容器相关。 存储类 SQLite有5个原始的数据类型,被称为存储类。存储类这个词表明了一个值在磁盘上存储的格式,其实就是类型或数据类型的同义词。如下即是存储类:
| 存储类 |
Description |
| NULL |
值是一个NULL值。 |
| INTEGER |
值是一个带符号的整数,根据值的大小存储在1、2、3、4、6 或8字节中。 |
| REAL |
值是一个浮点值,存储为8字节的IEEE浮点数字。 |
| TEXT |
值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE或UTF-16LE)存储。 |
| BLOB |
值是一个blob数据,完全根据它的输入存储。 |
SQLite通过值的表示法来判断其类型,下面就是SQLite的推理方法: SQL语句中用单引号或双引号括起来的文字被指派为TEXT。 如果文字是未用引号括起来的数据,并且没有小数点和指数,被指派为INTEGER。 如果文字是未用引号括起来的数据,并且带有小数点或指数,被指派为REAL。 用NULL说明的值被指派为NULL存储类。 如果一个值的格式为X’ABCD’,其中ABCD为16进制数字,则该值被指派为BLOB。X前缀大小写皆可。 如下就是验证结果:  SQLite单独的一个字段可能包含不同存储类的值。 如下就是验证结果:  喜欢钻牛角尖的这时 |