pymysql是python3连接mysql操作的库,在python2中使用的是mysqldb

1.基础操作

创建连接

import pymysqldb_conn = pymysql.connect(host="你的数据库地址",user="用户名",port=3306,password="密码",database="数据库名",charset="utf8")# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()  # 执行完毕返回的结果集默认以元组显示
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 定义要执行的sql语句
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;  #注意:charset='utf8' 不能写成utf-8
"""# 执行
res=cursor.execute(sql)
sql = 'select * from user1 where name = %s and age=%d'
name = "zhangchen"
age = 28
# execute函数可以加格式化字符参数
res = cursor.execute(sql, [name, age])
print(res)# 执行结束后要关闭光标和连接
cursor.close()
db_conn.close()

2.增删改查

插入多条数据

import pymysqlconn = pymysql.connect(host='192.168.0.103',port=3306,user='root',password='123',database='xing',charset='utf8'
)
# 获取一个光标
cursor = conn.cursor()# 定义要执行的sql语句
sql = 'insert into userinfo(name,age) values(%s,%d);'
data = [('july', 14),('june', 25),('marin', 36)
]
# 拼接并执行sql语句
cursor.executemany(sql, data)# 涉及写操作要注意提交
conn.commit()# 关闭连接
cursor.close()
conn.close()

插入单条数据

sql ='insert into userinfo (user,pwd) values (%s,%d);'name = 'zhangchen'
pwd = 28
cursor.execute(sql, [name, pwd])
conn.commit()
cursor.close()
conn.close()

获取最后一行的数据(可以理解为最新插入的数据)

# 定义将要执行的SQL语句
sql = "insert into user1 (name, age) values (%s, %d);"
name = "zhangchen"
pwd = 28
# 并执行SQL语句
cursor.execute(sql, [name, age])
# 涉及写操作注意要提交
conn.commit()# 获取最新的那一条数据的ID
last_id = cursor.lastrowid
print("最后一条数据的ID是:", last_id)# 关闭连接
cursor.close()
conn.close()

删除操作

# 定义将要执行的SQL语句
sql = "delete from user1 where name=%s;"
name = "june"
# 拼接并执行SQL语句
cursor.execute(sql, [name])
# 涉及写操作注意要提交
conn.commit()
# 关闭连接cursor.close()
conn.close()

更改数据

sql = "update user1 set age=%d where name=%s;"
# 拼接并执行SQL语句
cursor.execute(sql, [18, "zhangchen"])# 涉及写操作注意要提交
conn.commit()# 关闭连接
cursor.close ()
conn.close ()

查询数据

# 获取一个光标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 返回字典数据类型# 定义将要执行的sql语句
sql = 'select name,age from user1;'
# 执行sql语句
cursor.execute(sql)# 取到查询结果
ret1 = cursor.fetchone()  # 取一条
ret2 = cursor.fetchmany(3)  # 取三条
ret3 = cursor.fetchone()  # 取一条# 光标按绝对位置移动1
cursor.scroll(1, mode="absolute")
# 光标按照相对位置(当前位置)移动1
cursor.scroll(1, mode="relative")

数据回滚

try:# 拼接并执行SQL语句cursor.execute(sql1, [name, age])print(sql1)cursor.execute(sql2, [id, hobby])  # 报错的SQL语句# 涉及写操作注意要提交conn.commit()
except Exception as e:print(str(e))# 有异常就回滚conn.rollback()# 关闭连接
cursor.close()
conn.close()

centos写mysql光标移到上一行_python操作mysql——使用pymysql库相关推荐

  1. centos写mysql光标移到上一行_mysql:一条SQL更新语句(update)是如何执行的

    一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢? 我们还是从一个表的一条更新语 ...

  2. MySQL Workbench 使用教程 - 如何使用 Workbench 操作 MySQL / MariaDB 数据库中文指南

    MySQL Workbench 是一款专门为 MySQL 设计的可视化数据库管理软件,我们可以在自己的计算机上,使用图形化界面远程管理 MySQL 数据库. 有关 MySQL 远程管理软件,你可以选择 ...

  3. mysql查看数据库cmd命令_cmd命令操作Mysql数据库

    在一次考试中,笔者因考试的电脑上没有安装操作Mysql数据库的可视化工具而不知如何操作数据库,所以在这里可以提醒各位掌握 命令行来操作数据库也是非常重要的. 笔者以惨痛的教训来警惕大家. 进入正题: ...

  4. mac上mysql关闭不了了_python操作mysql数据库

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...

  5. tomcat mysql 启动顺序_linux 上配置tomcat、mysql 开机启动

    1.tomcat 开机启动 方法一.修改系统文件 (已经尝试,可以) 1.修改/etc/rc.d/rc.local vi /etc/rc.d/rc.local 2.添加下面两行脚本,记住是两行,仅仅第 ...

  6. fedora mysql 操作系统,Fedora 15 上使用php+apache+mysql+phpMyAdmin+eyeos

    Fedora 15 下使用php+apache+mysql+phpMyAdmin+eyeos 使用phpMyAdmin管理mysql: // 安装相关套件 sudo yum install php m ...

  7. python连接数据库的技术_Python操作MySQL数据库的三种方法

    (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...

  8. python读取mysql数据库_Python操作MySQL数据库9个实用实例

    在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1. ...

  9. python mysql实例_Python操作Mysql实例代码

    本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐. 实例 ...

最新文章

  1. canvas做一个简单气泡图
  2. Luogu 3008 [USACO11JAN]道路和飞机Roads and Planes
  3. java幂等性的控制(技术论坛上整理成文)
  4. SVM推导过程及SMO详细求解过程(转载+自己笔记)
  5. Android开发之非常好用的日志工具类(公司项目挖出来的)
  6. 第0周作业2:博客阅读和思考
  7. php接收vue请求数据axios,详解vue axios用post提交的数据格式
  8. 详解CentOS7安装配置vsftp搭建FTP
  9. WAMPServer使用
  10. 史上最通俗分布式锁解读
  11. srgan要训练多久_SRGAN-超分辨率图像复原
  12. sql Server索引优化[转]
  13. Oracle监听器无法启动
  14. 学习plc编程需要掌握的知识点
  15. 惠威T200B刷机 Q群
  16. ClickHouse数据库和数据表
  17. Kaggle Top1% 是如何炼成的!
  18. IDEA/GoLand 添加自定义特殊注释【注释高亮】
  19. IBUFDS、IBUFGDS和OBUFDS
  20. NUC980开源项目40-PLC远程下载/内网穿透(非技术)

热门文章

  1. RT-Thread中自定义MSH命令传入的参数是字符串,需用户自行检查和解析
  2. python随机划分数据集_Python之机器学习-sklearn生成随机数据
  3. matlab程序设计图像匹配,灰度,归一化算法,快速匹配。有代码好用。转载
  4. 关于linux内核的有关叙述中,下列关于嵌入式Linux系统内核的叙述正确的是()。
  5. PCI总线体系结构概述
  6. ArcGIS如何在一个矢量上用不同颜色进行标注
  7. 通过VisualSVN的POST-COMMIT钩子自动部署代码
  8. 【转】Dicom 学习笔记-Dicom 消息服务(DIMSE-C/DIMSE-N)
  9. 【转】五大方法,彻底永久关闭win10自动更新的方法【已验证有效】
  10. SharePoint安全 - SharePoint网站常用页面URL索引