首页 > 编程知识 正文

Python如何连接SQL数据库

时间:2023-11-22 15:29:50 阅读:301603 作者:GZIH

本文将详细介绍使用Python连接SQL数据库的方法和技巧,包括使用不同的库和模块实现数据库连接、执行SQL语句以及处理查询结果等操作。

一、使用Python内置的sqlite3模块连接SQLite数据库

Python内置了sqlite3模块,可以用于连接和操作SQLite数据库。下面是一个简单的示例代码:

import sqlite3

# 连接SQLite数据库
conn = sqlite3.connect('test.db')

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

# 执行SQL语句
cursor.execute('CREATE TABLE IF NOT EXISTS students (id INTEGER, name TEXT, age INTEGER)')

# 提交事务
conn.commit()

# 关闭数据库连接
conn.close()

在这个示例中,我们首先使用connect()方法连接到SQLite数据库。然后,我们创建了一个游标对象cursor,用于执行SQL语句。

接下来,我们使用execute()方法执行了一个CREATE TABLE语句,创建了一个名为students的表。最后,我们使用commit()方法提交事务,并使用close()方法关闭数据库连接。

二、使用第三方库pymysql连接MySQL数据库

如果你使用的是MySQL数据库,你可以使用第三方库pymysql来连接和操作MySQL数据库。下面是一个示例代码:

import pymysql

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

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

# 执行SQL语句
cursor.execute('CREATE TABLE IF NOT EXISTS students (id INT PRIMARY KEY, name VARCHAR(20), age INT)')

# 提交事务
conn.commit()

# 关闭数据库连接
conn.close()

在这个示例中,我们使用connect()方法传入相应的数据库连接信息,连接到MySQL数据库。然后,我们创建了一个游标对象cursor,用于执行SQL语句。

接下来,我们使用execute()方法执行了一个CREATE TABLE语句,创建了一个名为students的表。最后,我们使用commit()方法提交事务,并使用close()方法关闭数据库连接。

三、使用ORM框架连接各种SQL数据库

ORM(Object-Relational Mapping)框架可以帮助我们更方便地操作数据库,抽象了底层数据库的操作细节,使用面向对象的方式来操作数据库。下面是一个使用SQLAlchemy连接和操作数据库的示例代码:

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

# 创建数据库连接引擎
engine = create_engine('sqlite:///test.db')

# 创建ORM基类
Base = declarative_base()

# 定义模型类
class Student(Base):
    __tablename__ = 'students'
    id = Column(Integer, primary_key=True)
    name = Column(String(20))
    age = Column(Integer)

# 创建数据库表
Base.metadata.create_all(engine)

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

# 创建会话对象
session = Session()

# 插入数据
student = Student(name='John', age=20)
session.add(student)
session.commit()

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

# 关闭会话
session.close()

在这个示例中,我们首先使用create_engine()方法创建了一个数据库连接引擎。然后,我们使用declarative_base()创建了一个基类Base,用于定义模型类。接下来,我们定义了一个名为Student的模型类,它继承自Base并定义了表名以及各个列的属性。

然后,我们使用metadata.create_all(engine)方法创建了数据库表。接着,我们使用sessionmaker()方法创建了一个会话工厂Session,然后使用Session()创建了一个会话对象session

接下来,我们使用add()方法将一个Student实例添加到会话中,然后使用commit()方法提交事务。最后,我们使用query()方法查询所有的Student对象,并对查询结果进行遍历和打印。

最后,我们使用close()方法关闭会话。

四、使用其他库和模块连接SQL数据库

除了上面介绍的sqlite3、pymysql和SQLAlchemy外,还有其他许多库和模块可以用于连接和操作SQL数据库,如pyodbc、MySQLdb等。具体的使用方法可以参考它们的官方文档。

总结起来,本文介绍了使用Python连接SQL数据库的几种方法,包括使用内置模块sqlite3连接SQLite数据库、使用第三方库pymysql连接MySQL数据库、使用ORM框架SQLAlchemy连接和操作各种SQL数据库。根据需要和实际情况,选择合适的方法和库来连接和操作SQL数据库。

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