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. 核心注意事项
  1. 连接管理
    with sqlite3.connect('db.db') as conn:  # 自动关闭连接
        cursor = conn.cursor()
    

  2. 防SQL注入
    # 错误方式:直接拼接字符串
    # 正确方式:使用参数化查询
    cursor.execute("SELECT * FROM users WHERE name=?", (user_input,))
    

  3. 事务控制
    • 使用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)$的查询。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐