如何在Python中连接数据库
数据库是存储在计算机系统中的结构化信息或数据的组织良好的集合。在数据库中,数据以表格形式排列,我们可以通过查询来访问这些信息或数据。
Python可以用于连接数据库。MySQL是最流行的数据库之一。在本教程中,我们将学习如何通过Python建立与MySQL的连接。让我们理解以下使用Python操作MySQL的步骤:
- 安装MySQL驱动程序
- 创建连接对象
- 创建游标对象
- 执行查询
安装MySQL驱动程序
首先,我们需要在系统中安装MySQL驱动程序。请安装MySQL软件并配置设置。我们将使用MySQL连接器驱动程序,可以使用pip命令安装。打开命令提示符并输入以下命令。
python -m pip install mysql-connector-python
按下回车键。它将下载MySQL驱动程序。
- 验证驱动程序
让我们检查是否已正确安装。可以通过导入mysql.connector来完成。
import mysql.connector
如果这行代码执行没有出错,表示MySQL连接器已经成功安装。我们可以开始使用它了。
创建连接对象
mysql.connector提供了 connect() 方法用于在MySQL数据库和Python应用程序之间创建连接。以下是语法。
语法:
Conn_obj= mysql.connector.connect(host = <hostname>, user = <username>, passwd = <password>)
connect()函数接受以下参数。
- 主机名 – 它代表MySQL运行的服务器名称或IP地址。
- 用户名 – 它代表我们用来与MySQL服务器一起工作的用户的名称。默认情况下,MySQL数据库的用户名是root。
- 密码 – 安装MySQL数据库时提供密码。如果我们使用root,就不需要传递密码。
- 数据库 – 指定我们要连接的数据库名称。当我们有多个数据库时会使用该参数。
请考虑以下示例。
示例
import mysql.connector
# Creating a the connection object
conn_obj = mysql.connector.connect(host="localhost", user="root", passwd="admin123")
# printing the connection object
print(conn_obj)
输出:
<mysql.connector.connection.MySQLConnection object at 0x7fb142edd780>
创建光标对象
需要创建连接对象,因为它提供了多个工作环境相同连接到数据库的功能。使用 cursor() 函数来创建光标对象。它对于执行SQL查询非常重要。语法如下。
语法:
Con_obj = conn.cursor()
让我们理解以下示例。
示例
import mysql.connector
# Creating the connection object
conn_obj = mysql.connector.connect(host="localhost", user="root", passwd="admin123", database="mydatabase")
# printing the connection object
print(conn_obj)
# creating the cursor object
cur_obj = conn_obj.cursor()
print(cur_obj)
输出:
MySQLCursor: (Nothing executed yet)
执行查询
在以下示例中,我们将通过执行查询来创建一个数据库。让我们理解以下示例。
示例
import mysql.connector
# Creating the connection object
conn_obj = mysql.connector.connect(host="localhost", user="root", passwd="admin123")
# creating the cursor object
cur_obj = conn_obj.cursor()
try:
# creating a new database using query
cur_obj.execute("create database New_PythonDB")
# getting the list of all the databases which will now include the new database New_PythonDB
dbms = cur_obj.execute("show databases")
except:
conn_obj.rollback() # it is used if the operation is failed then it will not reflect in your database
for x in cur_obj:
print(x)
conn_obj.close()
输出:
'information_schema',)
('javatpoint',)
('javatpoint1',)
(New_Pythondb)
('mydb',)
('mydb1',)
('mysql',)
('performance_schema',)
('testDB',)