一、pymysql

py -m pip install pymysql;

二、pymysql数据库操作

1.简单示例

#coding=utf-8
import pymysql
## 打开数据库连接
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "test",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
print(cursor)
print(type(cursor))

2.创建数据库

#coding=utf-8
import pymysql
try:
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234"
)
cur = conn.cursor()
cur.execute("CREATE DATABASE IF NOT EXISTS grdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;")
cur.close()
conn.close()
print("创建数据库pythonDB成功! ")
except pymysql.Error as e:
print("Mysql Error %d: %s" %(e.args[0],e.args[1]))

#COLLATE utf8_general_ci:大小写不敏感

3.创建表

#coding=utf-8
import pymysql
try:
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234") conn.select_db('grdb') ## 选择pythonDB数据库
cur = conn.cursor() ## 获取游标
## 如果所建表已存在,删除重建
cur.execute("drop table if exists User;")
## 执行建表sql语句
cur.execute('''CREATE TABLE User (id int(11) DEFAULT NULL,name varchar(255) DEFAULT NULL,password varchar(255) DEFAULT NULL,birthday date DEFAULT NULL)ENGINE=innodb DEFAULT CHARSET=utf8;''')
cur.close()
conn.close()
print(u"创建数据表成功")
except pymysql.Error as e:
print("Mysql Error %d: %s" %(e.args[0],e.args[1]))

4.插入表数据

#coding=utf-8
import pymysql
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "grdb",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
## 方式一:直接执行insert语句,插入一条数据
insert = cursor.execute("insert into user values(1,'Tom','123','1990-01-01')")
print(u"添加语句受影响的行数:",insert)
## 方式二:通过格式字符串传入值,此方式可以防止SQL注入
sql = "insert into user values(%s,%s,%s,%s)"
insert = cursor.execute(sql,(3,'lucy','efg','1993-02-01'))
print(u"添加语句受影响的行数:",insert)
## 关闭游标
cursor.close()
## 提交事务
conn.commit()
## 关闭数据库连接
conn.close()
print(u"sql语句执行成功!")

5.查询表数据语句

(1)逐条获取fetchone()

#coding=utf-8
import pymysql
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "grdb",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
cursor.execute("select * from user")
while 1:
res = cursor.fetchone()
if res is None:
## 表示已经取完结果集
break
print(res)
## 将读取到的时间格式化
print(res[-1].strftime("%Y-%m-%d"))
## 关闭游标
cursor.close()
## 提交事务
conn.commit()
## 关闭数据库连接
conn.close()
print("sql语句执行成功!")

#cursor.fetchone  一条一条获取数据,每条数据是元组

(2)获取n条数据fetchmany(n)

#coding=utf-8
import pymysql
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "grdb",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
cursor.execute("select * from user")
## 获取游标处两条数据
resTuple = cursor.fetchmany(2)
print("结果集类型:",type(resTuple))
for i in resTuple:
print(i)
## 关闭游标
cursor.close()
## 提交事务
conn.commit()
## 关闭数据库连接
conn.close()
print("sql语句执行成功!")

#cursor.fetchmany  获取前两行数据,每条数据是元组

(3)获取所有数据fetchall()

#coding=utf-8
import pymysql
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "grdb",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
cursor.execute("select * from user")
## 获取所有的数据
resTuple = cursor.fetchall()
print("结果集类型:",type(resTuple))
for i in resTuple:
print(i)
## 关闭游标
cursor.close()
## 提交事务
conn.commit()
## 关闭数据库连接
conn.close()
print("sql语句执行成功!")

#cursor.fetchall  获取数据,每条数据是元组

6.更新数据

#coding=utf-8
import pymysql
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "grdb",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
## 查询一条数据
query = cursor.execute("select * from user")
print("表中所有数据:")
for i in cursor.fetchall():
print(i)
## 批量更新数据
cursor.executemany("update user set password = %s where name=%s",[('tomx2x', 'tom'), ('amy2x', 'amy')])
## 查看更新后的结果
query = cursor.execute("select * from user")
print("表中所有数据:")
for i in cursor.fetchall():
print(i)
## 关闭游标
cursor.close()
## 提交事务
conn.commit()
## 关闭数据库连接
conn.close()
print("sql语句执行成功!")

7.删除数据

#coding=utf-8
import pymysql
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
user = "lgb",
passwd = "Lgb@1234",
db = "grdb",
charset = "utf8")
## 使用cursor()方法获取数据库的操作游标
cursor = conn.cursor()
cursor.execute("select * from user")
print("表中所有数据:")
for i in cursor.fetchall():
print(i)
## 删除数据
delete = cursor.execute("delete from user where name='tom'")
print("删除语句影响的行数:",delete)
print("删除一条数据后,表中数据:")
cursor.execute("select * from user")
for i in cursor.fetchall():
print(i) ## 关闭游标
cursor.close()
## 提交事务
conn.commit()
## 关闭数据库连接
conn.close()
print("sql语句执行成功!")

Python-pymysql操作MySQL数据库的更多相关文章

  1. python 之操作mysql 数据库实例

    对于python操作mysql 数据库,具体的步骤应为: 1. 连接上mysql host 端口号 数据库 账号 密码2. 建立游标3. 执行sql(注意,如果是update,insert,delet ...

  2. python使用pymysql操作mysql数据库

    1.安装pymysql pip install pymysql 2.数据库查询示例 import pymysql # 连接database conn =pymysql.connect(user=' , ...

  3. flask + pymysql操作Mysql数据库

    安装flask-sqlalchemy.pymysql模块 pip install flask-sqlalchemy pymysql ### Flask-SQLAlchemy的介绍 1. ORM:Obj ...

  4. Python之 操作 MySQL 数据库

    什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. 安装 Pytho ...

  5. python+pymysql访问mysql数据库

    今天跟大家分享两种场景的python连接MySQL方法: 场景一:连接远程MySQL 首先,安装pymysql:在命令行执行pip install pymysql指令. 然后,导入pymysql: i ...

  6. 【20】python之操作MySQL数据库

    一.连接库安装 Python2.x:MySQLdb Python3.x :pymysql 二.接口信息 #创建数据库连接 pymysql.Connect()参数说明 host(str): MySQL服 ...

  7. 用pymysql操作MySQL数据库

    工具库安装 pip install pymysql 连接关闭数据库与增删改查操作 # 导入pymysql库 import pymysql # 打开数据库连接 # 参数1:数据库服务器所在的主机+端口号 ...

  8. python实现操作mysql数据库

    实现代码如下: #mysql数据库的查询等 import pymysql from xctest_tools.xc_ReadFile.get_ReadTxt import * class mysql: ...

  9. python 3.6 +pyMysql 操作mysql数据库

    版本信息:python:3.6 mysql:5.7 pyMysql:0.7.11 ########################################################### ...

  10. python pymysql 连接 mysql数据库进行操作

    1.数据库的连接操作 import pymysql conn = pymysql.connect(host=', db='oldboydb') # host表示ip地址,user表示用户名,passw ...

随机推荐

  1. 简单的winform学生管理系统Demo

    界面效果 练习重点 1. 关系表的创建 2. 增删改查的操作,及sqlhelper的封装 3. 跨页面数据传递,编辑页数据提交后数据局步刷新到列表数据 项目源码 FrmStuddentList pub ...

  2. java项目实战-spring-基本用法01-day24

    目录 1. spring 简单介绍 2. IOC/DI --控制反转--是啥 3. 实现 3. 如果 对象的 属性为引用数据类型 如何 实例化对象 4 如何用注解的方式 以少量的代码实现对象的创建于获 ...

  3. java基础-异常Exception-day10

    目录 1. 练习 2. 异常三联 try-catch-finally 3.异常的分类 3. 子类throws的异常 小于等于父类的异常 4.自定义异常 1. 练习 package com.msb01; ...

  4. TOEFL | 202307 改革 · 新版题型总结

    目录 Listening(36min) Reading(35min) Speaking(16min) Writing(29min) Listening(36min) 2 conversation,3 ...

  5. Servlet系列:生命周期(init、 service、destroy)详解

    Servlet的生命周期是由Web容器(如Tomcat)管理的,包括以下三个阶段: 加载和实例化:当Web应用程序启动时,Web容器会加载和实例化Servlet.加载和实例化过程可以在应用程序启动时自 ...

  6. Java之利用openCsv将csv文件导入mysql数据库

    前两天干活儿的时候有个需求,前台导入csv文件,后台要做接收处理,mysql数据库中,项目用的springboot+Vue+mybatisPlus实现,下面详细记录一下实现流程. 1.Controll ...

  7. 15-触摸按键控制LED灯

    1.触摸按键 触摸按键可分为四大类:电阻式,电容式,红外感应式和表面声波式 电阻式触摸按键使用人体破压电阻,改变电阻,实现开关效果,耐用性差,很少使用 红外感应式是通过红外扫描的方式,一般使用在比较恶 ...

  8. [转帖]linux下查看内存频率,内核函数,cpu频率

    https://www.cnblogs.com/lovesKey/p/10900501.html 查看CPU: cat /proc/cpuinfo # 总核数 = 物理CPU个数 X 每颗物理CPU的 ...

  9. [转帖]RAC环境下误操作将数据文件添加到本地存储

    https://www.cnblogs.com/jyzhao/p/7986729.html 今天碰到个有意思的事情,有客户在Oracle RAC环境,误操作将新增的数据文件直接创建到了其中一个节点的本 ...

  10. [转帖]TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践

    返回全部 边城元元案例实践2022-08-02 复杂业务查询对于传统的关系型数据库来说是一种考验,而通过 TiKV 行存与 TiFlash 的列存结合使用就能很好地应对.本文根据 TUG 用户边城元元 ...