Python 操作 MySQL 数据库
使用示例:
import pymysql #python3
conn=pymysql.connect(host="localhost",port=3306,user="root",password="abcd",database="bank",charset="utf8") #字符集不是必须的
cursor = conn.cursor()
sql="select * from user_info"
result=cursor.execute(sql) #不论增删查改,result都是受影响的记录数,int型
for row in cursor: #遍历结果集
print(row) #输出一条记录,元组形式
print(row[0]) #输出记录中的某个字段
cursor.close()
conn.close()
提取一条记录:
import pymysql #python3
conn=pymysql.connect(host="localhost",user="root",password="abcd",database="bank",charset="utf8") #字符集不是必须的
cursor = conn.cursor()
sql="select * from user_info"
result=cursor.execute(sql)
print(cursor.fetchone()) #提取并返回一条记录,指针会自动后移。最初指针指向第一条之前。第一条
print(cursor.fetchone()) #第二条。元组形式。
print(cursor.fetchone()[0]) #一个字段,不能使用字段名,只能使用索引
cursor.close()
conn.close()
提取多条记录:
import pymysql #python3
conn=pymysql.connect(host="localhost",user="root",password="abcd",database="bank",charset="utf8") #字符集不是必须的
cursor = conn.cursor()
sql="select * from user_info"
result=cursor.execute(sql)
print(cursor.fetchmany(2)) #提取指定的条数,指针会自动后移。只要是提取,指针都会自动后移。
for row in cursor: #cursor中是从第三行开始的记录
print(row)
#fetchmany()返回值是嵌套的元组形式。 ((1, 'chy', 200.0), (2, 'zhangsan', 200.0))。一个元素即一条记录。
#fetchall()是提取结果集的所有记录
#cursor存放结果集,提取就是把一些记录从cursor中提取出来(从cursor中拿出来,cursor中不再有这些记录了)
cursor.close()
conn.close()
设置sql语句参数:
import pymysql #python3
conn=pymysql.connect(host="localhost",user="root",password="abcd",database="bank",charset="utf8") #字符集不是必须的
cursor = conn.cursor()
id=1
name="chy"
# sql="select * from user_info where id=%d and name='%s'"%(id,name) #如果是字符串,%s要加引号
sql="select * from user_info where id={} and name='{}'".format(id,name) #如果是字符串,{}也要加引号
result=cursor.execute(sql)
print(cursor.fetchall()) #提取结果集中所有的记录数
cursor.close()
conn.close()
插入一条记录:
import pymysql #python3
conn=pymysql.connect(host="localhost",user="root",password="abcd",database="bank",charset="utf8") #字符集不是必须的
cursor = conn.cursor()
id=3
name="wangwu"
money=100
sql="insert into user_info (id,name,money) values (%d,'%s',%d)"%(id,name,money) #如果是字符串,占位的要加引号
result=cursor.execute(sql) #增删查改都是execute
print(result) #1 搜相应的记录数
print(cursor.fetchall()) #不会报错,空元组
conn.commit() #需要提交才会同步到数据库。缺少此句代码,不会同步到数据库。
cursor.close()
conn.close()
增删改的操作类似,注意增删改都需要conn.commit()才会提交到数据库。
另一种设置参数的方式:
import pymysql #python3
conn=pymysql.connect(host="localhost",user="root",password="abcd",database="bank",charset="utf8")
cursor = conn.cursor()
sql="insert into user_info (id,name,money) values (%s,%s,%s)" #如果是在execute()中注入数据,不管是什么类型,都必须写成%s,且不能加引号
result=cursor.execute(sql,(5,"name",10)) #在execute()中注入数据。在这里区分数据类型。使用元组、列表均可
#result=cursor.execute(sql,[5,"name",10])
conn.commit()
cursor.close()
conn.close()
批量操作:
import pymysql #python3
conn=pymysql.connect(host="localhost",user="root",password="abcd",database="bank",charset="utf8")
cursor = conn.cursor()
sql="insert into user_info (id,name,money) values (%s,%s,%s)" #如果是在execute()中注入数据,不管是什么类型,都必须写成%s,且不能加引号
data=((17,"chy",90),(18,"chy",99)) #至少2个元素,使用嵌套的元组、列表均可
#data=[[17,"chy",90],[18,"chy",99]]
try:
result=cursor.executemany(sql,data) #批量操作,注入嵌套的元组。注意是executemany(),且必须是嵌套的元组,元组中至少要有2个元组(记录),只有一条会出错。
conn.commit() #executemany()是执行2条及以上的操作,所以至少2个元素
except Exception as e:
print(e)
conn.rollback() #失败就回滚
cursor.close()
conn.close()
Python 操作 MySQL 数据库的更多相关文章
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
- 使用python操作mysql数据库
这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...
- python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client
windows安装python操作mysql数据库的MySQLdb模块mysql-client 正常情况下应该是cmd下直接运行 pip install mysql-client 命令即可,试了很多台 ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- python操作mysql数据库的常用方法使用详解
python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...
- python 操作mysql数据库之模拟购物系统登录及购物
python 操作mysql数据库之模拟购物系统登录及购物,功能包含普通用户.管理员登录,查看商品.购买商品.添加商品,用户充值等. mysql 数据库shop 表结构创建如下: create TAB ...
- 【Python】使用python操作mysql数据库
这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...
- python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库
前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用 ...
- 【转】python操作mysql数据库
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
随机推荐
- 将HashMap转换为List
背景 SpringBoot中,使用@RquestBody注解 hashMap 接收多个参数的json字符串数据,包括一个数组和一个int值.数组中为一个个的对象组成. 问题 使用 map.ge ...
- postgresql plv8 安装
网上可以看到pg 9.6 版本的plv8容器镜像,没有pg 高版本的支持镜像,但是在基于原有dockerfile 进行构建的时候,居然失败了,有墙的问题,有版本的问题 所以通过虚拟机尝试下构建方式安装 ...
- Spring Boot 知识笔记(servlet、监听器、拦截器)
一.通过注解自定义servlet package net.Eleven.demo.servlet; import javax.servlet.ServletException; import java ...
- springcloud的Hystrix turbine断路器聚合监控实现(基于springboot2.02版本)
本文基于方志朋先生的博客实现:https://blog.csdn.net/forezp/article/details/70233227 一.准本工作 1.工具:Idea,JDK1.8,Maven3. ...
- shell脚本显示字体颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: ec ...
- 使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作
经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构():访问mysql数据库 不过, ...
- java面试题——高级篇
一.集合 Hashmap的原理 源码分析参考文章:http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532832.html 题目参考文章:htt ...
- concurrent(六)同步辅助器CyclicBarrier & 源码分析
参考文档:Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例:https://www.cnblogs.com/skywang12345/p/3533995.html简介Cy ...
- 20165230田坤烨网络对抗免考报告_Windows系统提权
目录 KERNEL EXPLOITATION 服务攻击: DLL劫持 攻击 不安全的服务权限 探测 unquoted path未被引号标记的路径 探测 攻击 服务注册表键 探测 攻击 Named Pi ...
- ASP.NET Core Swagger接入使用IdentityServer4 的 WebApi
写在前面 是这样的,我们现在接口使用了Ocelot做网关,Ocelot里面集成了基于IdentityServer4开发的授权中心用于对Api资源的保护.问题来了,我们的Api用了SwaggerUI做接 ...