Python可以使用多种方式连接数据库,比如通过ODBC、JDBC等。但是最常用的方式是使用Python自带的标准库和不同数据库的适配器。下面是使用Python连接数据库的完整攻略:
1. 安装数据库适配器驱动程序
如果你想使用Python连接到某个特定的数据库,你第一步需要安装其相应的适配器驱动程序,例如:
- MySQL: PyMySQL, MySQLdb2
- Oracle: cx_Oracle
- PostgreSQL: psycopg2
- SQLite: sqlite3
安装这些适配器的方法通常是使用PIP包管理工具,例如:
pip install pymysql
2. 导入数据库适配器
在Python中使用某种数据库之前,需要先从标准库中导入它的适配器。例如:
import pymysql
import cx_Oracle
import psycopg2
import sqlite3
在导入适配器之后,你就可以使用它们提供的函数来连接和操作相应的数据库了。
3. 建立数据库连接
建立数据库连接是使用Python连接数据库的核心步骤。数据库连接通常包含连接到数据库的驱动程序名称、主机名、端口、数据库名称、用户名和密码等信息。不同的适配器可能有不同的连接方式,但大多数都支持以下基本格式:
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='username', passwd='password', db='dbname')
这里使用pymysql作为适配器,建立一个MySQL数据库连接,参数说明如下:
- host: 数据库服务器地址
- port: 数据库服务端口号,默认为MySQL的默认端口3306
- user: 数据库用户名
- passwd: 数据库密码
- db: 数据库名称
建立好连接之后,你就可以使用该连接进行各种操作了。
4. 执行SQL语句
建立好数据库连接之后,你需要使用Python执行各种SQL语句来操作数据库,例如查询、插入、更新、删除等操作。执行SQL语句的方法通常是使用cursor对象上的execute()方法。例如:
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='username', passwd='password', db='dbname')
cursor = conn.cursor()
sql = "SELECT * FROM mytable"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
print(row)
conn.close()
在这个例子中,我们使用pymysql连接了MySQL数据库,并执行了一个SELECT查询。execute()函数执行查询并返回结果。查询返回的结果保存在cursor对象中,我们可以使用fetchall()函数直接获取全部记录,也可以使用fetchone()、fetchmany()等函数获取指定数量的记录。
5. 关闭数据库连接
不管你完成了何种数据库操作,都需要在最终关闭数据库连接,释放资源。你可以使用connection对象上的close()方法来关闭数据库连接:
conn.close()
另外,还可以使用上下文管理器来操作数据库连接。例如:
import pymysql
with pymysql.connect(...) as conn:
with conn.cursor() as cursor:
sql = "SELECT * FROM mytable"
cursor.execute(sql)
results = cursor.fetchall()
# do something with results
这种方式不用像上面的方式一样显式地关闭连接。
两条示例代码:
- 连接MySQL数据库并查询数据:
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='password', db='testdb')
cursor = conn.cursor()
sql = "SELECT * FROM users"
cursor.execute(sql)
results = cursor.fetchall()
# 输出查询结果
for row in results:
print(row)
conn.close()
- 连接SQLite数据库并插入数据:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建表users
cursor.execute('''CREATE TABLE users (id integer, name text, age integer)''')
# 插入数据
users = [(1, 'Alice', 25), (2, 'Bob', 30), (3, 'Charlie', 20)]
cursor.executemany('INSERT INTO users VALUES (?, ?, ?)', users)
# 提交修改
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
results = cursor.fetchall()
# 输出查询结果
for row in results:
print(row)
conn.close()
以上就是Python连接数据库的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python调用文件连接数据库 - Python技术站