SQLite3 入门指南 – wiki大全

My apologies! It appears I made an error and do not have a write_file tool available in this environment. I cannot create a new Markdown file for you.

Instead, I will provide the “SQLite3 入门指南” directly in this chat. Please copy and paste it into a file on your end if you wish to save it.


SQLite3 入门指南

SQLite3 是一个轻量级、零配置、独立的、事务性的 SQL 数据库引擎。它以其小巧、高效和易用性而闻名,非常适合嵌入式设备、桌面应用程序、移动应用以及小型网站的后端存储。本文将带您从零开始,逐步掌握 SQLite3 的基本使用。

1. 什么是 SQLite3?

  • 轻量级: 整个数据库就是一个单独的文件,无需独立的服务器进程。
  • 零配置: 不需要复杂的安装和配置过程,开箱即用。
  • 独立: 不需要依赖其他外部组件。
  • 事务性: 支持 ACID 事务,确保数据的一致性和可靠性。
  • 无服务器: 与传统的客户端/服务器数据库(如 MySQL、PostgreSQL)不同,SQLite 直接读写磁盘上的数据库文件。

为什么选择 SQLite3?
* 开发简单: 无需设置服务器,直接操作文件。
* 资源占用低: 内存和磁盘占用极小。
* 可移植性强: 数据库文件可以在不同平台之间轻松移动。
* 高性能: 对于单用户或并发量不高的场景,性能表现出色。

2. 安装 SQLite3

SQLite3 通常是许多操作系统和编程语言的内置组件。

  • Linux/macOS: 大多数系统都预装了 sqlite3 命令行工具。您可以在终端中输入 sqlite3 --version 检查。如果没有,可以通过包管理器安装(例如 sudo apt-get install sqlite3brew install sqlite3)。
  • Windows: 您可以从 SQLite 官方网站 下载预编译的二进制文件(sqlite-tools-win32-x86-...zip),解压后将包含 sqlite3.exe。将其所在目录添加到系统 PATH 环境变量中,即可在命令行中使用。
  • 编程语言: 许多编程语言(如 Python、Java、C#)都内置或提供了优秀的 SQLite 驱动。

3. 基本操作

我们将通过命令行工具 sqlite3 来演示基本操作。

3.1 创建或打开数据库

在命令行中输入 sqlite3 <数据库文件名>.db。如果文件不存在,则会创建;如果存在,则会打开。

bash
sqlite3 mydatabase.db

进入 SQLite 命令行界面后,会看到 sqlite> 提示符。

3.2 创建表

使用 CREATE TABLE 语句定义表的结构。

sql
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
age INTEGER
);

* INTEGER PRIMARY KEY AUTOINCREMENT: 定义一个自增的整数主键。
* TEXT: 文本类型。
* NOT NULL: 字段不能为空。
* UNIQUE: 字段值必须唯一。

查看表结构:
sql
.schema users

3.3 插入数据

使用 INSERT INTO 语句向表中添加数据。

sql
INSERT INTO users (name, email, age) VALUES ('张三', '[email protected]', 30);
INSERT INTO users (name, email, age) VALUES ('李四', '[email protected]', 25);
INSERT INTO users (name, email) VALUES ('王五', '[email protected]'); -- age 字段未提供,默认为 NULL

3.4 查询数据

使用 SELECT 语句从表中检索数据。

查询所有数据:
sql
SELECT * FROM users;

查询特定字段:
sql
SELECT name, email FROM users WHERE age > 28;

带条件查询:
sql
SELECT * FROM users WHERE name = '张三';

排序:
sql
SELECT * FROM users ORDER BY age DESC;

限制数量:
sql
SELECT * FROM users LIMIT 1;

3.5 更新数据

使用 UPDATE 语句修改表中现有数据。

sql
UPDATE users SET age = 31 WHERE name = '张三';
UPDATE users SET email = '[email protected]', age = 28 WHERE id = 3;

3.6 删除数据

使用 DELETE FROM 语句从表中删除数据。

删除特定记录:
sql
DELETE FROM users WHERE name = '李四';

删除所有记录(保留表结构):
sql
DELETE FROM users;

删除表:
sql
DROP TABLE users;

3.7 退出 SQLite 命令行

sql
.quit

4. SQLite3 常见数据类型

SQLite3 支持以下主要数据类型,但它的类型系统是动态的,这意味着你可以将任何类型的数据存储在任何字段中,SQLite 会根据值自动选择存储类别。

  • NULL: 空值。
  • INTEGER: 带符号的整数,根据值的大小存储为 1、2、3、4、6 或 8 字节。
  • REAL: 浮点数,存储为 8 字节 IEEE 浮点数。
  • TEXT: 字符串,存储为 UTF-8、UTF-16BE 或 UTF-16LE 文本。
  • BLOB: 二进制大对象(Binary Large Object),存储为原始的字节数据。

5. 使用 SQLite3 (以 Python 为例)

大多数编程语言都提供了与 SQLite3 交互的库。Python 内置了 sqlite3 模块,使用非常方便。

“`python
import sqlite3

1. 连接到数据库 (如果文件不存在,会自动创建)

conn = sqlite3.connect(‘example.db’)
cursor = conn.cursor()

2. 创建表

cursor.execute(”’
CREATE TABLE IF NOT EXISTS stocks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
trans TEXT,
symbol TEXT,
qty REAL,
price REAL
)
”’)

3. 插入数据

cursor.execute(“INSERT INTO stocks (date, trans, symbol, qty, price) VALUES (?, ?, ?, ?, ?)”,
(‘2023-01-05’, ‘BUY’, ‘RHAT’, 100, 35.14))

4. 批量插入

stocks_data = [
(‘2023-01-06’, ‘SELL’, ‘MSFT’, 50, 150.00),
(‘2023-01-07’, ‘BUY’, ‘GOOG’, 200, 1200.00),
]
cursor.executemany(“INSERT INTO stocks (date, trans, symbol, qty, price) VALUES (?, ?, ?, ?, ?)”, stocks_data)

5. 查询数据

print(“所有股票交易:”)
for row in cursor.execute(“SELECT * FROM stocks ORDER BY price”):
print(row)

print(“\n查询购买的股票:”)
cursor.execute(“SELECT * FROM stocks WHERE trans = ‘BUY'”)
for row in cursor.fetchall():
print(row)

6. 更新数据

cursor.execute(“UPDATE stocks SET price = 36.00 WHERE symbol = ‘RHAT'”)

7. 删除数据

cursor.execute(“DELETE FROM stocks WHERE symbol = ‘MSFT'”)

8. 提交事务 (非常重要,否则修改不会保存)

conn.commit()

9. 关闭连接

conn.close()

print(“\n操作完成,数据已保存到 example.db”)
“`

6. 总结

SQLite3 是一款功能强大且易于使用的嵌入式数据库,无论是进行快速原型开发,还是为小型应用程序提供可靠的数据存储,它都是一个极佳的选择。通过本文的介绍,您应该已经掌握了 SQLite3 的基本概念和操作方法,现在可以开始在您的项目中使用它了。祝您使用愉快!

滚动至顶部