Python与MySQL数据库:连接与操作实例

作者:狼烟四起2023.10.08 20:26浏览量:333

简介:Python连接MySQL数据库

Python连接MySQL数据库
Python是一种广泛使用的编程语言,因其简单易学、代码可读性高而受到开发人员的喜爱。MySQL是一种流行的关系型数据库管理系统,广泛应用于Web开发。在Python中,可以使用多种库来连接MySQL数据库,其中最常用的是PyMySQL和mysql-connector-python。本文将介绍如何使用Python连接MySQL数据库,主要包括以下内容:

  1. 介绍
    Python是一种解释型、面向对象、动态数据类型的高级编程语言。它具有简单易学、易读易写、可扩展性强等特点。MySQL是一种关系型数据库管理系统,它具有可移植性、易用性、高性能等特点,同时提供了大量的编程接口。使用Python连接MySQL数据库可以方便地在Python程序中操作MySQL数据库,提高开发效率和代码质量。
  2. 安装与连接
    在Python中连接MySQL数据库需要先安装相应的库。PyMySQL是Python中常用的MySQL库之一,它支持Python的异步操作,可以提高程序的运行效率。安装PyMySQL可以使用以下命令:
    1. pip install pymysql
    安装完成后,可以使用以下代码连接MySQL数据库:
    1. import pymysql
    2. # 创建连接对象
    3. conn = pymysql.connect(
    4. host='localhost', # 数据库主机地址
    5. user='root', # 数据库用户名
    6. password='password', # 数据库密码
    7. db='mydatabase' # 数据库名
    8. )
    9. # 创建游标对象
    10. cursor = conn.cursor()
    以上代码中,我们首先导入了pymysql库,然后使用pymysql.connect()方法创建了一个连接对象,指定了数据库的主机地址、用户名、密码和数据库名等参数。接着,我们使用conn.cursor()方法创建了一个游标对象,用于执行SQL语句和获取结果。
  3. 操作实例
    连接MySQL数据库后,我们可以使用游标对象执行SQL语句,对数据库进行操作。以下是一些常见的数据库操作示例:
    查询数据:
    1. # 查询mytable表中的所有数据
    2. cursor.execute('SELECT * FROM mytable')
    3. rows = cursor.fetchall() # 获取所有数据
    4. for row in rows:
    5. print(row)
    插入数据:
    1. # 向mytable表中插入一条数据
    2. cursor.execute('INSERT INTO mytable (name, age) VALUES (%s, %s)', ('Tom', 25))
    3. conn.commit() # 提交事务
    更新数据:
    1. # 更新mytable表中的数据
    2. cursor.execute('UPDATE mytable SET age=30 WHERE name=%s', ('Tom',))
    3. conn.commit() # 提交事务
    删除数据:
    1. # 删除mytable表中的数据
    2. cursor.execute('DELETE FROM mytable WHERE name=%s', ('Tom',))
    3. conn.commit() # 提交事务
    在以上示例中,我们使用游标对象的execute()方法执行SQL语句,使用fetchall()方法获取查询结果,使用commit()方法提交事务。对于插入、更新和删除操作,我们使用execute()方法执行SQL语句,并使用参数占位符%s来代替实际的值,这样可以防止SQL注入攻击,提高安全性。
  4. 面向对象
    Python是一种面向对象的语言,可以使用面向对象编程思想连接MySQL数据库。以下是一个使用面向对象编程思想连接MySQL数据库的示例:
    ```python
    class Database:
    def init(self, host, user, password, db):
    self.conn = pymysql.connect(host=host, user=user, password=password, db=db)
    self.cursor = self.conn.cursor()
    def query(self, sql, params=None):
    try:
    self.cursor.execute(sql, params)
    return self.cursor.fetchall()
    except Exception as e:
    print(f”Error: {e}”)
    return None
    def insert(self, sql, params=None):
    try:
    self.cursor.execute(sql, params)
    self.conn.commit()
    except Exception as e:
    print(f”Error: {e}”)
    return None
    def update(self, sql, params=None):
    try:
    self.cursor.execute(sql, params)
    self.conn.commit()
    except Exception as e:
    print(f”Error: {e}”)
    return None
    def delete(self, sql,