python与sql怎样交互

avatar
作者
筋斗云
阅读量:0

Python与SQL的交互通常是通过数据库连接库来实现的。以下是一些常见数据库及其对应的Python库,以及如何使用这些库与SQL进行交互的基本步骤:

  1. SQLite(内置在Python中,无需额外安装)
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. MySQL/MariaDB(使用mysql-connector-python库)

首先,安装库:

pip install mysql-connector-python 

然后,使用以下代码连接和交互:

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. PostgreSQL(使用psycopg2库)

首先,安装库:

pip install psycopg2 

然后,使用以下代码连接和交互:

import psycopg2  # 连接到PostgreSQL数据库 conn = psycopg2.connect(     host='localhost',     dbname='your_database',     user='your_username',     password='your_password' )  # 创建一个游标对象 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() 

注意:在实际应用中,请确保不要将敏感信息(如数据库凭据)硬编码到脚本中。可以使用环境变量、配置文件或密钥管理服务来安全地存储这些信息。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!