在python中利用pymysql操作MySQL数据库

本文介绍了如何在Python环境下使用pymysql模块连接MySQL数据库,包括创建数据库连接、创建数据表、数据插入、查询、更新和删除操作。读者需要事先准备数据库和相应的表结构,以及安装Python的MySQLdb模块。
摘要由CSDN通过智能技术生成

连接数据库前,请先确认以下事项:

1,您已经创建了数据库 TESTDB.
2,在TESTDB数据库中您已经创建了表 EMPLOYEE
3,EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
4,连接数据库TESTDB使用的用户名为 “testuser” ,密码为 “test123”,你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。
5,在你的机子上已经安装了 Python MySQLdb 模块。
6,连接数据库

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()

7,创建数据表EMPLOYEE

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","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)
# 关闭数据库连接
db.close()

8,数据库插入操作

以下实例使用执行 SQL INSERT 语句向表 EMPLOYEE 插入记录:

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()
# 关闭数据库连接
db.close()

------以上例子也可以写成如下形式------

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
       LAST_NAME, AGE, SEX, INCOME) \
       VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
       ('Mac', 'Mohan', 20, 'M', 2000)
try:
   # 执行sql语句
   cursor.execute(sql)
   # 执行sql语句
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
# 关闭数据库连接
db.close()

9,数据库查询操作

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > %s" % (1000)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
       # 打印结果
      print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
             (fname, lname, age, sex, income ))
except:
   print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()

10,数据库更新操作
更新操作用于更新数据表的的数据,以下实例将 TESTDB 表中 SEX 为 ‘M’ 的 AGE 字段递增 1:

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback() 
# 关闭数据库连接
db.close()

11,删除操作
删除操作用于删除数据表中的数据,以下实例演示了删除数据表 EMPLOYEE 中 AGE 大于 20 的所有数据:

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
except:
   # 发生错误时回滚
   db.rollback() 
# 关闭连接
db.close()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyMySQLPython下的一个MySQL驱动程序,实现了Python DB API v2.0 规范,并且支持Python3。下面是使用PyMySQL操作MySQL数据库的示例代码: 1. 安装PyMySQL 在终端输入以下命令安装PyMySQL: ``` pip install pymysql ``` 2. 连接数据库 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 关闭数据库连接 db.close() ``` 3. 创建表 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 创建表 sql = """CREATE TABLE `employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `age` int(11) NOT NULL, `sex` varchar(10) NOT NULL, `income` float NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8""" cursor.execute(sql) # 关闭数据库连接 db.close() ``` 4. 插入数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 插入数据 sql = "INSERT INTO `employee`(`name`, `age`, `sex`, `income`) VALUES ('Tom', 25, 'Male', 5000.0)" cursor.execute(sql) # 提交事务 db.commit() # 关闭数据库连接 db.close() ``` 5. 查询数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 查询数据 sql = "SELECT * FROM `employee` WHERE `age` > 20" cursor.execute(sql) # 获取查询结果 results = cursor.fetchall() for row in results: id = row[0] name = row[1] age = row[2] sex = row[3] income = row[4] print("id=%d,name=%s,age=%d,sex=%s,income=%.2f" % (id, name, age, sex, income)) # 关闭数据库连接 db.close() ``` 6. 更新数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 更新数据 sql = "UPDATE `employee` SET `income` = `income` * 1.1 WHERE `age` > 20" cursor.execute(sql) # 提交事务 db.commit() # 关闭数据库连接 db.close() ``` 7. 删除数据 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 删除数据 sql = "DELETE FROM `employee` WHERE `age` > 25" cursor.execute(sql) # 提交事务 db.commit() # 关闭数据库连接 db.close() ``` 以上就是使用PyMySQL操作MySQL数据库的示例代码。其,db.commit()用于提交事务,如果不提交,则数据操作不会生效。如果有异常,则可以使用db.rollback()回滚事务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值