一、创建数据库

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()

最新文章

  1. HBase 分布式环境搭建
  2. PHP Html5上传大文件
  3. mysql 按年度、季度、月度、周、日SQL统计查询
  4. reds pub/sub官方文档翻译
  5. AIDL与stub
  6. 坑爹的UICollectionView
  7. ~/.vimrc config
  8. 15分钟快速开发一个kissy组件(流程篇)
  9. HashMap 源码解读
  10. 【1】Asp.Net Core2.2从环境配置到应用建立
  11. 粒子动画——Pygame
  12. (2)HomeAssistant 参数配置
  13. MCS-51与8086指令系统比较
  14. PowerDesigner导入java类生成类图
  15. 在树莓派上运行 .net core 2.1 程序 并实现开机启动
  16. div和span元素的区别
  17. Oracle下Insert的介绍
  18. java后端时间处理工具类,返回 "XXX 前" 的字符串
  19. 微信小程序 tp5上传图片
  20. UOJ#55 [WC2014]紫荆花之恋

热门文章

  1. P1087 N个数的最大公约数
  2. C# 如何写出一个不能被其他程序集继承的抽象类
  3. ZR10.1青岛集训三地联考
  4. hadoop fs、hadoop dfs与hdfs dfs命令的区别
  5. 开发当中curl简单使用
  6. mysql中information_schema.triggers字段说明
  7. DEVOPS技术实践_04:Jenkins参数化构建
  8. java连接elasticsearch:查询、添加数据
  9. 【他山之石】mysql编码问题总结
  10. 从壹开始 [ Ids4实战 ] 之七 ║ 客户端、服务端、授权中心全线打通