SQLite是一款轻量级、嵌入式的关系型数据库管理系统,它以其零配置、无服务器、自包含和事务性(ACID)的特点而广受欢迎,它不是一个独立的客户端/服务器数据库引擎,而是直接集成到应用程序中的一个小型C语言库,这使得它成为需要本地数据存储的桌面应用、移动应用以及小型网站的理想选择,本文将详细介绍如何从零开始使用SQLite数据库。

获取并安装SQLite
使用SQLite的第一步是获取其工具,最核心的工具是SQLite的命令行程序(sqlite3),它允许您直接与数据库文件进行交互。
- 访问官方网站:前往SQLite官方网站的下载页面。
- 选择预编译二进制文件:在下载页面,根据您的操作系统(Windows、macOS或Linux)下载相应的预编译二进制文件包,对于Windows用户,通常下载名为
sqlite-tools-win32-*.zip的压缩包。 - 解压并配置环境变量:将下载的压缩包解压到一个您喜欢的目录,例如
C:\sqlite,为了方便在任意位置使用sqlite3命令,建议将该目录添加到系统的PATH环境变量中。
完成以上步骤后,您就可以在命令行终端(如Windows的CMD或PowerShell,macOS或Linux的Terminal)中通过输入sqlite3来启动它了。
创建和连接数据库
在SQLite中,创建一个数据库非常简单,当您尝试连接一个不存在的数据库文件时,SQLite会自动为您创建它。
打开您的命令行终端,导航到您希望存储数据库文件的目录,然后执行以下命令:
sqlite3 my_first_database.db
sqlite3是启动命令行工具的指令。my_first_database.db是您想要创建或连接的数据库文件名,如果当前目录下不存在这个文件,SQLite会创建一个空的新文件;如果已存在,则会打开它。
成功执行后,您会看到sqlite>提示符,这表示您已经进入了SQLite的命令行交互环境,可以开始输入SQL命令了。
基础SQL操作
进入SQLite环境后,您可以使用标准的SQL语句来管理您的数据,以下是一些最核心的操作。
创建表
表是存储数据的基本结构,使用CREATE TABLE语句来定义表的结构。

CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
registration_date DATETIME DEFAULT CURRENT_TIMESTAMP
);
INTEGER PRIMARY KEY AUTOINCREMENT:定义一个自增的主键id。TEXT NOT NULL:定义一个文本类型的字段name,且不能为空。TEXT NOT NULL UNIQUE:定义一个文本类型的字段email,不能为空且值必须唯一。DATETIME DEFAULT CURRENT_TIMESTAMP:定义一个日期时间字段,默认值为当前时间。
插入数据
使用INSERT INTO语句向表中添加新记录。
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');
INSERT INTO users (name, email) VALUES ('李四', 'lisi@example.com');
查询数据
SELECT语句用于从表中检索数据,这是最常用的操作。
-- 查询所有用户的所有信息 SELECT * FROM users; -- 只查询用户的姓名和邮箱 SELECT name, email FROM users; -- 带条件的查询,查找名为“张三”的用户 SELECT * FROM users WHERE name = '张三'; -- 对结果进行排序 SELECT * FROM users ORDER BY registration_date DESC;
更新数据
当需要修改现有记录时,使用UPDATE语句。务必使用WHERE子句来指定要更新的记录,否则将会更新整个表!
UPDATE users SET email = 'new_zhangsan@example.com' WHERE name = '张三';
删除数据
使用DELETE FROM语句来删除记录,同样,强烈建议总是配合WHERE子句使用。
DELETE FROM users WHERE name = '李四';
输入.quit或按Ctrl+D(在macOS/Linux上)可以退出SQLite命令行环境。
在编程语言中使用SQLite(以Python为例
在实际应用中,您通常会在代码中操作SQLite,几乎所有主流编程语言都内置或提供了SQLite的库,以Python为例,其标准库sqlite3使得操作变得非常直观。
以下是一个完整的Python脚本示例,演示了如何连接数据库、创建表、插入数据并查询。

import sqlite3
# 1. 连接到数据库(如果不存在则会创建)
conn = sqlite3.connect('app_database.db')
cursor = conn.cursor()
# 2. 创建表(如果已存在则忽略)
cursor.execute('''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
price REAL
)
''')
# 3. 插入数据
products_to_insert = [
('笔记本电脑', 7999.99),
('无线鼠标', 199.50),
('机械键盘', 599.00)
]
cursor.executemany('INSERT INTO products (name, price) VALUES (?, ?)', products_to_insert)
# 4. 提交事务
conn.commit()
# 5. 查询数据
print("产品列表:")
cursor.execute('SELECT * FROM products')
all_products = cursor.fetchall()
for product in all_products:
print(f"ID: {product[0]}, 名称: {product[1]}, 价格: {product[2]}")
# 6. 关闭连接
conn.close()
常用SQLite图形化工具
虽然命令行工具功能强大,但图形化界面(GUI)工具能让数据库管理更加直观和便捷。
| 工具名称 | 主要特点 | 适用平台 |
|---|---|---|
| DB Browser for SQLite | 免费、开源,可视化管理表、索引和查询,支持导入/导出数据。 | Windows, macOS, Linux |
| DBeaver | 免费的通用数据库工具,支持SQLite及数十种其他数据库,功能强大。 | Windows, macOS, Linux |
| SQLiteStudio | 免费、轻量级、便携,功能全面,界面友好。 | Windows, macOS, Linux |
这些工具可以帮助您在不编写SQL代码的情况下浏览数据、编辑记录和执行查询,非常适合初学者和日常开发。
相关问答FAQs
Q1: SQLite适合用于大型网站或高并发应用吗?
A: 通常不建议,SQLite的设计哲学是简单、可靠和自包含,它在处理读操作时性能优异,但写入操作会锁定整个数据库文件,这意味着在高并发写入的场景下(例如大型电商网站的订单处理),多个写入请求需要排队等待,会导致严重的性能瓶颈,对于这类需要处理大量并发请求的网站或应用,建议使用客户端/服务器架构的数据库系统,如PostgreSQL、MySQL或MongoDB,它们被设计用于处理高并发和复杂的读写负载,SQLite更适用于中小型应用、桌面软件、移动App的本地存储以及开发与测试环境。
Q2: 如何在SQLite命令行中快速查看数据库的所有表及其结构?
A: 在SQLite命令行环境中,您可以使用一组以点()开头的特殊命令(称为“点命令”)来管理数据库,要查看所有表,可以使用.tables命令,要查看某个特定表(例如users表)的创建语句(即其结构),可以使用.schema users命令,如果您想查看数据库中所有对象的创建语句,直接输入.schema即可,这些命令对于快速了解数据库的概览非常有帮助。