Python教程-如何在Python中连接数据库
数据库是计算机系统中存储的结构化信息或数据的良好组织集合。在数据库中,数据以表格形式排列,我们可以通过查询来访问这些信息或数据。
Python可以用于连接数据库。MySQL是最流行的数据库之一。在本教程中,我们将学习如何通过Python建立与MySQL的连接。让我们了解以下使用Python与MySQL一起工作的步骤。
- 安装MySQL驱动程序
- 创建连接对象
- 创建游标对象
- 执行查询
安装MySQL驱动程序
首先,我们需要在系统中安装MySQL驱动程序。安装MySQL软件并配置设置。我们将使用pip命令安装MySQL连接器驱动程序。打开命令提示符并键入以下命令。
python -m pip install mysql-connector-python
按Enter键。它会下载MySQL驱动程序。
- 验证驱动程序
让我们检查是否已正确安装。可以通过导入mysql.connector来完成。
import mysql.connector
如果这行没有错误地执行,那么表示MySQL连接器已正确安装。我们可以开始使用它。
创建连接对象
mysql.connector提供了用于在MySQL数据库和Python应用程序之间创建连接的connect()方法。以下是语法。
语法:
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',)
('javatiku',)
('javatiku1',)
(New_Pythondb)
('mydb',)
('mydb1',)
('mysql',)
('performance_schema',)
('testDB',)