下面进行详细讲解。
Python操作MySQL代码总结
介绍
MySQL是一种流行的关系型数据库管理系统,由于其开源性、性能稳定性和高可靠性等优点,被广泛运用于企事业单位的数据存储中。Python作为一种高级语言,具有良好的语法和丰富的库支持,同时也有着较好的数据处理能力。在Python中使用MySQL进行数据处理和存储,也是一项非常长奇便捷的工作。
安装Python的MySQL驱动库
在使用Python操纵MySQL数据库之前,需要先安装Python的MySQL驱动库。常用的MySQL Python驱动库有两种:MySQLdb和PyMySQL。这里介绍PyMySQL的安装方法,因为MySQLdb已经停止维护。
pip install pymysql
连接MySQL数据库
连接MySQL数据库可以使用pymysql.connect()
函数。常用的参数包括:host
、port
、user
、password
、db
等。其中host
表示要连接的MySQL服务器地址,port
表示端口号,一般是3306,user
表示MySQL登录用户,password
表示MySQL登录密码,db
表示要连接的MySQL数据库名。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 关闭数据库连接
db.close()
创建数据表
创建MySQL数据表可以使用execute()
函数。该函数可执行任何SQL语句,包括DDL、DML、DCL和DQL语句。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute('DROP TABLE IF EXISTS EMPLOYEE')
# 使用预处理语句创建表
sql = '''CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )'''
cursor.execute(sql)
# 关闭游标和数据库连接
cursor.close()
db.close()
插入数据
向MySQL数据表中插入数据可以使用execute()
函数。该函数执行DML语句,包括INSERT、UPDATE和DELETE语句。在执行插入数据之前,需要开启事务。事务的开始可以使用begin()
函数,结束可以使用commit()
或rollback()
函数。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 开始事务
cursor.execute('BEGIN')
# 插入数据
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)"
try:
cursor.execute(sql, ('John', 'Doe', 25, 'M', 2000.00))
cursor.execute(sql, ('Jane', 'Doe', 30, 'F', 2500.00))
# 提交事务
db.commit()
except Exception as e:
# 回滚事务
db.rollback()
# 关闭游标和数据库连接
cursor.close()
db.close()
查询数据
查询MySQL数据表中的数据可以使用execute()
函数。该函数执行DQL语句,包括SELECT语句。在执行查询之后,可以使用fetchone()
函数或fetchall()
函数获取查询结果。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 查询数据
sql = "SELECT * FROM EMPLOYEE WHERE AGE > %s"
try:
cursor.execute(sql, (20,))
results = cursor.fetchall()
for row in results:
first_name = row[0]
last_name = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print("first_name=%s, last_name=%s, age=%d, sex=%s, income=%d" % (first_name, last_name, age, sex, income))
except Exception as e:
print(str(e))
# 关闭游标和数据库连接
cursor.close()
db.close()
示例说明
示例1:创建一个名为testdb的MySQL数据库,其中包含一个名为EMPLOYEE的数据表,表中有5个字段。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 创建数据库
cursor.execute('DROP DATABASE IF EXISTS testdb')
cursor.execute('CREATE DATABASE testdb')
# 使用数据库
cursor.execute('USE testdb')
# 创建数据表
cursor.execute('DROP TABLE IF EXISTS EMPLOYEE')
sql = '''CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )'''
cursor.execute(sql)
# 关闭游标和数据库连接
cursor.close()
db.close()
示例2:向EMPLOYEE表中插入2条数据,然后获取并打印表中所有数据。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 插入数据
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)"
try:
cursor.execute(sql, ('John', 'Doe', 25, 'M', 2000.00))
cursor.execute(sql, ('Jane', 'Doe', 30, 'F', 2500.00))
db.commit()
except Exception as e:
db.rollback()
# 查询数据
sql = "SELECT * FROM EMPLOYEE"
try:
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
first_name = row[0]
last_name = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print("first_name=%s, last_name=%s, age=%d, sex=%s, income=%d" % (first_name, last_name, age, sex, income))
except Exception as e:
print(str(e))
# 关闭游标和数据库连接
cursor.close()
db.close()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python操作mysql代码总结 - Python技术站