温馨提示×

python与sql如何连接

sql
小樊
84
2024-10-21 09:15:21
栏目: 云计算

Python与SQL的连接可以通过多种方式实现,具体取决于你使用的数据库类型。以下是一些常见的方法:

  1. 使用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()
  1. 使用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()
  1. 使用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()

注意:在实际应用中,请确保不要将敏感信息(如数据库凭据)硬编码到脚本中。最好使用环境变量或其他安全方法来存储这些信息。

0