📜  Python MySQL-数据库连接(1)

📅  最后修改于: 2023-12-03 14:46:00.775000             🧑  作者: Mango

Python MySQL-数据库连接

在Python中,我们可以使用MySQL数据库来存储和管理数据。Python提供了许多不同的MySQL数据库驱动程序,其中最常用的是mysql-connector-python。在本文中,我们将介绍如何使用Python连接MySQL数据库。

准备工作

在连接MySQL数据库之前,您需要安装mysql-connector-python模块。您可以使用以下命令来安装它:

pip install mysql-connector-python

在安装mysql-connector-python之前,您需要确保已经安装了MySQL服务器,并且您具有连接MySQL服务器所需的访问权限。

连接MySQL数据库

要连接MySQL数据库,您需要提供以下信息:

  • 主机名或IP地址
  • 用户名和密码
  • 数据库名称(可选)

假设我们已经安装了MySQL服务器,在localhost上运行,并且我们要使用默认的root用户连接到示例数据库。我们将使用以下连接字符串来连接MySQL数据库:mysql.connector.connect()

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="testdb"
)

print(mydb)

输出:

<mysql.connector.connection_cext.CMySQLConnection object at 0x000000000000>

如果连接成功,您将获得一个表示MySQL连接的对象。

创建数据库

在连接到MySQL服务器并获得对数据库的访问权限后,您可以使用Python创建新的数据库。

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE DATABASE mydatabase")

使用以上代码片段,我们已成功的创建了一个名为mydatabase的新数据库。

创建数据表

要在MySQL数据库中创建新表,您需要提供以下信息:

  • 表名
  • 表中的列及其数据类型

以下是在Python中创建新表的示例代码:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

这将创建名为customers的新表,其中包含idnameaddress三列。id是自动增量的主键,nameaddress是varchar类型的。

执行SQL查询

您可以使用Python执行SQL查询,并获得查询结果。以下是在Python中执行SELECT查询的示例:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

这将获取customers表中的所有数据,并将其打印到终端上。

结论

在本文中,我们已经了解了如何使用Python连接MySQL数据库,并执行一些基本的查询和操作。在实际应用中,您可能需要使用更复杂的查询和操作。但是,有了这个基础知识,您现在可以开始使用Python和MySQL数据库进行更有意思的事情了。