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