pymysql总结
一、创建数据库
import pymysql
conn = pymysql.connect(host='ip', user='root', password='密码')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "create database db1 default charset utf8"
cursor.execute(sql)
cursor.close()
conn.close()
二、创建表
import pymysql
conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = """
create table students(
id varchar(20),
name varchar(20),
age int
)engine=innodb default charset=utf8
"""
cursor.execute(sql)
cursor.close()
conn.close()
注意:创建表时,要设置主键
create table students(
id varchar(20) primary key,
name varchar(20),
age int
)engine=innodb default charset=utf8;
三、操作数据
1、插入数据
a、普通版
import pymysql
conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
num = ''
name = 'ajax'
age = 25
sql = "insert into students(id, name, age) values(%s, %s, %s)"
try:
cursor.execute(sql, (num, name, age))
# 插入数据,需要提交连接mysql对象
conn.commit()
except Exception as e:
print(e)
conn.rollback()
cursor.close()
conn.close()
注意:conn.commit(), 支持事务(innodb)
b、高级版(灵活版)
import pymysql
conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
data = {
'id': '',
'name': 'tom',
'age': 24
} table = 'students'
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data.values()))
# print(keys)
# print(values)
sql = "insert into {table}({keys}) values({values})".format(table=table, keys=keys, values=values)
# print(sql)
# print(tuple(data.values()))
try:
cursor.execute(sql, tuple(data.values()))
# 插入数据,需要提交连接mysql对象
print('数据添加成功')
conn.commit()
except Exception as e:
print(e)
conn.rollback()
cursor.close()
conn.close()
2、更新数据
a、普通版
import pymysql
conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
age = 100
id = '' sql = "update students set age=%s where id=%s" try:
cursor.execute(sql, (age, id))
print('修改数据成功')
conn.commit()
except Exception as e:
print(e)
conn.rollback()
b、高级版(灵活版)
作用:如果数据存在,则更新数据,如果数据不存在,则添加数据
import pymysql conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
data = {
'id': '',
'name': 'tom',
'age': 26
} table = 'students'
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data.values()))
# print(keys)
# print(values)
sql = "insert into {table}({keys}) values({values}) on duplicate key update".format(table=table, keys=keys,
values=values)
# print(sql)
update = ', '.join([" {}= %s".format(key) for key in data])
# print(update)
sql = sql + update
# print(sql)
# insert into students(id, name, age) values(%s, %s, %s) on duplicate key update id= %s, name= %s, age= %s
# print(tuple(data.values()) * 2)
try:
cursor.execute(sql, tuple(data.values()) * 2)
# 插入数据,需要提交连接mysql对象
print('数据更新或添加成功')
conn.commit()
except Exception as e:
print(e)
conn.rollback()
cursor.close()
conn.close()
3、删除数据
import pymysql conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) table = 'students'
condition = 'age > 30'
sql = "delete from {table} where {condition}".format(table=table, condition=condition)
# print(sql) try:
cursor.execute(sql)
print('删除数据成功')
conn.commit()
except Exception as e:
print(e)
conn.rollback()
4、查询数据
import pymysql conn = pymysql.connect(host='ip', user='root', password='密码', db='db1')
# 以字典的形式返回操作结果
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) table = 'students'
condition = 'age > 10'
sql = "select * from {table} where {condition}".format(table=table, condition=condition)
# print(sql) try:
cursor.execute(sql)
results = cursor.fetchall()
print(results)
except Exception as e:
conn.rollback()
pymysql总结的更多相关文章
- pyMysql
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- Python 3.x 连接数据库(pymysql 方式)
==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- 杂项之pymysql连接池
杂项之pymysql连接池 本节内容 本文的诞生 连接池及单例模式 多线程提升 协程提升 后记 1.本文的诞生 由于前几天接触了pymysql,在测试数据过程中,使用普通的pymysql插入100W条 ...
- Python3中使用PyMySQL连接Mysql
Python3中使用PyMySQL连接Mysql 在Python2中连接Mysql数据库用的是MySQLdb,在Python3中连接Mysql数据库用的是PyMySQL,因为MySQLdb不支持Pyt ...
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- python pymysql和orm
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1. 安装 管理员打开cmd,切换到python的安装路径,进入到Scripts目录下(如:C:\Users\A ...
- python成长之路【第十三篇】:Python操作MySQL之pymysql
对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...
- (转)pymysql 连接mysql数据库---不支持中文解决
往数据库里插入中文时出现异常:UnicodeEncodeError: 'latin-1' codec can't encode characters 就是编码的问题,pymysql默认的编码是lati ...
- 循序渐进Python3(十)-- 1 -- pymysql
使用pymsql 模块操作数据库 #!/usr/bin/env python , ),()]), user='root', passwd='123456', db='test')# 创建游标curso ...
随机推荐
- P1091 剧院广场
题目描述 柏林首都的剧院广场呈长方形,面积为 \(n \times m\) 平方米.在这座城市的周年纪念日之际,人们决定用方形花岗岩石板铺设广场.每块石板的大小都是 \(a \times a\) . ...
- JavaScript DOM查询,原生js实现元素子节点的获取
在网页网页开发中,经常会需要获取某个网页元素的子元素,然后对其进行事件绑定.或样式修改等行为.这些操作对于jquery来说很容易,但是对于原生js会稍微麻烦一些,这里将介绍四种方法获取元素的子元素(本 ...
- openmp的g++并行执行
#include <omp.h>#include <stdio.h>#include <stdlib.h>void Test(int n) { for(int ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(13)之会员登录注册
源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 会员中心,是我们与用户交 ...
- 【t088】倒水
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 一天辰辰买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着辰辰发现瓶子实在太多了,于是 ...
- childNodes和children
childNodes 返回指定元素的子节点集合,包括HTML节点,所有文本(元素之间的空格换行childNodes会看作文本节点). 通过nodeType来判断节点的类型: 元素 1 属性 2 文本 ...
- 前端工具--利用Adblock Plus阻止js执行
今天遇到个问题:需要阻止页面某个js的运行 效果达到
- DEVOPS技术实践_19:Pipeline的多参数json调用
在上一篇学习了把参数写进Json文件,然后通过去Json文件,调用参数的方法 1. 三元运算符介绍 调用的方法是通过一个三元运算符实现的 gender = prop.GENDER? prop.GEND ...
- CPP STL学习笔记
STL的概念 源地址 https://www.ev0l.art/index.php/archives/15/ <li> Iterator (迭代器)<li> Containe ...
- Spring Security入门(基于SSM环境配置)
一.前期准备 配置SSM环境 二.不使用数据库进行权限控制 配置好SSM环境以后,配置SpringSecurity环境 添加security依赖 <dependency> <gr ...