SQLite入门
# SQLite
简介
SQLite
是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的SQL
数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
就像其他数据库,SQLite
引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite
直接访问其存储文件。
# 为什么要用SQLite
?
不需要一个单独的服务器进程或操作的系统(无服务器的)。
SQLite
不需要配置,这意味着不需要安装或管理。一个完整的
SQLite
数据库是存储在一个单一的跨平台的磁盘文件。SQLite
是非常小的,是轻量级的,完全配置时小于400KiB
,省略可选功能配置时小于250KiB
。SQLite
是自给自足的,这意味着不需要任何外部的依赖。SQLite
事务是完全兼容ACID
的,允许从多个进程或线程安全访问。SQLite
支持SQL92(SQL2)
标准的大多数查询语言的功能。SQLite
使用ANSI-C
编写的,并提供了简单和易于使用的API
。SQLite
可在UNIX(Linux, Mac OS-X, Android, iOS)
和Windows(Win32, WinCE, WinRT)
中运行。
# SQLite
的安装
# Windows
访问
SQLite
下载页面,从Windows
区下载预编译的二进制文件。您需要下载
sqlite-tools-win32-*.zip
和sqlite-dll-win32-*.zip
压缩文件。创建文件夹
C:\sqlite
,并在此文件夹下解压上面两个压缩文件,将得到sqlite3.def
、sqlite3.dll
和sqlite3.exe
文件。添加
C:\sqlite
到PATH
环境变量,最后在命令提示符下,使用sqlite3
命令,将显示如下结果。
C:\>sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
2
3
4
5
# Linux
几乎所有版本的Linux
操作系统都附带SQLite
。所以,只要使用下面的命令来检查您的机器上是否已经安装了SQLite
。
$ sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
2
3
4
5
如果没有看到上面的结果,那么就意味着没有在 Linux 机器上安装 SQLite。因此,让我们按照下面的步骤安装 SQLite:
请访问
SQLite
下载页面,从源代码区下载sqlite-autoconf-*.tar.gz
。步骤如下:
$ tar xvzf sqlite-autoconf-3071502.tar.gz $ cd sqlite-autoconf-3071502 $ ./configure --prefix=/usr/local $ make $ make install
1
2
3
4
5
# macOS
最新版本的macOS
会预安装SQLite
,但是如果没有可用的安装,只需按照如下步骤进行:
请访问
SQLite
下载页面,从源代码区下载sqlite-autoconf-*.tar.gz
。步骤如下:
$ tar xvzf sqlite-autoconf-3071502.tar.gz $ cd sqlite-autoconf-3071502 $ ./configure --prefix=/usr/local $ make $ make install
1
2
3
4
5验证
SQLite
是否安装成功:$ sqlite3 SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
1
2
3
4
5
# 基础命令
命令 | 描述 |
---|---|
.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 | 设置输出模式 |
.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
创建一个数据库文件
# 创建ipdata.db文件
sqlite3 ipdata.db
# 退出sqlite3提示符
.exit
2
3
4
5