连接到数据库
于 2020 年 1 月 7 日更新
在我们开始将数据库与 python 一起使用之前,必须先连接到数据库。 与 python 的数据库通信分为四个阶段:
- 创建一个连接对象。
- 创建一个游标对象以进行读取/写入。
- 与数据库进行交互。
- 关闭连接。
注意:
我们将使用世界 mysql 数据库,因此首先下载并导入数据库,如下所示:
首次登录到您的 mysql 服务器
mysql -u root -p
此时将要求您输入密码,输入密码,然后按Enter
键。
source path/to/world.sql
连接到数据库
要连接到数据库,您需要使用connect()
方法。
语法:
MySQLdb.connect(
host="127.0.0.1",
user="username",
passwd="password",
db="database"
)
成功后,connect()
方法将返回一个连接对象。 否则,将引发OperationalError
异常。
from __future__ import print_function
import MySQLdb as my
db = my.connect(host="127.0.0.1",
user="root",
passwd="",
db="world"
)
print(db)
注意第一行import print_function from __future__
中的import
语句,这使我们能够在 Python 2 中使用 Python 3 版本的print()
函数。
预期输出:
<_mysql.connection open to '127.0.0.1' at 21fe6f0>
创建游标对象
开始与数据库进行交互之前,需要创建游标对象。
语法:connection_object.cursor()
成功时,它将返回Cursor
对象,否则将引发异常。
from __future__ import print_function
import MySQLdb as my
db = my.connect(host="127.0.0.1",
user="root",
passwd="",
db="world"
)
print(db)
cursor = db.cursor()
print(cursor)
预期输出:
<_mysql.connection open to '127.0.0.1' at 239e2c0>
<MySQLdb.cursors.Cursor object at 0x02444AD0>
与数据库交互
游标对象具有execute()
方法,可用于执行 sql 查询。
语法:cursor.execute(sql)
成功后,它将返回受影响的行数,否则将引发异常。
from __future__ import print_function
import MySQLdb as my
db = my.connect(host="127.0.0.1",
user="root",
passwd="",
db="world"
)
print(db)
cursor = db.cursor()
number_of_rows = cursor.execute("select * from city");
print(number_of_rows)
预期输出:
4079
断开连接
与数据库进行交互之后,您需要关闭数据库连接以放弃资源。
语法:connection_object.close()
from __future__ import print_function
import MySQLdb as my
db = my.connect(host="127.0.0.1",
user="root",
passwd="",
db="world"
)
print(db)
cursor = db.cursor()
number_of_rows = cursor.execute("select * from city");
print(number_of_rows)
db.close()
现在您知道了如何与数据库连接,执行查询并关闭连接。 在下一篇文章中,我们讨论如何从表中获取行。