Python与SQL的连接可以通过多种方式实现,具体取决于你使用的数据库类型。以下是一些常见的方法:
- 使用Python内置的sqlite3模块(适用于SQLite数据库):
import sqlite3 # 连接到SQLite数据库(如果不存在,则创建) conn = sqlite3.connect('example.db') # 创建一个游标对象 cursor = conn.cursor() # 执行SQL命令 cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)') cursor.execute("INSERT INTO users (name) VALUES ('Alice')") cursor.execute("INSERT INTO users (name) VALUES ('Bob')") # 提交更改 conn.commit() # 查询数据 cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row) # 关闭连接 conn.close()
- 使用Python的MySQL Connector/Python模块(适用于MySQL数据库):
首先,你需要安装这个模块:
pip install mysql-connector-python
然后,你可以使用以下代码连接到MySQL数据库:
import mysql.connector # 连接到MySQL数据库 conn = mysql.connector.connect( host='localhost', user='your_username', password='your_password', database='your_database' ) # 创建一个游标对象 cursor = conn.cursor() # 执行SQL命令 cursor.execute('CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255))') cursor.execute("INSERT INTO users (name) VALUES ('Alice')") cursor.execute("INSERT INTO users (name) VALUES ('Bob')") # 提交更改 conn.commit() # 查询数据 cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row) # 关闭连接 conn.close()
- 使用Python的psycopg2模块(适用于PostgreSQL数据库):
首先,你需要安装这个模块:
pip install psycopg2
然后,你可以使用以下代码连接到PostgreSQL数据库:
import psycopg2 # 连接到PostgreSQL数据库 conn = psycopg2.connect( host='localhost', user='your_username', password='your_password', dbname='your_database' ) # 创建一个游标对象 cursor = conn.cursor() # 执行SQL命令 cursor.execute('CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(255))') cursor.execute("INSERT INTO users (name) VALUES ('Alice')") cursor.execute("INSERT INTO users (name) VALUES ('Bob')") # 提交更改 conn.commit() # 查询数据 cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row) # 关闭连接 conn.close()
注意:在实际应用中,请确保不要将敏感信息(如数据库凭据)硬编码到脚本中。最好使用环境变量或其他安全方法来存储这些信息。