在Python中调用SQL可以通过多种方式实现,以下是一些常见的方法:
使用数据库连接库
MySQL
import mysql.connector
创建数据库连接
cnx = mysql.connector.connect(
user='username',
password='password',
host='localhost',
database='mydatabase'
)
创建游标对象
cursor = cnx.cursor()
执行SQL语句
cursor.execute('SELECT * FROM mytable')
获取查询结果
for row in cursor:
print(row)
关闭数据库连接
cursor.close()
cnx.close()
SQLite
import sqlite3
连接到数据库(如果不存在,将创建一个新的数据库文件)
conn = sqlite3.connect('example.db')
创建一个游标对象,用于执行SQL命令
cursor = conn.cursor()
执行SQL语句命令
cursor.execute('CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)')
插入数据
cursor.execute("INSERT INTO test (name) VALUES ('John Doe')")
提交到数据库
conn.commit()
查询数据
cursor.execute('SELECT * FROM test')
获取查询结果
for row in cursor:
print(row)
关闭连接
cursor.close()
conn.close()
使用第三方库
pymysql
import pymysql
配置数据库参数进行连接
my_cnt = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='',
database='test',
charset='utf8'
)
创建用于执行查询的新游标
my_data = my_cnt.cursor()
执行SQL查询语句
my_data.execute('SELECT * FROM test.user')
获取查询结果
get_data = my_data.fetchall()
打印查询结果
for row in get_data:
print(row)
关闭数据库连接
my_cnt.close()
SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
创建数据库引擎
engine = create_engine('mysql+pymysql://root:@localhost/test')
创建会话
Session = sessionmaker(bind=engine)
session = Session()
执行SQL查询
result = session.execute('SELECT * FROM test.user')
获取查询结果
for row in result:
print(row)
关闭会话
session.close()
执行.sql文件
import sqlite3
连接到数据库(如果不存在,将创建一个新的数据库文件)
conn = sqlite3.connect('example.db')
创建一个游标对象,用于执行SQL命令
cursor = conn.cursor()
读取.sql文件并执行
with open('example.sql', 'r') as file:
sql_script = file.read()
cursor.executescript(sql_script)
提交到数据库
conn.commit()
关闭连接
cursor.close()
conn.close()
以上示例展示了如何在Python中连接到不同类型的数据库(如MySQL、SQLite、SQL Server),执行SQL查询,并处理查询结果。请根据你的具体需求选择合适的方法和库