首页 > 编程知识 正文

Python3中操纵数据库

时间:2023-11-21 20:43:58 阅读:300579 作者:GYNM

Python3是一种功能强大的编程语言,它提供了许多用于处理数据库的工具和库。在这篇文章中,我们将从多个方面详细阐述如何使用Python3操纵数据库。

一、连接数据库

连接到数据库是使用Python3操纵数据库的第一步。Python提供了各种库来实现与不同类型的数据库交互,如MySQL、SQLite、PostgreSQL等。下面是一个连接MySQL数据库的示例:

import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test')

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

# 执行SQL查询
sql = "SELECT * FROM students"
cursor.execute(sql)

# 获取查询结果
result = cursor.fetchall()

# 打印结果
for row in result:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()

上述代码使用pymysql库连接到MySQL数据库,并执行了一个简单的查询。我们首先创建了一个连接对象conn,并指定了数据库的主机、端口、用户名、密码和数据库名称。然后我们创建了一个游标对象cursor,它用于执行SQL查询并获取结果。

二、执行CRUD操作

CRUD(Create、Retrieve、Update、Delete)是对数据库数据进行增删改查的操作。Python3提供了各种库和工具来执行这些操作。

1. 创建数据

要向数据库中插入新数据,我们可以使用INSERT INTO语句。下面是一个示例:

import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test')

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

# 执行插入语句
sql = "INSERT INTO students(name, age) VALUES('Alice', 20)"
cursor.execute(sql)

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

2. 检索数据

要从数据库中检索数据,我们可以使用SELECT语句。下面是一个示例:

import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test')

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

# 执行查询语句
sql = "SELECT * FROM students"
cursor.execute(sql)

# 获取查询结果
result = cursor.fetchall()

# 打印结果
for row in result:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()

3. 更新数据

要更新数据库中的数据,我们可以使用UPDATE语句。下面是一个示例:

import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test')

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

# 执行更新语句
sql = "UPDATE students SET age = 22 WHERE name = 'Alice'"
cursor.execute(sql)

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

4. 删除数据

要删除数据库中的数据,我们可以使用DELETE语句。下面是一个示例:

import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test')

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

# 执行删除语句
sql = "DELETE FROM students WHERE name = 'Alice'"
cursor.execute(sql)

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

三、使用ORM框架

ORM(Object-Relational Mapping)是一种编程技术,它将数据库中的表映射为编程语言中的对象,简化了数据库操作。Python3提供了许多优秀的ORM框架,如SQLAlchemy、Django ORM等。

使用ORM框架可以更方便地操作数据库,而不必编写原始的SQL语句。下面是一个使用SQLAlchemy进行数据操作的示例:

from sqlalchemy import create_engine, Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 创建引擎
engine = create_engine('mysql+pymysql://root:password@localhost:3306/test')

# 创建基类
Base = declarative_base()

# 创建映射类
class Student(Base):
    __tablename__ = 'students'
    id = Column(Integer, primary_key=True)
    name = Column(String(20))
    age = Column(Integer)

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 创建新数据
student = Student(name='Alice', age=20)
session.add(student)
session.commit()

# 查询数据
students = session.query(Student).all()
for student in students:
    print(student.name, student.age)

# 更新数据
student = session.query(Student).filter_by(name='Alice').first()
student.age = 22
session.commit()

# 删除数据
student = session.query(Student).filter_by(name='Alice').first()
session.delete(student)
session.commit()

上述代码使用SQLAlchemy框架连接到MySQL数据库,并定义了一个映射类Student来映射数据库中的students表。我们可以使用这个映射类在数据库中进行数据操作,而无需编写原始的SQL语句。

以上是关于使用Python3操纵数据库的详细介绍。通过连接数据库、执行CRUD操作以及使用ORM框架,我们可以轻松地操作各种类型的数据库。无论是创建数据、检索数据、更新数据还是删除数据,Python3都提供了强大的工具和库来满足我们的需求。

希望本文对您在Python3中操纵数据库的学习和实践有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。