主题
SQLite
介绍
SQLite 是一个轻型的关系型数据库管理系统 (RDBMS),它的数据库是一个单一的文件,使用 SQL 进行数据操作。SQLite 是最流行的嵌入式数据库之一,广泛应用于移动应用、桌面应用和一些小型网站中。
基本数据类型
SQLite 使用 动态类型 系统,字段类型只在语义上提供约束,其核心存储类型只有以下几种:
| 类型 | 说明 |
|---|---|
INTEGER | 整数类型(1~8 字节) |
REAL | 浮点数(8 字节 IEEE) |
TEXT | 文本,使用 UTF-8/UTF-16 |
BLOB | 二进制数据 |
NULL | 空值 |
注意:字段类型可以写成
VARCHAR(255),但 SQLite 实际还是按上述存储类型处理。
DDL - 数据库
创建/打开数据库
bash
sqlite3 stu_info.db- 文件不存在则自动创建
.db扩展名不是必须,但建议加上便于识别
退出 SQLite 命令行
bash
.quit
# 或
.exitDDL - 表操作
创建表
sql
CREATE TABLE users (
id INTEGER PRIMARY KEY, -- 自动增长
name TEXT,
addr TEXT
);SQLite 的
INTEGER PRIMARY KEY会自动变为 rowid,如果你想自增主键,这是推荐写法。
修改表
sql
-- 重命名表
ALTER TABLE old_table_name RENAME TO new_table_name;
-- 重命名列(SQLite 3.25+)
ALTER TABLE table_name RENAME COLUMN old_col TO new_col;
-- 添加新列
ALTER TABLE table_name ADD COLUMN age INTEGER;
-- 删除列(SQLite 3.35+,2021 发布)
ALTER TABLE users DROP COLUMN addr;删除表
sql
DROP TABLE IF EXISTS users;建议使用
IF EXISTS避免错误。
查看表列表
sql
.tables查看表结构(SQL 定义)
sql
.schema users查看所有表结构
sql
.schemaDML
插入数据
sql
-- 指定列插入
INSERT INTO users (name, addr) VALUES ('Tom', 'Beijing');
-- 批量插入
INSERT INTO users (name, addr) VALUES
('Alice', 'Shanghai'),
('Bob', 'Guangzhou'),
('Charlie', 'Shenzhen');
-- 全列插入(不推荐,顺序需一致,易出错)
INSERT INTO users VALUES (1, 'Tom', 'Beijing');更新数据
sql
UPDATE users SET addr = 'Shanghai' WHERE name = 'Tom';删除数据
sql
DELETE FROM users WHERE name = 'Tom';DQL
查询数据
sql
SELECT * FROM users;
SELECT name, addr FROM users WHERE id > 5 ORDER BY id DESC;辅助命令
sql
SELECT sqlite_version();
.headers on -- 显示列名
.mode column -- 列对齐格式
.nullvalue NULL -- 设置 null 显示值
.timer on -- 显示每条 SQL 执行时间