Python連接數(shù)據(jù)庫(kù)通常使用數(shù)據(jù)庫(kù)適配器或數(shù)據(jù)庫(kù)連接庫(kù)。不同的數(shù)據(jù)庫(kù)系統(tǒng)(如MySQL, PostgreSQL, SQLite, Oracle等)有不同的適配器。以下是一些常見(jiàn)數(shù)據(jù)庫(kù)系統(tǒng)的Python連接方法:
MySQL:使用mysql-connector-python或PyMySQL庫(kù)。
安裝:pip install mysql-connector-python 或 pip install PyMySQL
示例代碼:
import mysql.connector
# 連接數(shù)據(jù)庫(kù)
connection = mysql.connector.connect(
host='localhost',
user='yourusername',
password='yourpassword',
database='mydatabase'
)
cursor = connection.cursor()
# 執(zhí)行SQL查詢(xún)
cursor.execute("SELECT * FROM mytable")
records = cursor.fetchall()
# 關(guān)閉連接
cursor.close()
connection.close()
PostgreSQL:使用psycopg2庫(kù)。
安裝:pip install psycopg2
示例代碼:
import psycopg2
# 連接數(shù)據(jù)庫(kù)
connection = psycopg2.connect(
host="localhost",
database="mydatabase",
user="yourusername",
password="yourpassword"
)
cursor = connection.cursor()
# 執(zhí)行SQL查詢(xún)
cursor.execute("SELECT * FROM mytable")
records = cursor.fetchall()
# 關(guān)閉連接
cursor.close()
connection.close()
SQLite:Python標(biāo)準(zhǔn)庫(kù)中自帶sqlite3。
示例代碼:
import sqlite3
# 連接數(shù)據(jù)庫(kù)
connection = sqlite3.connect('mydatabase.db')
cursor = connection.cursor()
# 執(zhí)行SQL查詢(xún)
cursor.execute("SELECT * FROM mytable")
records = cursor.fetchall()
# 關(guān)閉連接
cursor.close()
connection.close()
Oracle:使用cx_Oracle庫(kù)。
安裝:pip install cx_Oracle
示例代碼:
python
復(fù)制
import cx_Oracle
# 連接數(shù)據(jù)庫(kù)
connection = cx_Oracle.connect(
user="yourusername",
password="yourpassword",
dsn="localhost/mydatabase"
)
cursor = connection.cursor()
# 執(zhí)行SQL查詢(xún)
cursor.execute("SELECT * FROM mytable")
records = cursor.fetchall()
# 關(guān)閉連接
cursor.close()
connection.close()
在連接數(shù)據(jù)庫(kù)時(shí),需要確保數(shù)據(jù)庫(kù)服務(wù)正在運(yùn)行,并且提供的連接參數(shù)(如主機(jī)、用戶名、密碼和數(shù)據(jù)庫(kù)名)是正確的。此外,根據(jù)數(shù)據(jù)庫(kù)的不同,可能還需要安裝數(shù)據(jù)庫(kù)客戶端或驅(qū)動(dòng)程序。
進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),通常使用SQL語(yǔ)句。在Python中,這些語(yǔ)句通過(guò)適配器的execute方法執(zhí)行。結(jié)果可以通過(guò)fetchone(獲取一個(gè)記錄)、fetchall(獲取所有記錄)等方法獲取。
請(qǐng)根據(jù)您的具體需求選擇合適的數(shù)據(jù)庫(kù)和適配器,并遵循相應(yīng)的安全最佳實(shí)踐,例如使用參數(shù)化查詢(xún)以防止SQL注入攻擊。