一、连接方式
MySQL可以直接使用Python提供的驱动程序进行连接,而Access则需要通过ODBC Driver Manager驱动程序连接。
MySQL连接代码示例:
import mysql.connector
# 建立连接
cnx = mysql.connector.connect(user='', password='', host='', database='')
# 获取游标
cursor = cnx.cursor()
# 执行查询语句
query = ''
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 关闭游标和连接
cursor.close()
cnx.close()
Access连接代码示例:
import pyodbc
# 建立连接
cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\path\\to\\db.accdb')
# 获取游标
cursor = cnxn.cursor()
# 执行查询语句
query = ''
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 关闭游标和连接
cursor.close()
cnxn.close()
二、数据类型
MySQL和Access在数据类型上有一些差异。MySQL支持的数据类型较为丰富,例如TINYINT、BIGINT、DOUBLE等数据类型,在处理大数据量和高精度计算时更为方便。而Access则不支持TINYINT和BIGINT数据类型。
MySQL在执行查询语句时,需要注意些数据类型的转换。例如,在查询数据时,MySQL的日期时间类型需要转换为Python的datetime类型。
MySQL查询数据示例:
import mysql.connector
import datetime
# 建立连接
cnx = mysql.connector.connect(user='', password='', host='', database='')
# 获取游标
cursor = cnx.cursor()
# 执行查询语句
query = ''
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 将MySQL的date类型转换为datetime类型
for row in result:
row['date'] = datetime.datetime.combine(row['date'], datetime.time.min)
# 关闭游标和连接
cursor.close()
cnx.close()
Access查询数据代码示例:
import pyodbc
# 建立连接
cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\path\\to\\db.accdb')
# 获取游标
cursor = cnxn.cursor()
# 执行查询语句
query = ''
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 关闭游标和连接
cursor.close()
cnxn.close()
三、索引和限制
MySQL支持更丰富的索引类型,例如全文索引、空间索引等。同时,MySQL也可以限制查询结果,例如使用LIMIT限制查询结果的数量。
Access则支持的索引类型较少,只支持B树索引,同时也不支持限制查询结果的数量。
MySQL查询数据代码示例:
import mysql.connector
# 建立连接
cnx = mysql.connector.connect(user='', password='', host='', database='')
# 获取游标
cursor = cnx.cursor()
# 执行限制查询结果的语句
query = ''
cursor.execute(query)
# 获取查询结果
result = cursor.fetchmany(10)
# 关闭游标和连接
cursor.close()
cnx.close()
Access查询数据代码示例:
import pyodbc
# 建立连接
cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\path\\to\\db.accdb')
# 获取游标
cursor = cnxn.cursor()
# 执行查询语句
query = ''
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# Access不支持限制结果数量,需要手动限制
result = result[:10]
# 关闭游标和连接
cursor.close()
cnxn.close()
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/195989.html