⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

4.3 如何命令数据库干活——SQL 基础操作:表/行/列、主键/外键、索引、事务、JOIN、CRUD

认知重构

SQL(Structured Query Language)是与数据库对话的语言。虽然 Prisma 帮我们生成了大部分 SQL,但理解 SQL 基础能让你更好地调试问题和优化性能。

SQL 语句分类

分类说明常用语句
DDL定义数据库结构CREATE, ALTER, DROP
DML操作数据SELECT, INSERT, UPDATE, DELETE
DCL控制权限GRANT, REVOKE

子章节导航

章节主题核心问题
4.3.1DDL 数据定义如何创建和修改表结构?
4.3.2DML 数据操作如何增删改查数据?
4.3.3约束定义如何保证数据质量?
4.3.4JOIN 查询如何关联多张表?
4.3.5聚合函数如何统计和汇总数据?

SQL vs Prisma 对照

操作SQLPrisma
创建表CREATE TABLEprisma migrate dev
插入INSERT INTOprisma.model.create()
查询SELECTprisma.model.findMany()
更新UPDATEprisma.model.update()
删除DELETEprisma.model.delete()
关联查询JOINinclude: {}

学习建议

如果你只用 Prisma

  • 快速浏览本节,了解 SQL 基本概念
  • 重点学习 JOIN(4.3.4)和聚合函数(4.3.5)的概念

如果你需要写原生 SQL

  • 仔细学习每个子章节
  • 练习在 Prisma 中执行原生 SQL

在 Prisma 中执行原生 SQL

typescript
// 执行原生查询
const result = await prisma.$queryRaw`
  SELECT * FROM users WHERE email LIKE '%@gmail.com'
`

// 执行原生命令(无返回值)
await prisma.$executeRaw`
  UPDATE users SET status = 'ACTIVE' WHERE last_login > NOW() - INTERVAL '30 days'
`

AI 协作指南

核心意图:让 AI 帮你生成或解释 SQL。

常用提问模板

帮我写一个 SQL 查询:
- 表结构:[表结构]
- 需求:[查询需求]
- 数据库:PostgreSQL
这个 SQL 是什么意思?请用中文解释:
[SQL 语句]