欢迎光临
我们一直在努力

我在双体学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)
    未经允许不得转载:171主机测评 » 我在双体学python之数据库基础知识点梳理
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址