Skip to content

Inner Skills 10: Supabase

九、数据库

💡

此部分为数据库知识讲解,实操部分在【Supabase】章节

一般来说我们使用 PostgreSQL 比较多

9.1 核心概念

数据库是什么

💡

最形象的比喻

Excel 表格的超级进化版:能存储百万倍的数据,并且多人同时安全使用

图书馆管理系统

书库 = 数据库

图书分类 = 表(用户表/商品表)

图书信息卡 = 表中的记录

管理员 = SQL 查询语言

为什么需要数据库?

场景

无数据库

有数据库

存储数据

用 txt 文件记录

专业存储系统

查找信息

全文件扫描

毫秒级检索

多人使用

容易冲突

并发控制

数据安全

易丢失

自动备份

数据库核心概念拆解

表结构详解(以"学生信息表"为例)

学号(主键)姓名年龄班级入学日期
2023001张三18高一(3)班2023-09-01
2023002李四17高一(1)班2023-09-01

字段类型

整数:年龄

字符串:姓名

日期:入学日期

主键:学号(唯一不重复)

SQL 语言基础语法

sql
-- 增:添加新学生
INSERT INTO 学生表 VALUES (2023003, '王五', 16, '高一(2)班', '2023-09-01');

-- 删:退学学生删除
DELETE FROM 学生表 WHERE 学号=2023002;

-- 改:调换班级
UPDATE 学生表 SET 班级='高一(4)班' WHERE 姓名='张三';

-- 查:找所有17岁以下学生
SELECT * FROM 学生表 WHERE 年龄<17;

数据库在真实项目中的应用

用户注册流程

sequenceDiagram 用户->>前端: 填写注册表单 前端->>后端: 发送注册请求 后端->>数据库: INSERT INTO users... 数据库-->后端: 操作结果 后端-->前端: 返回成功/失败 前端->>用户: 显示注册结果bb

电商网站数据关系

[用户表] -- 1:n --> [订单表] [商品表] -- m:n --> [订单表] 通过[订单明细表] B

9.2 实战项目

入门项目

此部分实战,可根据【Supabase】章节中的实操环节。

项目升级:学习 PostgreSQL 数据库FFF

如有余力,可尝试学习 PostgreSQL

9.3 常见疑问

问题

答案

主键为什么不能重复?

就像学生的学号/身份证号,重复会导致系统无法区分不同记录

SQL 语句总是写错怎么办?

使用开发工具提示(如 VS Code 的 SQL 插件),记住核心结构:

sql
SELECT [字段] FROM [表] WHERE [条件] ORDER BY [排序] LIMIT [数量]

如何防止数据丢失?

定期备份:.dump 命令导出数据

事务处理:

sql
BEGIN TRANSACTION;
-- 你的操作...
COMMIT;
-- 或 ROLLBACK 回滚

期待你的提问,可在此直接评论

Released under the MIT License.