想入门 SQLite,你算是选对了一个极其实用且“零负担”的数据库工具!很多初学者一听到“数据库”就觉得高深莫测,但SQLite绝对是个例外——它不需要安装复杂的服务器软件,不占后台资源,一个文件就是一个数据库,简直是开发小项目、做数据分析或个人自动化的“瑞士军刀”。
- 无需安装,开箱即用:它是“嵌入式”数据库,没有独立的服务器进程。你只需要引入一个几百KB的动态库,就能在你的程序里直接读写数据库文件。
- 零配置:不需要用户名密码,不需要配置权限,直接操作磁盘上的
.db或.sqlite文件。 - 极度轻量:特别适合数据量在 TB 级别以下的场景。比如手机APP本地存储(微信的聊天记录本地缓存)、桌面软件(如微信PC端、浏览器)、小型网站以及物联网设备。
1. 安装命令行工具 (CLI)
- Windows 用户:
- 访问 SQLite 官网下载页:https://www.sqlite.org/download.html
- 找到 Precompiled Binaries for Windows,下载
sqlite-tools-win-x64-xxxxxxx.zip(包含命令行工具)。 - 解压后,将里面的三个
.exe文件(特别是sqlite3.exe)放到你喜欢的位置(比如C:sqlite3)。 - 为了方便在任意路径下使用,可以将该文件夹路径添加到系统的“环境变量 Path”中。
- macOS / Linux 用户:恭喜你们,系统通常已经自带了!直接打开终端,输入
sqlite3 –version,如果显示版本号,就可以直接用了。如果没有,可以通过包管理器一键安装(如 Ubuntu:sudo apt install sqlite3,macOS:brew install sqlite)。
2. 安装可视化工具 (GUI) —— 强烈推荐!
- DB Browser for SQLite:开源免费,界面清爽,小白首选。下载地址
- DBeaver Community:功能极其强大,支持所有主流数据库,如果你以后想进阶学 MySQL、PostgreSQL,用这个一个软件就能通吃。下载地址
1. 创建并进入数据库
打开终端(或 CMD),输入以下命令。如果 test.db不存在,SQLite 会自动在当前目录下创建它并进入操作界面:
sqlite3 test.db
你会看到终端提示符变成 sqlite>,这就表示你已经在这个数据库里了。
2. 建一张表 (Create)
我们来建一张简单的“用户表”(users),包含主键ID、姓名和年龄:
– 如果表已存在就先删掉,方便我们重复测试 DROP TABLE IF EXISTS users;
– 创建新表 CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT, -- 主键,自增长 name TEXT NOT NULL, -- 姓名,文本类型,不能为空 age INTEGER -- 年龄,整数类型
);
3. 插入数据 (Insert)
INSERT INTO users (name, age) VALUES (‘张三’, 25); INSERT INTO users (name, age) VALUES (‘李四’, 30); INSERT INTO users (name, age) VALUES (‘王五’, 28);
4. 查询数据 (Select)
SELECT * FROM users;
SELECT * FROM users WHERE age > 26;
5. 更新与删除 (Update & Delete)
- 更新:李四过生日了,年龄改成31。
UPDATE users SET age = 31 WHERE name = ‘李四’;
- 删除:王五退群了,把他删掉。
DELETE FROM users WHERE name = ‘王五’;
作为一个轻量级数据库,SQLite 最常见的用法是被直接集成在编程语言中。以极其流行的 Python 为例,它内置了 sqlite3库,连安装第三方包的步骤都省了!
创建一个 demo.py文件,把下面的代码复制进去运行:
import sqlite3
1. 连接到本地数据库文件(如果不存在会自动创建)
conn = sqlite3.connect(‘example.db’) cursor = conn.cursor()
2. 创建表
cursor.execute(“’ CREATE TABLE IF NOT EXISTS stocks (
date text, trans text, symbol text, qty real, price real
) “‘)
3. 插入一条数据
cursor.execute(“INSERT INTO stocks VALUES (‘2023-10-01’, ‘BUY’, ‘AAPL’, 100, 150.23)”)
4. 重要:提交事务(不commit的话,数据不会真正保存到文件里)
conn.commit()
5. 查询数据并打印
cursor.execute(‘SELECT * FROM stocks’) print(cursor.fetchall()) # 输出: [(‘2023-10-01’, ‘BUY’, ‘AAPL’, 100.0, 150.23)]
6. 关闭连接
conn.close()
运行完这段代码,你会发现当前文件夹下多了一个 example.db文件,这就是数据库本体!你甚至可以用刚才安装的 DB Browser 打开这个文件,直观地看到里面的 stocks表和数据。
- 弱类型但很智能(Manifest Typing):SQLite 的数据类型非常宽松。你在建表时定义了
INTEGER,但如果强行插入一个字符串,它也不会报错,而是会尽力帮你转换成合适的格式存储。这种灵活性在快速开发中很好用,但也要求你在代码层做好数据校验。 - 单文件备份法(物理冷备):因为整个数据库就是一个文件,所以备份数据库最简单粗暴的方法就是:直接复制粘贴这个
.db文件! 当然,前提是先关闭所有对该文件的写入连接。 - 并发写入限制:SQLite 支持多人同时读取,但如果有一个人在写入(INSERT/UPDATE),其他人就必须排队等待。因此,它不适合超高并发的秒杀系统或大型电商网站后台,但应付日常中小型应用、单机软件和嵌入式设备绰绰有余。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/279034.html