首页 > 数据库 >Python3操作mysql

Python3操作mysql

时间:2023-01-12 10:01:49浏览次数:72  
标签:execute 数据库 sql db pymysql cursor mysql 操作 Python3

Python3 操作mysql

MySQL的安装

没有sql基础的话可以看这个链接,
sql学习

实例:

数据库连接

import pymysql

# 打开数据库连接 参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名
db = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='root',
    database='TESTDB'
)

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()

print("Database version : %s " % data)

# 关闭数据库连接
db.close()

创建数据库表

import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='127.0.0.1',
                     user='root',
                     password='root',
                     database='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()

数据库插入操作

import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='127.0.0.1',
                     user='root',
                     password='root',
                     database='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()

数据库查询操作

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
  • fetchall(): 接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='127.0.0.1',
                     user='root',
                     password='root',
                     database='TESTDB')
 
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
 
# SQL 查询语句
sql = "select * from test1"
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   print(results)
except:
   print ("Error: unable to fetch data")
 
# 关闭数据库连接
db.close()

数据库更新操作

import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='127.0.0.1',
                     user='root',
                     password='root',
                     database='TESTDB')
 
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
 
# SQL 更新语句 将表test中名为libai的age增加1
sql = "update test set age = age + 1 where name='libai'"
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
 
# 关闭数据库连接
db.close()

删除操作

import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='testuser',
                     password='test123',
                     database='TESTDB')
 
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
 
# SQL 删除语句 删除test表中age大于20的数据
sql = "DELETE FROM test WHERE AGE > %s" % (20)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
 
# 关闭连接
db.close()

标签:execute,数据库,sql,db,pymysql,cursor,mysql,操作,Python3
From: https://www.cnblogs.com/-Lucky-/p/17045591.html

相关文章

  • Mysql之将查询结果插入到其它表中
    学习目标能够写出将查询结果插入到其它表中的SQL语句1.思考目前只有一个goods表,我们想要增加一个商品分类信息,比如:移动设备这个分类信息,只通过goods表无法完成商品分类的添......
  • MySQL数据库技术实战
    MySQL数据库技术实战 一,安装mysql很早之前就知道mysql提供了一套数据库样本(github地址),用于测试你的应用程序和数据库服务器。今天分享下使用过程并......
  • 操作系统linux
    Linux命令概览一、哪些地方可以学到Linux?1、Linux中国Linux中国绝对是学习Linux的好去处,各种资讯、文章、技术都有,而且更新及时,质量也很高,学Linux一定要去看啊。2、......
  • 04 图像像素的读写操作
    04图像像素的读写操作opencv知识点:获取/改变图像的某个像素-Mat::at图像像素-数组遍历图像像素-指针遍历本课所解决的问题:如何获取/改变图像的某个像素?......
  • (8)go-micro微服务Mysql配置
    目录一gorm介绍二gorm安装1.1下载依赖1.2使用MySQL驱动三CURD操作1.查询1.1单行查询1.2多行查询2.插入数据3.更新数据4.删除数据四初始化连接五使用六最后......
  • 中间件操作命令
    http://t.zoukankan.com/forest-sunshine-p-14357115.html一、重启activemq服务   1.查看服务:ps-ef|grepactivemq   2.查看服务目录:ll/proc/28317 ......
  • arm mysql8.0 docker-compose
    version:"3"services:mysql:image:beercan1989/arm-mysql:latestcontainer_name:data_exchange_databaseports:-3306:3306environment......
  • 系统性能排查方略及大型银行MySQL性能管控
    分享概要一、系统性能问题五大特性二、系统性能排查方略三、MySQL开发规范和常见调优策略四、MySQL性能管控体系五、未来展望 一、系统性能问......
  • mysql 优化select or set记录
    1 原始sql SELECT*FROMst_voltage_r_202301WHEREemtcIN(SELECTemtcFROMsw_statistics_infoWHEREmanufacturer_name='中电科27所')oremtcin......
  • 系统性能排查方略及大型银行MySQL性能管控
    分享概要一、系统性能问题五大特性二、系统性能排查方略三、MySQL开发规范和常见调优策略四、MySQL性能管控体系五、未来展望 一、系统性能问......