一、連接方式
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/zh-hant/n/195989.html