Python操作MySQL


上一章我们已经学习了如何下载和使用MySQL,还学会了通过终端和图像管理软件MySQL Workbech操作MySQL数据库。在真正的软件项目中,由于数据的读写极其繁琐和复杂,我们是无法单单靠手动操作SQL语句管理数据库的,必须通过编程语言对数据库进行操作才能有效地管理数据库。那么这一章,我们就来学习如何使用编程语言Python自动化操作MySQL数据库。

安装包下载

首先我们需要先在本地电脑上安装Python,安装过程可以考察我发布过的《Python一周入门教程》第一章中的环境搭建。

安装好Python之后,我们需要下载用来连接Python和MySQL的包,大家可以使用pip包管理器,安装mysql-connetor包。使用Mac的小伙伴可以使用以下的命令进行安装:

pip3 install mysql-connector-python

下载完毕后,大家可以编辑以下的Python脚本 mysql_test.py ,如果运行完毕没有错误,就代表能使用Python正常操作MySQL了:

import mysql.connector

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

print(mysql_connection)

其中connect函数的user和password参数需要根据自己设定的用户名和密码进行设置。

要注意命名的重要性,不要给脚本取 mysql.py 这样和包名有冲突的名字,可以遵循这样的命名格式:xxx_xxx.py

Python操作MySQL

接下来我们就使用Python对MySQL进行常见的CRUD操作。

以下的Python脚本会在MySQL中创建一个PythonDB数据库。

创建数据库

import mysql.connector 

mysql_connection = mysql.connector.connect(user='root', password='password', host='localhost')
cursor = mysql_connection.cursor()

cursor.execute("CREATE DATABASE PythonDB")

运行脚本后,我们就会在MySQL中创建一个名叫PythonDB的数据库。

创建Students表

创建完PythonDB数据库后,我们可以在PythonDB数据库中创建表格,以下的脚本就会在PythonDB数据库中创建Students表:

import mysql.connector 

mysql_connection = mysql.connector.connect(user='root', password='password', host='localhost', database="PythonDB")
cursor = mysql_connection.cursor()

cursor.execute("CREATE TABLE Students (StudentID int PRIMARY KEY, Name VARCHAR(255), City VARCHAR(255))")

添加Students数据

创建完Students表之后,我们能使用以下的脚本添加5个具体的学生数据:

import mysql.connector 

mysql_connection = mysql.connector.connect(user='root', password='password', host='localhost', database="PythonDB")

sql = "INSERT INTO Students (StudentID, Name, City) VALUES (%s, %s, %s)"
val = [
    (1, 'Enoch', 'Los Angeles'),
    (2, 'David', 'New York City'),
    (3, 'Kevin', 'Shanghai'),
    (4, 'Frank', 'Beijing'),
    (5, 'Alice', 'Tokyo'),
]

cursor = mysql_connection.cursor()
for student in val:
    cursor.execute(sql, student)

mysql_connection.commit()

查询数据

存储完学生数据后,我们可以使用以下脚本查询学生数据,并打印出学生的信息:

import mysql.connector 

mysql_connection = mysql.connector.connect(user='root', password='password', host='localhost', database='PythonDB')

cursor = mysql_connection.cursor()
cursor.execute('SELECT * FROM Students')
values = cursor.fetchall()
print(values)

mysql_connection.close()

数据库操作整合

上面的每个脚本只能单独做一个操作,我们可以将多个操作集成到一个脚本中:

import mysql.connector 

class DBManager:
    def __init__(self, user, password, host, database):
        self.mysql_connection = mysql.connector.connect(user=user, password=password, host=host, database=database)
        self.cursor = self.mysql_connection.cursor()

    def insert_student(self, student_info):
        sql = "INSERT INTO Students (StudentID, Name, City) VALUES (%s, %s, %s)"
        self.cursor.execute(sql, student_info)
    
    def show_data(self, table_name):
        self.cursor.execute(f"SELECT * FROM {table_name}")
        values = self.cursor.fetchall()
        for student in values:
            print(student)

db_manager = DBManager('root', 'password', 'localhost', 'PythonDB')
# Insert new students
students = [
    (6, 'Frank', 'Beijing'),
    (7, 'Alice', 'Tokyo'),
]
for student in students:
    db_manager.insert_student(student)
# Check students
db_manager.show_data("Students")

这个脚本先连接到PythonDB数据库,然后插入两个额外的学生,最后将所有的学生数据显示出来。

以上就是常用的使用Python操作MySQL的方法,大家可以撸起袖子,自创一些脚本,创建一些别的表格和数据。

这就是SQL入门的基本内容了,通过这个系列的学习,相信大家已经掌握了基本的SQL语句,也学习了如何使用MySQL,并能够编辑Python脚本自动化操作数据库。在未来的教程中,以诺希望制作一个网站搭建教程,通过从0到1实现一个博客网站,帮助大家更好地理解数据库在真实项目中的应用,请大家持续关注~。


评论区(0)

评论