【第2篇】 Python与数据库基础

1. 数据库的基本概念

1.1 表(Table)

  • 表是数据库中存储数据的基本单位,由行和列组成。
  • 例如:users 表可以存储用户信息,每一行代表一个用户,每一列代表用户的属性(如姓名、年龄)。

1.2 字段(Field/Column)

  • 字段是表中的列,用于存储特定类型的数据。
  • 例如:users 表中的 name 字段存储用户的姓名,age 字段存储用户的年龄。

1.3 索引(Index)

  • 索引是用于加速数据检索的数据结构,类似于书籍的目录。
  • 例如:在 users 表的 name 字段上创建索引,可以加快按姓名查询的速度。

1.4 主键(Primary Key)

  • 主键是表中唯一标识每一行的字段,不能重复且不能为空。
  • 例如:users 表中的 id 字段可以作为主键,确保每个用户有唯一的标识。

1.5 外键(Foreign Key)

  • 外键是用于建立表与表之间关系的字段,指向另一张表的主键。
  • 例如:orders 表中的 user_id 字段可以作为外键,指向 users 表的 id 字段,表示订单属于哪个用户。

1.6 事务(Transaction)

  • 事务是一组数据库操作,要么全部成功,要么全部失败,确保数据的一致性。
  • 例如:转账操作需要在一个事务中完成,确保从一个账户扣款和向另一个账户加款同时成功或失败。

2. Python 连接数据库的基本方法

Python 提供了多种库来连接和操作数据库,常见的包括 sqlite3pymysqlpsycopg2 等。以下是 Python 连接数据库的基本方法以及数据库的基本概念。

2.1 SQLite

SQLite 是一个轻量级的嵌入式数据库,适合小型应用或原型开发。Python 内置了 sqlite3 模块,无需额外安装。

连接 SQLite 数据库
python 复制代码
import sqlite3

# 连接数据库(如果不存在则创建)
conn = sqlite3.connect('example.db')

# 创建游标对象
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)")

# 提交事务
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())

# 关闭连接
conn.close()

2.2 MySQL

MySQL 是一个流行的关系型数据库,使用 pymysql 库可以连接 MySQL 数据库。

安装 pymysql
bash 复制代码
pip install pymysql
连接 MySQL 数据库
python 复制代码
import pymysql

# 连接数据库
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='test_db'
)

# 创建游标对象
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)''')

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 30)")

# 提交事务
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())

# 关闭连接
conn.close()

2.3 PostgreSQL

PostgreSQL 是一个功能强大的开源关系型数据库,使用 psycopg2 库可以连接 PostgreSQL 数据库。

安装 psycopg2
bash 复制代码
pip install psycopg2
连接 PostgreSQL 数据库
python 复制代码
import psycopg2

# 连接数据库
conn = psycopg2.connect(
    host='localhost',
    user='postgres',
    password='password',
    database='test_db'
)

# 创建游标对象
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT)''')

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Charlie', 35)")

# 提交事务
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())

# 关闭连接
conn.close()

2.4 示例:数据库操作的综合应用

以下是一个综合示例,展示如何使用 Python 连接 SQLite 数据库,并进行基本的增删改查操作。

python 复制代码
import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 30)")

# 提交事务
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print("查询结果:", cursor.fetchall())

# 更新数据
cursor.execute("UPDATE users SET age = 26 WHERE name = 'Alice'")
conn.commit()

# 删除数据
cursor.execute("DELETE FROM users WHERE name = 'Bob'")
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print("更新后的查询结果:", cursor.fetchall())

# 关闭连接
conn.close()

4. 总结

  • 数据库的基本概念包括表、字段、索引、主键、外键和事务。
  • Python 提供了多种库来连接和操作数据库,如 sqlite3pymysqlpsycopg2
  • 掌握这些基础知识后,就可以使用Python对数据库进行基本的操作了,如果想要精进,还要多多实践。
相关推荐
爱学习的小道长2 分钟前
Python Emoji库的使用教程
开发语言·python
汽车仪器仪表相关领域6 分钟前
工况模拟精准检测,合规减排赋能行业 ——NHASM-1 型稳态工况法汽车排气检测系统项目实战经验分享
数据库·算法·单元测试·汽车·压力测试·可用性测试
Data_agent10 分钟前
Cssbuy 模式淘宝 / 1688 代购系统南美市场搭建指南
大数据·python
2301_8002561110 分钟前
数据库设计中的 “数据依赖→设计异常→关系分解(范式)” 核心逻辑
数据库·postgresql
冰冰菜的扣jio11 分钟前
Redis基础数据结构
数据结构·数据库·redis
汽车仪器仪表相关领域27 分钟前
光轴精准测量,安全照明保障——NHD-8101/8000型远近光检测仪项目实战分享
数据库·人工智能·安全·压力测试·可用性测试
xyt117222817730 分钟前
宗地四至提取工具
python·arcgis
程序员三藏33 分钟前
接口自动化测试之 pytest 接口关联框架封装
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
大爱编程♡36 分钟前
Spring IoC&DI
数据库·mysql·spring
江湖yi山人38 分钟前
生产环境的log,上传到开发者的本地服务器
javascript·python