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 数据库接口支持非常多的数据库 ...
随机推荐
- java 的守护进程脚本
#!/bin/sh ] do Tag=`ps -ef|grep 'jar包名称'|grep -v grep|wc -l|awk '{printf $1"\n"}'` ] then ...
- es4x 引用外部jar 包以及集成typescrip
以前写过一个通过修改jar 包处理自定义jar 的引入的,如下是一种使用官方推荐的方法package.json 添加依赖配置 同时为了方便使用添加typescript define 文件方便使用(只是 ...
- Android 开发基础入门篇: 动态权限申请
说明: 咱们在安装APP的时候经常会看到,类似于下面的提示 goolge为了保护用户隐私,在android 6.0开始,某些隐私权限,必须用户允许以后,内部程序方可使用 这就涉及到权限动态申请问题. ...
- UNIX网络编程卷1 - >环境搭建(ubuntu16.04)
学习unp网络编程,树上的例子均存在#include“unp.h”,故需要对环境进行配置. 1.到资源页下载www.unpbook.com 2.解压并将unpv13e移动到相应的文件夹下 (因为我 ...
- awesome-RecSys
https://github.com/jihoo-kim/awesome-RecSys?fbclid=IwAR1m6OebmqO9mfLV1ta4OTihQc9Phw8WNS4zdr5IeT1X1OL ...
- vue+element 表格筛选
筛选是element 组件 自己有的东西,按照文档撸 是没有问题 这里存在一个情况是,如果 筛选 的数据没有 那么整个表格为空白,产品要加提示 例如:暂无筛选的数据 解决方案:通过 ref 获取整 ...
- Java 读取和写入文本文件
package test_java; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStre ...
- SEDA 架构
参考文档: https://blog.csdn.net/zhihui1017/article/details/50502825
- C#开源录音组件、录像组件、录屏组件及demo源码
在多媒体系统中,一般都会涉及到录音.录像.录屏问题,采集得到的数据可以用来传输.播放.或存储.所以,对于像课件录制系统.语音视频录制系统.录屏系统等,多媒体数据的采集就是最基础的功能之一. MCapt ...
- C#内存泄露与资源释放 经验总结
本文链接:http://blog.csdn.net/yokeqi/article/details/41083939 C#相比其他语言,拥有强大的垃圾回收机制,但并不是这样,你就可以对内存管理放任不管, ...