上一章我们已经学习了如何下载和使用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进行常见的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的数据库。
创建完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表之后,我们能使用以下的脚本添加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)