SQLiteStudio基本操作教程

1、创建数据库

点击数据库->添加数据库,选择文件或者输入一个新文件及名称:

2、创建表

2.1 表的基本概念解释

约束解释:

约束选项 作用说明
主键 用来唯一标识表中的每一行数据,一个表最多只能有 1 个主键(可以是单个字段,也可以是多个字段组合的 "复合主键")。特点:值不能重复、不能为 NULL,通常用于关联其他表(作为外键的关联对象)。
外键 用来关联其他表的主键,保证数据的 "参照完整性"(比如订单表的user_id关联用户表的id,避免出现不存在的用户 ID)。注意:SQLite 默认不自动开启外键约束,需手动开启(可在 SQLiteStudio 的 "设置 - 数据库" 中勾选 "启用外键")。
唯一 保证该字段的值在整个表中不能重复,但可以为 NULL(一个表可以有多个 "唯一" 约束)。例:用户表的email字段设为 "唯一",避免注册重复邮箱。
条件 自定义 "检查约束",限制字段的取值范围(比如age > 0 AND age < 150)。例:学生表的score字段设为score BETWEEN 0 AND 100,避免出现负数或超过 100 的分数。
非空 保证该字段的值不能为 NULL(必须填写),避免数据缺失。例:用户表的username字段设为 "非空",确保每个用户都有用户名。
字符序 针对 TEXT 类型字段,指定字符串的排序 / 比较规则(比如区分大小写、使用哪种语言的排序方式)。默认使用数据库的字符序,特殊场景(如多语言数据)才需要自定义。
生成的值 让字段的值自动生成(比如自增 ID、默认时间戳)。常见场景:主键字段设为 "INTEGER + 生成的值(自增)",插入数据时无需手动填写 ID,系统自动递增。
默认 为字段设置 "默认值",当插入数据时未填写该字段,自动使用默认值。例:订单表的status字段设为默认值0(代表 "待支付"),插入订单时若不填status,自动填充为 0。

类型解释:

类型选项 作用说明
TEXT 存储字符串(如文本、字符),长度不限(比如用户名、描述)。
BLOB 存储二进制数据(如图片、文件),以原始字节形式保存。
INTEGER 存储整数(可正可负),支持不同长度(如INTBIGINT),常用作自增主键。
NUMERIC 存储数值(整数、小数、日期时间等),会自动处理数值精度(比如金额、分数)。
REAL 存储浮点数(小数),但精度不如NUMERIC(通常用于非精确计算场景)。

触发器:

预先定义的 "自动执行的操作",当表发生特定事件(如插入、更新、删除数据)时,触发器会自动触发执行对应的 SQL 语句。举例:若给students表建一个触发器,设置 "当插入新学生时,自动记录操作日志到log表",那么每次插入数据,日志会自动生成,无需手动写代码。

索引:

数据库中用于加速数据查询的结构(类似书籍的目录)。

DDL:

DDL 是 "数据定义语言(Data Definition Language)" 的缩写,用来定义数据库结构的 SQL 语句(比如创建表、修改表、创建索引等)。

2.2 界面操作创建表

右键点击表,选择创建表,填写表名称后新增列:

在students中添加name列:

依次添加age和score列,其中score添加条件1-100:

点击创建后会提示生成该表的数据库语句,确定即可:

依次添加以下内容,其中name主键重复或者score超过条件约束会报错:

2.3 sql语句创建表

也可以直接用sql语句创建表,创建一个log表:

2.4 触发器测试

添加触发器,在新增学生数据的时候将信息打印的log表中:

新增学生数据后log表显示:

3、常用sql语句

3.1 创建
复制代码
-- 创建学生表,name为主键(唯一+非空),score约束1-100
CREATE TABLE IF NOT EXISTS students (
    name  TEXT (16) PRIMARY KEY NOT NULL,  -- 姓名(主键,最多16字符)
    age   INTEGER NOT NULL,                -- 年龄(非空)
    score INTEGER NOT NULL CHECK (score BETWEEN 1 AND 100)  -- 分数(1-100)
);
3.2 增

单条:

复制代码
INSERT INTO students (name, age, score) 
VALUES ('张三', 18, 95); 

多条:

复制代码
INSERT INTO students (name, age, score) 
VALUES 
('李四', 17, 88),
('王五', 16, 92),
('赵六', 19, 76);
3.3 删

按主键:

复制代码
-- 删除姓名为"赵六"的学生(主键唯一,只删1条)
DELETE FROM students WHERE name = '赵六';

按条件:

复制代码
-- 删除年龄大于18且分数小于80的学生
DELETE FROM students WHERE age > 18 AND score < 80;

-- 删除分数等于100的所有学生
DELETE FROM students WHERE score = 100;
3.4 改

修改单条数据单个字段:

复制代码
-- 把"李四"的分数改成90
UPDATE students 
SET score = 90 
WHERE name = '李四';  -- 按主键定位,只改1条

修改单条数据多个字段:

复制代码
-- 把"王五"的年龄改成17,分数改成95
UPDATE students 
SET age = 17, score = 95 
WHERE name = '王五';
3.5 查

查询所有:

复制代码
-- 查询所有学生的所有字段
SELECT * FROM students;

指定字段:

复制代码
-- 查询所有学生的姓名和分数(不看年龄)
SELECT name, score FROM students;

条件查询:

复制代码
-- 1. 查询分数大于90的学生
SELECT * FROM students WHERE score > 90;

-- 2. 查询年龄在16-18之间的学生
SELECT name, age FROM students WHERE age BETWEEN 16 AND 18;

-- 3. 查询分数等于95或88的学生
SELECT * FROM students WHERE score IN (88, 95);

-- 4. 查询姓名包含"张"字的学生(模糊查询)
SELECT * FROM students WHERE name LIKE '%张%';

顺序查询:

复制代码
-- 按分数降序排列(从高到低),分数相同按年龄升序
SELECT * FROM students ORDER BY score DESC, age ASC;

-- 按年龄升序排列(从低到高)
SELECT name, age FROM students ORDER BY age;
相关推荐
1.14(java)1 天前
SQL数据库操作:从CRUD到高级查询
数据库
Full Stack Developme1 天前
数据库索引的原理及类型和应用场景
数据库
IDC02_FEIYA1 天前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
辞砚技术录1 天前
MySQL面试题——联合索引
数据库·面试
萧曵 丶1 天前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
小北方城市网1 天前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
毕设十刻1 天前
基于Vue的人事管理系统67zzz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
TDengine (老段)1 天前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
萧曵 丶1 天前
事务ACID特性详解
数据库·事务·acid
kejiayuan1 天前
CTE更易懂的SQL风格
数据库·sql