SQLite数据库入门教程
SQLite 是一个零配置的、事务性的 SQL 数据库引擎。SQLite 源代码不受版权限制。
SQLite 的一个重要的特性是零配置的,这意味着不需要复杂的安装或管理。
SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。几乎所有版本的 Linux 操作系统都附带 SQLite。
Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。但若想在其他场所中使用如在在命令行中使用,可以安装 SQLite,下面介绍。
在 Windows 上安装 SQLite比较简单。
请访问 SQLite 下载页面,
https://www.sqlite.org/download.html
从 Windows 区下载sqlite-tools-win32-*.zip 和sqlite-dll-win32-*.zip 压缩文件
上面两个压缩文件,得到sqldiff.exe、sqlite3.exe、sqlite3_analyzer.exe和sqlite3.def、sqlite3.dll文件。将这些文件放到D:\sqlite文件夹中(若C:\sqlite文件夹不存在,创建之)
添加 D:\sqlite 到 PATH 环境变量,最后在命令提示符下,输入 sqlite3 命令,显示如下:
说明安装成功。
在sqlite> 提示符下可以使用点命令
输入.help,务必注意 sqlite> 提示符与点命令之间没有空格(否则将无法正常运行),显示如下:
SQLite 点命令介绍如下:
.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 的 <table> 代码 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>提示符下,若进入了...> 如何退出?
输入;(分号)回车即可。
此时是进入SQL数据语言模式了。
为初学者顺利学习,先学习几个CMD命令
md命令创建文件夹
例如:md d:\test 按回车键(即按下Enter键),也可以用 md test 在当前路径下建立test文件夹。
cd命令切换路径
例如:cd d:\test 切换当前路径为d:\test
下面介绍SQLite的使用
首先提醒:
SQLite 是不区分大小写的。
注释以两个连续的"-" 字符(ASCII 0x2d)开始
SQLite 语句可以以任何关键字开始,如 SELECT 等,所有的语句以分号(;)结束。
创建数据库
创建数据库命令:sqlite3.exe数据库名字.后缀名
输入sqlite3.exetestDB.db 回车,执行完后,命令提示符自动跳转到 SQLITE>
可以这样查看是否已经创建数据库:
输入 .databases 回车
提示:创建一个新数据库和打开一个已经存在的数据库命令是一模一样的,如果文件在当前目录下不存在,则新建;如果存在,则打开。
创建数据库文件到指定路径(目录)
在 Db 目录中创建一个 test.db 数据库文件,先进入 Db 目录,在 Db 目录中创建一个 test.db 数据库文件
输入cd D:\test 回车,若这步出错,请先输入md d:\test,参照前面介绍
输入sqlite3.exe testDB.db 回车(即按下Enter键)
建立数据表,语法:
create tabletable_name(field1 type1, field2 type1, ...);
列出当前数据库所有的表名
.tables
为testDB.db数据库建立两个表,然后列出它的表名
CREATE TABLEDEPARTMENT(
ID INT PRIMARY KEY NOT NULL,
DEPT CHAR(50) NOT NULL,
EMP_ID INT NOT NULL
);
CREATE TABLECOMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
请在命令行工具中输入(若用复制粘贴的方法输入到命令行工具,请一行行进行,否则可能不成,特地提示),如下图:
有了上述基础,若学习过其他数据库,应不会感到困难了。下面再简要介绍几条语法
删除表:
drop table tablename
添加数据记录:
insert intotable_name(field1,field2, ...) values(val1, val2, ...);
执行查询语句:select * from tablename 可跟随where语句
用命令行使用SQLite比较麻烦,也容易出错。可以使用可视化管理工具。SQLite可视化管理工具不少,例如SQLiteStudio开源免费易用,还可以。