1. 数据库基本概念
- 数据库:结构化存储数据的仓库,例如$D={d_1,d_2,\\dots,d_n}$表示数据集
- 关系型数据库:以表结构存储数据,核心概念包括:
- 表(Table):$T=(C_1,C_2,\\dots,C_m)$ 含$m$列
- 记录(Record):表中的单行数据
- 字段(Field):表中的列,如id INT PRIMARY KEY
2. SQL基础语法
通过结构化查询语言操作数据库:
— 创建表
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INT CHECK(age>0)
);
— 插入数据
INSERT INTO users (name, age) VALUES ('张三', 25);
— 查询数据
SELECT * FROM users WHERE age > 20;
3. Python数据库操作(SQLite示例)
使用内置库sqlite3操作轻量级数据库:
import sqlite3
# 连接数据库
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS books
(id INTEGER PRIMARY KEY, title TEXT, price REAL)''')
# 插入数据
books = [('Python基础', 49.9), ('数据分析', 79.0)]
cursor.executemany("INSERT INTO books (title, price) VALUES (?, ?)", books)
# 查询数据
cursor.execute("SELECT * FROM books WHERE price > 50")
print(cursor.fetchall()) # 输出:[ (2, '数据分析', 79.0) ]
# 提交并关闭
conn.commit()
conn.close()
4. CRUD操作详解
| 创建 | CREATE | execute() |
| 读取 | SELECT | fetchone()/fetchall() |
| 更新 | UPDATE | execute() |
| 删除 | DELETE | execute() |
5. 核心注意事项
with sqlite3.connect('db.db') as conn: # 自动关闭连接
cursor = conn.cursor()
# 错误方式:直接拼接字符串
# 正确方式:使用参数化查询
cursor.execute("SELECT * FROM users WHERE name=?", (user_input,))
- 使用conn.commit()提交变更
- conn.rollback()回滚错误操作
6. 数据类型映射
| int | INTEGER | 42 |
| float | REAL | 3.14 |
| str | TEXT | '文本' |
| bytes | BLOB | 图片数据 |
学习建议:先掌握SQLite基础操作,再学习MySQL/PostgreSQL等数据库。重点关注数据建模和查询优化,例如索引创建:CREATE INDEX idx_name ON users(name)可加速$O(n)$到$O(\\log n)$的查询。


