欢迎访问宙启技术站
智能推送

Python数据库编程:10个重要函数

发布时间:2023-06-08 22:11:22

在Python中,数据库编程是一个非常重要的部分。数据库是一个关键的数据存储和管理平台,用于保存和管理与组织的所有数据。数据库有很多种类型,如关系型数据库(如MySQL和Oracle)和非关系型数据库(如MongoDB和Cassandra)。数据库编程的目的是通过编写Python脚本来与数据库通信,以便读取和修改数据库中的数据。在这篇文章中,我们将讨论Python中的10个重要的数据库编程函数。

1. connect()函数

connect()函数用于连接到数据库。它接受各种参数,例如数据库名称、用户名、密码、主机名和端口号。下面是一个连接到MySQL数据库的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

2. cursor()函数

cursor()函数用于创建一个游标对象,该对象用于执行SQL语句。游标通常被用来遍历记录,进行数据操作。下面是一个使用游标对象从MySQL数据库中读取数据的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

3. execute()函数

execute()函数用于执行SQL语句。执行的SQL语句可以是更改数据库、插入新行或查询数据。下面是一个从Python插入新行到MySQL数据库的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

4. fetchall()函数

fetchall()函数返回所有的记录。它从游标对象获取数据,并返回一个结果列表。下面是一个从MySQL数据库中获取数据的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

5. fetchone()函数

fetchone()函数返回下一行。它从游标对象获取数据,并返回一个结果列表。下面是一个从MySQL数据库中获取单行数据的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchone()

print(myresult)

6. rowcount属性

rowcount属性用于获取execute()函数执行后影响的行数。下面是一个使用rowcount属性获取MySQL数据库更新的行数的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

7. commit()函数

commit()函数用于提交当前事务。一旦执行execute()函数,数据就会被更新,但直到commit()函数被调用,数据才会完全保存。下面是一个从Python更新MySQL数据库的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"

mycursor.execute(sql)

mydb.commit()

print("Record updated successfully")

8. rollback()函数

rollback()函数用于撤销当前事务。如果在执行execute()函数时遇到问题,则可以使用rollback()函数回到先前的状态。下面是一个在Python中使用rollback函数回滚MySQL数据库更改的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"

try:
  mycursor.execute(sql)
  mydb.commit()
except:
  mydb.rollback()

print("Record updated successfully")

9. executemany()函数

executemany()函数用于执行相同的操作多次,例如插入多个行。它接受一个序列,该序列包含一个值元组的列表,每个值元组将插入到数据库中。下面是一个在Python插入多行到MySQL数据库的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
  ('Peter', 'Lowstreet 4'),
  ('Amy', 'Apple st 652'),
  ('Hannah', 'Mountain 21'),
  ('Michael', 'Valley 345'),
  ('Sandy', 'Ocean blvd 2'),
  ('Betty', 'Green Grass 1'),
  ('Richard', 'Sky st 331'),
  ('Susan', 'One way 98'),
  ('Vicky', 'Yellow Garden 2'),
  ('Ben', 'Park Lane 38'),
  ('William', 'Central st 954'),
  ('Chuck', 'Main Road 989'),
  ('Viola', 'Sideway 1633')
]

mycursor.executemany(sql, val)

mydb.commit()

print(mycursor.rowcount, "was inserted.")

10. close()函数

close()函数用于关闭连接对象。如果不再需要与数据库交互,则可以使用close()函数关闭连接对象。下面是一个使用close()函数关闭MySQL数据库连接的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

#execute SQL operation

mydb.close()

print("Connection closed successfully")

结语

以上是Python中10个重要的数据库编程函数。当涉及到与数据库交互时,理解这些函数对于编写高质量的Python代码非常重要。同时,它使你能够更有效地编写代码,以便从数据库中读取和修改数据。