文章目录
- 1. SQLite简介
- 1.1 SQL 和 SQLite 之间的差异
- 1.2 SQLite 特性
- 2. SQLite安装
- 3. SQLite命令
- 4. SQLite点命令
1. SQLite简介
SQLite 是嵌入式关系数据库管理系统。它是自包含、无服务器、零配置和事务性 SQL 数据库引擎。其与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。它直接读写普通磁盘文件,具有多个表、索引、触发器和视图的完整 SQL 数据库包含在单个磁盘文件中。
1.1 SQL 和 SQLite 之间的差异
SQL | SQLite |
---|---|
SQL 是一种结构化查询语言,用于查询关系数据库系统。它是用C语言编写的。 | SQLite 是一个用 ANSI-C 编写的嵌入式关系数据库管理系统。 |
SQL 是一种标准,它指定如何创建关系模式、在关系中插入或更新数据、启动和停止事务等。 | SQLite 是基于文件的。它与其他 SQL 数据库不同,因为与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。 |
SQL 的主要组成部分是数据定义语言(DDL)、数据操作语言(DML)、嵌入式 SQL 和动态 SQL。 | SQLite 支持 SQL 的很多特性,性能高,不支持存储过程。 |
SQL 是结构化查询语言,用于 MySQL、Oracle、Microsoft SQL Server、IBMDB2 等数据库。它本身不是数据库。 | SQLite 是一种可移植的数据库资源。您必须以您正在编程的任何语言获得 SQLite 的扩展才能访问该数据库。您可以访问所有桌面和移动应用程序。 |
传统的 SQL 数据库需要作为 OracleDB之类的服务运行才能连接并提供许多功能。 | SQLite 数据库系统不提供这样的功能。 |
SQL 是一种查询语言,被不同的 SQL 数据库使用。它本身不是数据库。 | SQLite 本身就是一个使用 SQL 的数据库管理系统。 |
- SQLite 历史
SQLite 最初设计于 2000 年 8 月。它之所以命名为 SQLite,是因为它与 SQL Server 或 Oracle 等其他数据库管理系统不同,重量非常轻(小于 500Kb 大小)。
年 | 发生的事情 |
---|---|
2000年 | SQLite 是由 D. Richard Hipp 设计的,目的是为了操作程序不需要管理。 |
2000年8 月 | SQLite 1.0 与 GNU 数据库管理器一起发布。 |
2011年 | Hipp 宣布将 UNQl 接口添加到 SQLite db 并开发 UNQLite(面向文档的数据库)。 |
1.2 SQLite 特性
- SQLite 是完全免费的: SQLite 是开源的。因此,使用它不需要许可证。
- SQLite 是无服务器的: SQLite 不需要不同的服务器进程或系统来运行。
- SQLite 非常灵活:它使您可以在同一会话中同时处理多个数据库。
- 不需要配置: SQLite 不需要配置。无需设置或管理。
- SQLite 是一个跨平台的 DBMS:您不需要像 Windows、Mac OS、Linux 和 Unix 这样的大量不同平台。它还可以用于许多嵌入式操作系统,如 Symbian 和 Windows CE。
- 存储数据很容易: SQLite 提供了一种高效的数据存储方式。
- 列长度可变:列的长度是可变的,不是固定的。它有助于您仅分配字段所需的空间。例如,如果您有一个 varchar(200) 列,并且在其上放置了 10 个字符的长度值,那么 SQLite 将仅为该值分配20 个字符的空间,而不是整个 200 个空间。
- 提供大量 API: SQLite 为大量编程语言提供 API。例如: .Net 语言(Visual Basic、C#)、PHP、Java、Objective C、Python 和许多其他编程语言。
- SQLite是用ANSI-C编写的,并提供简单易用的 API。
- SQLite可用于 UNIX(Linux、Mac OS-X、Android、iOS)和 Windows(Win32、WinCE、
WinRT)。
SQLite 是一种非常流行的数据库,已成功与磁盘文件格式一起用于桌面应用程序,如版本控制系统、财务分析工具、媒体编目和编辑套件、CAD 包、记录保存程序等。
2. SQLite安装
下载地址: SQLite下载,下载需要的版本文件
- windows系统安装
- 在 C 目录中创建一个名为 sqlite 的文件夹并解压这些文件(两个压缩包里文件都解压到一起)。
- 将目录路径添加到环境变量中。
- cmd中打开sqlite3命令。
3. SQLite命令
SQLite 命令类似于 SQL 命令。SQLite 命令共有三种类型:
- DDL:数据定义语言
CREATE:该命令用于在数据库中创建表、表或其他对象的视图。
ALTER:用于修改现有的数据库对象,如表。
DROP: DROP 命令用于删除整个表、表的视图或数据库中的其他对象 - DML:数据操作语言
INSERT:此命令用于创建记录。
UPDATE:用于修改记录。
DELETE:用于删除记录。 - DQL:数据查询语言
SELECT:此命令用于从一个或多个表中检索某些记录。
4. SQLite点命令
点命令不以(;)结束。随时使用“.help”检查点命令列表。
.help
命令 | 描述 |
---|---|
.backup ?db? file | 备份数据库(默认“主”)到文件 |
.bail on/off | 遇到错误后停止。默认关闭 |
.databases | 列出附加数据库的名称和文件 |
.dump ?table? | 以 sql 文本格式转储数据库。如果指定了表,则仅转储与模式表匹配的表。 |
.echo on/off | 打开或关闭命令回显 |
.exit | 退出sqlite提示 |
.explain on/off | 打开或关闭适合解释的输出模式。没有参数,它打开解释。 |
.header(s)on/off | 打开或关闭标题显示 |
.help | 显示此消息 |
.import file table | 将文件中的数据导入表 |
.indices ?table? | 显示所有索引的名称。如果指定了表,则只显示匹配模式表的表的索引。 |
.load file ?entry? | 加载扩展库 |
.log file/off | 打开或关闭登录。文件可以是 stderr/stdout |
.mode mode | 设置输出模式,其中模式是以下之一:csv:逗号分隔值;列:左对齐列。html : html code; insert: sql insert 语句;line: 每行一个值;list: 用.separator string分隔的值;tabs:制表符分隔的值;tcl:tcl 列表元素. |
.nullvalue string | 打印字符串代替空值 |
.output filename | 将输出发送到文件名 |
.output stdout | 将输出发送到屏幕 |
.print string… | 打印文字字符串 |
.prompt main continue | 替换标准提示 |
.quit | 退出sqlite提示 |
.read filename | 在文件名中执行sql |
.schema ?table? | 显示创建语句。如果指定了表,则只显示匹配模式表的表。 |
.separator string | 更改输出模式和 .import 使用的分隔符 |
.show | 显示各种设置的当前值 |
.stats on/off | 打开或关闭统计 |
.tables ?pattern? | 列出与类似模式匹配的表的名称 |
.timeout ms | 尝试打开锁定的表 ms 毫秒 |
.width num num | 为“列”模式设置列宽 |
.timer on/off | 打开或关闭 CPU 计时器测量 |
.show 命令: | 令查看 SQLite 命令提示符的默认设置。 |
note:sqlite> prompt 和 dot 命令之间不要加空格,否则会失效。