SQLite作为常用的轻量级数据库,表操作是日常开发的基础,下面我们就逐一讲解创建、修改、删除表的具体方法。

一、创建表
创建表使用CREATE TABLE语句,基本语法如下:
-- 创建用户表,包含id、用户名、年龄、注册时间字段
CREATE TABLE IF NOT EXISTS user (
id INTEGER PRIMARY KEY AUTOINCREMENT, -- 自增主键
username TEXT NOT NULL UNIQUE, -- 用户名,非空且唯一
age INTEGER DEFAULT 0, -- 年龄,默认值为0
register_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 注册时间,默认当前时间
);这里IF NOT EXISTS的作用是如果表已经存在,就不会执行创建操作,避免出现报错。字段后可以添加约束,比如NOT NULL表示字段不能为空,UNIQUE表示字段值不能重复,DEFAULT可以设置默认值。
二、修改表
SQLite的ALTER TABLE语句支持的操作比较有限,主要可以实现两种修改:给表添加新字段,或者重命名表名。
1. 添加字段
添加字段的语法如下,新增的字段会放到表的最后面:
-- 给用户表添加邮箱字段,类型为TEXT,默认值为空字符串 ALTER TABLE user ADD COLUMN email TEXT DEFAULT '';
2. 重命名表
如果需要修改表名,可以使用下面的语法:
-- 把user表重命名为user_info ALTER TABLE user RENAME TO user_info;
注意SQLite不支持直接修改已有字段的类型、删除已有字段或者修改字段约束,如果需要这类操作,通常需要新建表,把旧表的数据迁移过去,再删除旧表。
三、删除表
删除表的语法很简单,使用DROP TABLE语句即可:
-- 删除user_info表,如果存在的话 DROP TABLE IF EXISTS user_info;
执行这个语句后,整个表的结构和数据都会被永久删除,操作前一定要确认是否需要备份数据。如果只是想清空表里的数据但保留表结构,可以使用DELETE语句:
-- 清空user表的所有数据,保留表结构 DELETE FROM user;
如果需要重置自增主键的计数,可以在清空数据后执行DELETE FROM sqlite_sequence WHERE name='user';,这样下次插入数据时id会从1开始自增。
四、操作注意事项
- 执行删除表操作前务必确认数据是否需要保留,避免误删重要数据
- 修改表结构时如果涉及复杂调整,建议先导出数据,再重建表导入数据
- 建表时合理设置字段约束,可以减少后续数据异常的问题