用python来操作MySQL,首先需要安装PyMySQL库(pip install pymysql)。

连接MySQL:

import pymysql
connect=pymysql.connect(host='localhost',user='root',password='xxxx',port=3306)

注:此时还未创建数据库,如已创建数据库,在连接时需再加上一个参数db。

注:host为指定的连接服务器的地址,设置为'localhost'代表连接到本地的MySQL服务上,user为用户名,password为密码,port为指定的端口(默认为3306)。

创建游标:(我们需要用游标来执行各种操作)

cursor=connect.cursor()

关闭游标:

cursor.close()

关闭连接:

connect.close()

执行单条sql语句:

cursor.execute(...)

执行多条sql语句:

cursor.executemany(...)

提交事务:

connect.commit()

回滚事务:

connect.rollback()

在Python中对数据库进行增删改等操作使用的是事务处理,因此在执行增删改SQL语句后,需要提交事务才能在数据库中完成操作,并且还需添加错误判断,当执行SQL语句失败后,需要对事务进行回滚。增删改模板如下:

sql='...'

try:
cursor.execute(sql)
connect.commit()
except:
connect.rollback()

创建数据库:

cursor.execute("CREATE DATABASE db_test DEFAULT CHARACTER SET utf8")   #创建名为db_test的数据库

选择数据库:

connect.select_db('db_name')

创建表:

sql='CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL,name VARCHAR(255)\
NOT NULL,age INT NOT NULL,PRIMARY KEY(id))' #创建一个名为students的数据表,分为id,name和age三列,其中id为主键
cursor.execute(sql)

插入数据:

id=''
name='Hu'
age=5 sql='INSERT INTO students(id,name,age) VALUES (%s,%s,%s)' try:
cursor.execute(sql,(id,name,age))
connect.commit()
except:
connect.rollback()

修改数据:

sql='UPDATE students SET age=%s WHERE name=%s'

try:
cursor.execute(sql,(4,'Hu'))
connect.commit()
except:
connect.rollback()

更新数据(如果数据存在,则更新数据,如果数据不存在,则插入数据):

data={'id':'',
'name':'Bo',
'age':11}
#为了方便修改数据,把数据以字典形式传入,这样就不需要修改sql语句了 table='students' keys=','.join(data.keys())
values=','.join(['%s']*len(data)) sql='INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE '.format(table=table,keys=keys,values=values)
#相当于INSERT INTO students(id,name,age) VALUES (%s.%s,%s) ON DUPLICATE KEY UPDATE update=','.join(["{key}=%s".format(key=key) for key in data.keys()])
#相当于id=%s,name=%s,age=%s sql=sql+update try:
cursor.execute(sql,tuple(data.values())*2)
connect.commit()
print("Sucessful")
except:
connect.rollback()
print("Failed")

删除数据:

sql='DELETE FROM xxx WHERE ...'

try:
cursor.execute(sql)
connect.commit()
except:
connect.rollback()

连接MySQL数据库+增删改操作的完整模板如下:

import pymysql

connect = pymysql.connect(host='...',   # IP地址
port=3306, # 端口号
user='...', # 用户名
password='...', # 密码
db='...', # 数据库名
charset='utf8') # 链接字符集 cursor = connect.cursor() # 创建游标 sql='...' try:
cursor.execute(sql) # 执行SQL语句
connect.commit() # 提交事务
except Exception as e:
connect.rollback() # 如果发生错误,则回滚事务
finally:
cursor.close() # 关闭游标
connect.close() # 关闭数据库

查询数据:

sql='SELECT * FROM xxx WHERE ...'
cursor.execute(sql)

获取查询结果的条数:

cursor.rowcount

获取第一条数据:(元组形式)

cursor.fetchone()

获取所有数据:

cursor.fetchall()

获取指定数量的数据:

cursor.fetchmany(num)

逐条获取数据:

results = cursor.fetchall()

for row in results:
print(row)

fetchall()会将结果以元组形式全部返回,如果数据量很大,那么占用的开销会非常高。因此,推荐使用如下方法来逐条读取数据:

row=cursor.fetchone()

while row:
print(row)
row=cursor.fetchone()

总结来说,执行什么样的操作要根据SQL语句来定。因此需要学习好SQL的语法。

参考:https://cuiqingcai.com/5578.html

https://cloud.tencent.com/developer/article/1457448

用Python操作MySQL(pymysql)的更多相关文章

  1. mysql数据库----python操作mysql ------pymysql和SQLAchemy

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...

  2. day40:python操作mysql:pymysql模块&SQL注入攻击

    目录 part1:用python连接mysql 1.用python连接mysql的基本语法 2.用python 创建&删除表 3.用python操作事务处理 part2:sql注入攻击 1.s ...

  3. python成长之路【第十三篇】:Python操作MySQL之pymysql

    对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...

  4. Python操作MySQL:pymysql和SQLAlchemy

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  5. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  6. Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  7. Python操作Mysql之基本操作

    pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...

  8. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  9. Python开发【第十九篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  10. Python全栈开发之MySQL(二)------navicate和python操作MySQL

    一:Navicate的安装 1.什么是navicate? Navicat是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小 ...

随机推荐

  1. docker build 错误 /usr/share/dotnet/sdk/2.1.801/Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference

    docker dotnet Restore 的时候报错, 一度怀疑是linux的dotnet core sdk没有装好, 卸了装, 装了卸, 试了好几遍还是无效(Microsoft.Common.Cu ...

  2. Python报错:ImportError: cannot import name 'ConnectionRefusedError'

    启动了一个flask server,结果报了标题中的错误. ImportError: cannot import name 'ConnectionRefusedError' 解决: pip insta ...

  3. 服务注册发现(一) Consul 简介及 windows版本的安装与部署

    Consul是一个用来实现分布式系统的服务发现与配置的开源工具.他主要由多个组成部分: 服务发现:客户端通过Consul提供服务,类似于API,MySQL,或者其他客户端可以使用Consul发现服务的 ...

  4. 如何用 DHCP + DNS + Web 实现一个网络架构

    为什么?为什么?为什么在浏览器里输入www.baidu.com就可以访问百度搜索,而输入pan.baidu.com就可以访问百度网盘,它是怎么实现的? 实验原理简介 在Internet中,计算机之间通 ...

  5. Zabbix Documentation 4.0

    Zabbix Documentation 4.0 1 Create user account For all of the Zabbix daemon processes, an unprivileg ...

  6. 网络空间安全基础篇(2)----wireshark

    wireshrak是一款通过本地端口,来抓取通过以太网获取的文件包,包括SMB HTTP FTP TELNET 等包 在网络安全比赛中最常用的就是HTTP协议,TELNET协议,FTP协议,SMB协议 ...

  7. Python基础->for循环、字符串以及元组

    python流程控制>for循环.字符串以及元组 学习有关序列的思想.序列:一组有顺序的东西.所有的序列都是由元素组成的,序列中的元素位置是从0开始编号的,最后一个元素的位置是它长度减一. fo ...

  8. 拿webshell方法汇总

    地址:https://blog.csdn.net/Breeze_CAT/article/details/80044676

  9. JS数组扁平化(flat)

    需求:多维数组=>一维数组 let ary = [1, [2, [3, [4, 5]]], 6]; let str = JSON.stringify(ary); 第0种处理:直接的调用 arr_ ...

  10. Python使用pip安装matplotlib模块

    matplotlib是python中强大的画图模块. 首先确保已经安装python,然后用pip来安装matplotlib模块. 进入到cmd窗口下,建议执行python -m pip install ...