于 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_functionimport MySQLdb as mydb = 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_functionimport MySQLdb as mydb = 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_functionimport MySQLdb as mydb = 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_functionimport MySQLdb as mydb = 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()
现在您知道了如何与数据库连接,执行查询并关闭连接。 在下一篇文章中,我们讨论如何从表中获取行。
