第七阶段:python数据库操作与数据处理


本阶段将深入探讨 Python 在数据库操作和数据处理方面的应用。我们将从 SQL 基础回顾开始,然后实践 SQLite 数据库操作,并初步接触数据处理与分析的核心库:NumPy、Pandas 和 Matplotlib/Seaborn。

7.1 数据库操作

SQL 基础回顾

在深入 Python 数据库编程之前,让我们快速回顾一下 SQL(Structured Query Language) 的基本操作,它们是与关系型数据库交互的核心:

  • SELECT: 用于从数据库中检索数据。 SQL

    SELECT column1, column2 FROM table_name WHERE condition;
    
  • INSERT: 用于向表中插入新行。 SQL

    INSERT INTO table_name (column1, column2) VALUES (value1, value2);
    
  • UPDATE: 用于修改表中现有行的数据。 SQL

    UPDATE table_name SET column1 = new_value WHERE condition;
    
  • DELETE: 用于从表中删除行。 SQL

    DELETE FROM table_name WHERE condition;
    
SQLite 数据库

SQLite 是一个轻量级的、无服务器的、自给自足的事务性 SQL 数据库引擎。Python 内置的 sqlite3 模块使其成为学习数据库操作的绝佳选择。

下面是一个使用 sqlite3 模块进行数据库操作的完整示例:

Python

import sqlite3

# 1. 连接到数据库
# 如果数据库文件不存在,sqlite3 会自动创建它
conn = sqlite3.connect('example.db')
cursor = conn.cursor() # 获取游标对象,用于执行SQL命令

# 2. 创建表
# 使用 """ 三引号可以方便地书写多行SQL语句
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        email TEXT UNIQUE,
        age INTEGER
    )
''')
conn.commit() # 提交事务,保存更改

print("表 'users' 创建成功或已存在。")

# 3. 插入数据
try:
    cursor.execute("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", ('Alice', '[email protected]', 30))
    cursor.execute("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", ('Bob', '[email protected]', 25))
    cursor.execute("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", ('Charlie', '[email protected]', 35))
    conn.commit()
    print("数据插入成功。")
except sqlite3.IntegrityError as e:
    print(f"数据插入失败:{e} (可能邮箱重复)")
    conn.rollback() # 出现错误时回滚事务

# 4. 查询数据
print("\n--- 查询所有用户 ---")
cursor.execute("SELECT id, name, email, age FROM users")
rows = cursor.fetchall() # 获取所有查询结果
for row in rows:
    print(f"ID: {row[0]}, Name: {row[1]}, Email: {row[2]}, Age: {row[3]}")

print("\n--- 查询年龄大于30的用户 ---")
cursor.execute("SELECT name, email FROM users WHERE age > ?", (30,))
for row in cursor.fetchall():
    print(f"Name: {row[0]}, Email: {row[1]}")

# 5. 更新数据
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (31, 'Alice'))
conn.commit()
print("\nAlice 的年龄已更新。")

print("\n--- 再次查询 Alice 的信息 ---")
cursor.execute("SELECT name, age FROM users WHERE name = 'Alice'")
alice_info = cursor.fetchone() # 获取第一条查询结果
if alice_info:
    print(f"Name: {alice_info[0]}, Updated Age: {alice_info[1]}")

# 6. 删除数据
cursor.execute("DELETE FROM users WHERE name = ?", ('Bob',))
conn.commit()
print("\nBob 的记录已删除。")

print("\n--- 删除 Bob 后查询

你可能感兴趣的:(Python,jvm,oracle,数据库)