python_crud
Python CRUD 操作是数据库操作的基础,CRUD 是 Create(创建)、Read(读取)、Update(更新)和 Delete(删除)的首字母缩写,代表了对数据库中的数据进行的四种基本操作。Python 提供了几种不同的库来实现这些操作,其中最常用的包括 SQLite、MySQLdb(用于 MySQL)、psycopg2(用于 PostgreSQL)以及 SQLAlchemy 等。 1. **SQLite**: SQLite 是一个轻量级的嵌入式数据库,不需要单独的服务器进程,可以直接在 Python 程序中使用。Python 的标准库中包含 `sqlite3` 模块,可以方便地进行 SQLite 数据库操作。例如,创建数据库连接、创建表、插入数据、查询数据、更新数据和删除数据: ```python import sqlite3 # 连接到SQLite数据库 (如果没有,则会自动创建) conn = sqlite3.connect('example.db') # 创建一个游标对象并执行SQL语句 cursor = conn.cursor() cursor.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)''') # 插入数据 cursor.execute("INSERT INTO users VALUES (1, 'Alice')") conn.commit() # 查询数据 cursor.execute("SELECT * FROM users") for row in cursor: print(row) # 更新数据 cursor.execute("UPDATE users SET name = 'Bob' WHERE id = 1") conn.commit() # 删除数据 cursor.execute("DELETE FROM users WHERE id = 1") conn.commit() # 关闭连接 conn.close() ``` 2. **MySQLdb(MySQL)**: 对于 MySQL 数据库,Python 有 `mysql-connector-python` 或 `MySQLdb` 库。这里以 `MySQLdb` 为例: ```python import MySQLdb # 连接MySQL数据库 db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="test_db") # 创建游标对象 cursor = db.cursor() # 执行SQL语句 cursor.execute("CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name CHAR(50))") # 插入数据 cursor.execute("INSERT INTO users (name) VALUES ('Alice')") db.commit() # 查询数据 cursor.execute("SELECT * FROM users") for row in cursor.fetchall(): print(row) # 更新数据 cursor.execute("UPDATE users SET name='Bob' WHERE name='Alice'") db.commit() # 删除数据 cursor.execute("DELETE FROM users WHERE name='Bob'") db.commit() # 关闭连接 db.close() ``` 3. **psycopg2(PostgreSQL)**: 对于 PostgreSQL 数据库,Python 通常使用 `psycopg2` 库: ```python import psycopg2 # 连接PostgreSQL数据库 conn = psycopg2.connect( host="localhost", database="test_db", user="postgres", password="your_password" ) # 创建游标 cur = conn.cursor() # 执行SQL语句 cur.execute("CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(50))") # 插入数据 cur.execute("INSERT INTO users (name) VALUES ('Alice')") conn.commit() # 查询数据 cur.execute("SELECT * FROM users") for row in cur.fetchall(): print(row) # 更新数据 cur.execute("UPDATE users SET name='Bob' WHERE name='Alice'") conn.commit() # 删除数据 cur.execute("DELETE FROM users WHERE name='Bob'") conn.commit() # 关闭连接 conn.close() ``` 4. **SQLAlchemy**: SQLAlchemy 是一个高级 SQL 工具包和 ORM(对象关系映射)系统,提供更高级别的数据库抽象。它使得数据库操作更加面向对象,易于理解: ```python from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData from sqlalchemy.orm import sessionmaker # 创建数据库引擎 engine = create_engine('sqlite:///example.db', echo=True) # 定义元数据和表结构 metadata = MetaData() users = Table('users', metadata, Column('id', Integer, primary_key=True), Column('name', String)) # 将表映射到数据库 metadata.create_all(engine) # 创建Session对象 Session = sessionmaker(bind=engine) session = Session() # 插入数据 user = users.insert().values(name='Alice') session.execute(user) # 查询数据 result = session.query(users).all() for row in result: print(row) # 更新数据 session.query(users).filter_by(name='Alice').update({'name': 'Bob'}) session.commit() # 删除数据 session.query(users).filter_by(name='Bob').delete() session.commit() # 关闭Session session.close() ``` 以上代码展示了 Python 如何使用不同的数据库库进行 CRUD 操作。每种库都有其特定的连接方式、执行 SQL 语句的方法以及事务管理。熟练掌握这些知识将使你在处理数据库时更加得心应手。在实际项目中,根据数据库类型和项目需求选择合适的库,同时考虑性能、安全性等因素。
- 1
- 粉丝: 27
- 资源: 4596
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助