Python衔接MySQL数据库编程

数据库编程是在应用程序中与数据库交互和办理数据的要害部分。MySQL是一种盛行的联系型数据库办理体系(RDBMS),在Python中进行MySQL数据库编程相对简单。

本文介绍怎么运用Python进行MySQL数据库编程,包含衔接数据库、履行SQL查询、刺进、更新和删去数据等操作。

目录

  1. 安装MySQL驱动
  2. 衔接MySQL数据库
  3. 创立数据库
  4. 创立数据表
  5. 刺进数据
  6. 查询数据
  7. 更新数据
  8. 删去数据
  9. 履行业务
  10. 封闭数据库衔接
  11. 示例:一个完好的MySQL数据库编程示例
  12. 安全性留意事项
  13. 总结

1. 安装MySQL驱动

在开始之前,需求安装Python的MySQL数据库驱动程序。最常用的驱动程序之一是mysql-connector-python

运用pip进行安装:

pipinstallmysql-connector-python

2. 衔接MySQL数据库

在进行任何数据库操作之前,首先需求建立与MySQL数据库的衔接。通常,需求提供数据库的主机名、用户名、暗码和数据库名称。

以下是衔接到MySQL数据库的示例:

importmysql.connector
#创立数据库衔接
db=mysql.connector.connect(
host="localhost",#MySQL服务器地址
user="username",#用户名
password="password",#暗码
database="mydatabase"#数据库名称
)
#创立游标目标,用于履行SQL查询
cursor=db.cursor()

3. 创立数据库

创立一个新的数据库,能够履行以下操作:

#创立一个名为"mydatabase"的新数据库
cursor.execute("CREATEDATABASEmydatabase")

4. 创立数据表

在数据库中,数据以表格形式组织。在创立表格之前,需求定义表格的结构,包含列名、数据类型和束缚。

以下是一个示例:

#创立一个名为"customers"的数据表
cursor.execute("CREATETABLEcustomers(idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(255),addressVARCHAR(255))")

5. 刺进数据

刺进数据是将数据添加到数据表中的进程。能够运用SQL的INSERT INTO句子来履行刺进操作。

以下是一个示例:

#刺进一条记载到"customers"表中
sql="INSERTINTOcustomers(name,address)VALUES(%s,%s)"
values=("JohnSmith","123MainSt")
cursor.execute(sql,values)
#提交更改到数据库
db.commit()
print(f"刺进了{cursor.rowcount}条记载")

6. 查询数据

查询数据是从数据库中检索数据的进程。运用SQL的SELECT句子来履行查询操作。

以下是一个示例:

#查询一切记载
cursor.execute("SELECT*FROMcustomers")
#获取查询结果
results=cursor.fetchall()
forrowinresults:
print(row)

7. 更新数据

更新数据是修改现有数据的进程。运用SQL的UPDATE句子来履行更新操作。

以下是一个示例:

#更新"customers"表中id为1的记载
sql="UPDATEcustomersSETaddress=%sWHEREid=%s"
values=("456ElmSt",1)
cursor.execute(sql,values)
#提交更改到数据库
db.commit()
print(f"更新了{cursor.rowcount}条记载")

8. 删去数据

删去数据是从数据库中删去数据的进程。运用SQL的DELETE句子来履行删去操作。

以下是一个示例:

#删去"customers"表中id为1的记载
sql="DELETEFROMcustomersWHEREid=%s"
values=(1,)
cursor.execute(sql,values)
#提交更改到数据库
db.commit()
print(f"删去了{cursor.rowcount}条记载")

9. 履行业务

业务是一组SQL操作,要么全部成功,要么全部失利。在某些情况下,需求运用业务来保证数据库的完好性。

以下是一个示例:

try:
db.start_transaction()
#履行一系列SQL操作
cursor.execute("INSERTINTOcustomers(name,address)VALUES(%s,%s)",("Alice","789OakSt"))
cursor.execute("UPDATEcustomersSETaddress=%sWHEREid=%s",("789ElmSt",2))
db.commit()#提交业务
except:
db.rollback()#业务回滚,吊销之前的操作

10. 封闭数据库衔接

在完成数据库操作后,不要忘记封闭数据库衔接,以开释资源。

cursor.close()#封闭游标
db.close()#封闭数据库衔接

11. 示例:一个完好的MySQL数据库编程示例

以下是一个完好的MySQL数据库编程示例,包含衔接数据库、创立表格、刺进数据、查询数据、更新数据和删去数据:

importmysql.connector
#创立数据库衔接
db=mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
#创立游标目标
cursor=db.cursor()
#创立一个名为"customers"的数据表
cursor.execute("CREATETABLEcustomers(idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(255),addressVARCHAR(255))")
#刺进记载
sql="INSERTINTOcustomers(name,address)VALUES(%s,%s)"
values=[("JohnSmith","123MainSt"),("AliceJohnson","456ElmSt")]
cursor.executemany(sql,values)
db.commit()
#查询记载
cursor.execute("SELECT*FROMcustomers")
results=cursor.fetchall()
forrowinresults:
print(row)
#更新记载
sql="UPDATEcustomersSETaddress=%sWHEREname=%s"
values=("789OakSt","AliceJohnson")
cursor.execute(sql,values)
db.commit()
#删去记载
sql="DELETEFROMcustomersWHEREname=%s"
values=("JohnSmith",)
cursor.execute(sql,values)
db.commit()
#封闭游标和数据库衔接
cursor.close()
db.close()

12.安全性留意事项

在进行数据库编程时,请务必留意安全性。避免直接将用户提供的数据刺进SQL句子,以防止SQL注入攻击。能够运用参数化查询或ORM(目标联系映射)来增强安全性。

总结

MySQL数据库编程是Python应用程序的要害组成部分。本文介绍了怎么衔接数据库、创立数据表、刺进、查询、更新和删去数据,以及履行业务。经过这些操作,您能够有效地办理数据,并保证数据的完好性和安全性。希望本文对您在Python中进行MySQL数据库编程有所协助。