Python中与数据库交互的常用函数
Python中与数据库交互的常用函数包括:连接数据库的函数、执行SQL语句的函数、获取数据的函数、更新数据的函数等。以下是对这些函数的详细介绍。
1.连接数据库的函数
Python中与数据库交互的 步是建立连接。常用的连接数据库的函数有以下几个:
(1)MySQLdb.connect()
这是Python中连接MySQL数据库的标准库函数。常用的参数有host、port、user、passwd、db等。例如:
import MySQLdb db = MySQLdb.connect(host="localhost",user="root",passwd="pwd",db="mydb")
(2)psycopg2.connect()
这是Python中连接PostgreSQL数据库的标准库函数。常用的参数有host、port、user、password、database等。例如:
import psycopg2 db = psycopg2.connect(host="localhost",database="mydb",user="root",password="pwd")
(3)cx_Oracle.connect()
这是Python中连接Oracle数据库的标准库函数。常用的参数有user、password、dsn等。例如:
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('localhost', 'port', service_name='service_name')
db = cx_Oracle.connect(user="root",password="pwd",dsn=dsn_tns)
2.执行SQL语句的函数
连接到数据库后,需要执行SQL语句来进行操作。常用的执行SQL语句的函数有以下几个:
(1)cursor.execute()
这是Python中执行SQL语句的标准函数。常用的参数有sql、params等。例如:
cursor = db.cursor()
sql = "SELECT * FROM mytable WHERE name = %s"
params = ('John',)
cursor.execute(sql, params)
(2)cursor.executemany()
这是Python中执行批量SQL语句的函数。与cursor.execute类似,只是可以一次执行多个SQL语句。例如:
cursor = db.cursor()
sql = "INSERT INTO mytable (name, age) VALUES (%s, %s)"
params = [('John', 25), ('Tom', 30)]
cursor.executemany(sql, params)
(3)cursor.callproc()
这是Python中执行存储过程的函数。常用的参数有procname、args、keyword等。例如:
cursor = db.cursor() procname = "myproc" args = (10, 20) cursor.callproc(procname, args)
3.获取数据的函数
执行SQL语句后,需要获取数据库中的数据。常用的获取数据的函数有以下几个:
(1)cursor.fetchone()
这是Python中获取一条数据的函数。例如:
cursor = db.cursor()
sql = "SELECT * FROM mytable WHERE name = %s"
params = ('John',)
cursor.execute(sql, params)
data = cursor.fetchone()
(2)cursor.fetchmany()
这是Python中获取多条数据的函数。例如:
cursor = db.cursor() sql = "SELECT * FROM mytable WHERE age > %s" params = (20,) cursor.execute(sql, params) data = cursor.fetchmany(size=2)
(3)cursor.fetchall()
这是Python中获取所有数据的函数。例如:
cursor = db.cursor() sql = "SELECT * FROM mytable" cursor.execute(sql) data = cursor.fetchall()
4.更新数据的函数
获取到数据后,需要进行更新操作。常用的更新数据的函数有以下几个:
(1)cursor.execute()
执行UPDATE、DELETE等SQL语句来更新数据。例如:
cursor = db.cursor() sql = "UPDATE mytable SET age = %s WHERE name = %s" params = (30, 'John') cursor.execute(sql, params)
(2)cursor.executemany()
批量执行UPDATE、DELETE等SQL语句来更新数据。例如:
cursor = db.cursor() sql = "UPDATE mytable SET age = %s WHERE name = %s" params = [(30, 'John'), (35, 'Tom')] cursor.executemany(sql, params)
(3)cursor.callproc()
执行存储过程来更新数据。例如:
cursor = db.cursor() procname = "myproc" args = (10, 20) cursor.callproc(procname, args)
以上是Python中与数据库交互的常用函数,通常情况下,这些函数能够满足日常开发中的需求。
