没关系!数据库是编程中非常重要的一个领域,即使你很久没接触了,只要重新梳理一下核心概念,很快就能上手。我们从最基础、最关键的点开始讲起,并通过代码帮助你理解。
---
### 什么是数据库?
简单来说,**数据库(Database)** 就是用来存储数据的仓库,它以结构化的方式组织数据,方便我们进行增删改查操作。最常见的数据库类型是 **关系型数据库(Relational Database)**,比如:
- MySQL
- PostgreSQL
- SQLite
- Oracle
- SQL Server
它们都使用 **SQL(Structured Query Language)** 来操作数据。
---
### 核心概念回顾
1. **表(Table)**:就像 Excel 表格一样,有行和列。
- 列(字段/Field):如 `id`, `name`, `age`
- 行(记录/Record):一条具体的数据
2. **主键(Primary Key)**:唯一标识一条记录,通常是 `id`
3. **SQL 操作四大类**:
- **SELECT**:查询
- **INSERT**:插入
- **UPDATE**:更新
- **DELETE**:删除
---
### 示例:用 SQLite 演示一个完整的流程
SQLite 是一个轻量级数据库,Python 内置支持,非常适合学习。
#### ✅ 创建数据库和表,并进行增删改查
```python
import sqlite3
# 连接到数据库(如果不存在会自动创建)
conn = sqlite3.connect('student.db')
cursor = conn.cursor()
# 创建一张学生表
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
grade REAL
)
''')
# 插入数据(INSERT)
cursor.execute("INSERT INTO students (name, age, grade) VALUES (?, ?, ?)", ("张三", 20, 85.5))
cursor.execute("INSERT INTO students (name, age, grade) VALUES (?, ?, ?)", ("李四", 22, 90.0))
# 提交事务
conn.commit()
# 查询所有数据(SELECT)
cursor.execute("SELECT * FROM students")
print("所有学生:")
for row in cursor.fetchall():
print(row)
# 更新数据(UPDATE)
cursor.execute("UPDATE students SET grade = ? WHERE name = ?", (95.0, "张三"))
conn.commit()
# 再次查询看变化
cursor.execute("SELECT * FROM students WHERE name = '张三'")
print("更新后的张三:", cursor.fetchone())
# 删除数据(DELETE)
cursor.execute("DELETE FROM students WHERE name = ?", ("李四",))
conn.commit()
# 最终结果
cursor.execute("SELECT * FROM students")
print("最终数据:", cursor.fetchall())
# 关闭连接
conn.close()
```
---
### 代码解释
| 代码段 | 说明 |
|-------|------|
| `sqlite3.connect('student.db')` | 连接或创建名为 `student.db` 的数据库文件 |
| `CREATE TABLE IF NOT EXISTS ...` | 创建表,避免重复创建 |
| `INTEGER PRIMARY KEY AUTOINCREMENT` | 主键自动递增 |
| `VALUES (?, ?, ?)` | 使用占位符防止 SQL 注入,安全! |
| `conn.commit()` | 提交更改,否则不会保存 |
| `cursor.fetchall()` | 获取所有查询结果 |
| `cursor.fetchone()` | 获取一条结果 |
---
### 常见 SQL 语句对照表(建议记住)
| 操作 | SQL 语句 |
|------|---------|
| 查全部 | `SELECT * FROM students;` |
| 查某个字段 | `SELECT name, age FROM students;` |
| 条件查询 | `SELECT * FROM students WHERE age > 20;` |
| 插入 | `INSERT INTO students (name, age) VALUES ('王五', 19);` |
| 修改 | `UPDATE students SET age = 21 WHERE name = '张三';` |
| 删除 | `DELETE FROM students WHERE name = '李四';` |
---
### 小结
你现在不需要一下子掌握所有内容,关键是理解:
- 数据库是用来存数据的
- 表像表格,有行有列
- SQL 是操作数据库的语言
- Python 可以通过 `sqlite3` 轻松操作数据库
你可以先运行上面的代码,看看输出结果,然后尝试自己修改名字、年龄,再执行查询,慢慢就有感觉了!
---