Python - MySQL 连接:数据库和表 [示例]

⚡ 智能摘要

Python 连接到 MySQL 使用 mysql-connector 库连接数据库。本文将介绍如何安装连接器并连接到数据库。 MySQL创建数据库和表,添加主键,修改表,插入记录(附示例)。

  • ???? 连接: mysql.connector.connect() 链接 Python 至 MySQL 包含主机名和凭据。
  • 🗄️ 创建: 通过游标运行 CREATE DATABASE 和 CREATE TABLE 语句。
  • 插: execute() 执行 INSERT 查询,然后 commit() 保存记录。
  • 🤖 人工智能帮助: 像 Copilot 这样的 AI 工具会生成 MySQL 立即生成连接器代码。

Python - MySQL 连接方式

为了使用 MySQL 与 Python,你必须了解 SQL

在深入探讨之前,让我们先了解一下

什么是 MySQL?

MySQL 是一个开源数据库,也是最好的关系数据库管理系统 (RDBMS) 之一。联合创始人 MySQLdb 是 Michael Widenius 的,还有 MySQL 名字源于迈克尔的女儿。

如何安装 MySQL 接头类型 Python on Windows、Linux/Unix

安装 MySQL 在Linux / Unix中:

从官方网站下载适用于 Linux/Unix 的 RPM 包: https://www.mysql.com/downloads/

在终端使用以下命令

rpm  -i <Package_name>
Example   rpm -i MySQL-5.0.9.0.i386.rpm

在 Linux 中检查

mysql --version

安装 MySQL in Windows

下载 MySQL 数据库 exe 来自 官方网站 并像往常一样安装软件 Windows。请参阅此 教程,获取分步指南

如何安装 MySQL 连接器库 Python

这是如何连接 MySQL - Python:

对于 Python 2.7 或更低版本使用 pip 安装:

pip install mysql-connector

对于 Python 3 或更高版本使用 pip3 安装如下:

pip3 install mysql-connector

测试 MySQL 数据库连接 Python

去测试 MySQL 数据库连接 Python 在这里,我们将使用预安装的 MySQL 连接器并将凭据传递到 connect() 如下所示的主机、用户名和密码等功能 Python MySQL 连接器示例。

访问语法 MySQL - Python:

import mysql.connector
	db_connection = mysql.connector.connect(
  	host="hostname",
  	user="username",
  	passwd="password"
    )

例如::

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="root"
)
print(db_connection)

输出:

<mysql.connector.connection.MySQLConnection object at 0x000002338A4C6B00>

这里输出显示连接创建成功。

在中创建数据库 MySQL 使用 Python

SQL 中创建新数据库的语法是

CREATE DATABASE "database_name"

现在我们使用数据库编程创建数据库 Python

import mysql.connector
  db_connection = mysql.connector.connect(
  host= "localhost",
  user= "root",
  passwd= "root"
  )
# creating database_cursor to perform SQL operation
db_cursor = db_connection.cursor()
# executing cursor with execute method and pass SQL query
db_cursor.execute("CREATE DATABASE my_first_db")
# get list of all databases
db_cursor.execute("SHOW DATABASES")
#print all databases
for db in db_cursor:
	print(db)

输出:

在中创建数据库 MySQL

上图显示了 我的第一个数据库 数据库已创建

在中创建表 MySQL - Python

让我们创建一个简单的表“学生”,它有两列,如下所示 MySQL 连接器 Python 例。

SQL语法:

CREATE  TABLE student (id INT, name VARCHAR(255))

计费示例:

import mysql.connector
  db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="root",
  database="my_first_db"
  )
db_cursor = db_connection.cursor()
#Here creating database table as student'
db_cursor.execute("CREATE TABLE student (id INT, name VARCHAR(255))")
#Get database table'
db_cursor.execute("SHOW TABLES")
for table in db_cursor:
	print(table)

输出:

 ('student',)

创建具有主键的表

让我们创建一个 员工 表有三个不同的列。我们将在 id 具有 AUTO_INCREMENT 约束的列,如下所示 Python 具有数据库连接的项目。

SQL语法:

CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))

例如::

import mysql.connector
  db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="root",
  database="my_first_db"
  )
db_cursor = db_connection.cursor()
#Here creating database table as employee with primary key
db_cursor.execute("CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))")
#Get database table
db_cursor.execute("SHOW TABLES")
for table in db_cursor:
	print(table)

输出:

('employee',) ('student',)

ALTER 表 MySQL - Python

Alter 命令用于修改 SQL 中的表结构。这里我们将修改 学生 表并添加 主键 以及 id 如下所示的字段 Python MySQL 連接器項目。

SQL语法:

ALTER TABLE student MODIFY id INT PRIMARY KEY

例如::

import mysql.connector
  db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="root",
  database="my_first_db"
  )
db_cursor = db_connection.cursor()
#Here we modify existing column id
db_cursor.execute("ALTER TABLE student MODIFY id INT PRIMARY KEY")

输出:

下面你可以看到 id 列已被修改。

ALTER 表 MySQL

插页 Opera与 MySQL in Python:

让我们执行插入操作 MySQL 我们已经创建的数据库表。我们将向 STUDENT 表和 EMPLOYEE 表插入数据。

SQL语法:

INSERT INTO student (id, name) VALUES (01, "John")
INSERT INTO employee (id, name, salary) VALUES(01, "John", 10000)

例如::

import mysql.connector
  db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="root",
  database="my_first_db"
  )
db_cursor = db_connection.cursor()
student_sql_query = "INSERT INTO student(id,name) VALUES(01, 'John')"
employee_sql_query = " INSERT INTO employee (id, name, salary) VALUES (01, 'John', 10000)"
#Execute cursor and pass query as well as student data
db_cursor.execute(student_sql_query)
#Execute cursor and pass query of employee and data of employee
	db_cursor.execute(employee_sql_query)
db_connection.commit()
print(db_cursor.rowcount, "Record Inserted")

输出:

 2 Record Inserted

常见问题

使用 pip 安装 mysql-connector,然后使用主机、用户名和密码调用 mysql.connector.connect() 以获取连接对象。

创建游标,然后运行 ​​cursor.execute('CREATE DATABASE name')。使用 SHOW DATABASES 确认数据库已创建。

连接数据库,创建游标,并执行 CREATE TABLE 语句。添加 AUTO_INCREMENT PRIMARY KEY 以自动对 id 列进行编号。

使用游标执行 SELECT 查询,然后调用 fetchall() 获取所有行,或调用 fetchone() 获取单行。

使用 cursor.execute() 执行 UPDATE 或 DELETE 语句,然后执行 commit()。始终添加 WHERE 子句以指定要删除的行。

GitHub Copilot 等 AI 助手可以自动完成连接器代码,生成 CRUD 查询,并建议参数化语句以防止 SQL 注入。

是的。人工智能工具可以编写连接和 CRUD 函数,将表映射到类,并为失败的查询添加错误处理。

commit() 函数会永久保存更改。如果没有它,当连接关闭时,INSERT、UPDATE 和 DELETE 操作会回滚,导致数据丢失。

总结一下这篇文章: