我在双体学python之数据库基础知识点梳理
·
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操作详解
| 操作 | SQL命令 | Python方法 |
|---|---|---|
| 创建 | CREATE |
execute() |
| 读取 | SELECT |
fetchone()/fetchall() |
| 更新 | UPDATE |
execute() |
| 删除 | DELETE |
execute() |
5. 核心注意事项
- 连接管理:
with sqlite3.connect('db.db') as conn: # 自动关闭连接 cursor = conn.cursor() - 防SQL注入:
# 错误方式:直接拼接字符串 # 正确方式:使用参数化查询 cursor.execute("SELECT * FROM users WHERE name=?", (user_input,)) - 事务控制:
- 使用
conn.commit()提交变更 conn.rollback()回滚错误操作
- 使用
6. 数据类型映射
| Python类型 | SQLite类型 | 示例 |
|---|---|---|
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)$的查询。
更多推荐


所有评论(0)