MySQL数据库-pymysql模块操作数据库

pymysql模块是python操作数据库的一个模块

connect()创建数据库链接,参数是连接数据库需要的连接参数
使用方式:
  模块名称.connect()
  参数:
  host=数据库ip
  port=数据库端口
  user=数据库用户名
  passwd=数据库密码
  db=数据库名称

  charset=数据库编码

cursor()创建数据库操作游标,无参
使用方式:
  游标变量.cursor()

execute()操作数据库,参数1 sql语句,参数2 字符串占位符变量
使用方式:
  游标变量.execute()

execute()操作数据库会返回,操作数据库后影响的行数,我们可以以此判断是否操作成功

commit()提交数据到数据库,无参
使用方式:
  创建数据库链接变量.commit()

close()关闭游标
使用方式:
  游标变量.close()

close()关闭数据库
使用方式:
  创建数据库变量.close()

向数据库添加一条数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi')
# 创建游标
cursor = conn.cursor() # 执行SQL,并返回收影响行数
effect_row = cursor.execute("INSERT INTO db1(yhm,mim) VALUES('adc8868','279819')") #添加一条数据
print(effect_row) #返回影响行数 # 提交,不然无法保存新建或者修改的数据
conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

execute(sql语句%s,(占位符变量))执行sql语句时的占位符使用

execute()操作一条数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi')
# 创建游标
cursor = conn.cursor() # 执行SQL,并返回收影响行数
effect_row = cursor.execute("INSERT INTO db1(yhm,mim) VALUES(%s,%s)",('adc279819',279819)) #添加一条数据
print(effect_row) #返回影响行数 # 提交,不然无法保存新建或者修改的数据
conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

executemany(sql语句,[(占位符变量),(占位符变量)])执行sql语句时的占位符使用

executemany()操作多条数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi')
# 创建游标
cursor = conn.cursor() # 执行SQL,并返回收影响行数
effect_row = cursor.executemany("INSERT INTO db1(yhm,mim) VALUES(%s,%s)",[('a1',123),('a2',456),('a3',789)])
print(effect_row) #返回影响行数 # 提交,不然无法保存新建或者修改的数据
conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

查询数据库数据

注意:操作数据库的增、删、改都需要commit()提交数据到数据库,而查询是不需要commit()的

fetchall()获取游标查询数据库里的数据,返回元祖
使用方式:
  游标变量.fetchall()

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor() # 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchall() #获取游标里的数据
print(shuju)
# 提交,不然无法保存新建或者修改的数据
# conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

查询数据库内容时更改游标返回字典类型数据【推荐】

返回字典类型将数据库表的列(字段)作为键返回

默认查询数据时游标返回的元祖类型,如果想返回字典类型就需要设置游标

cursor=pymysql.cursors.DictCursor设置游标返回字典类型数据,当做参数写在execute()里,execute(cursor=pymysql.cursors.DictCursor)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchall() #获取游标里的数据
print(shuju) # 提交,不然无法保存新建或者修改的数据
# conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

fetchone()获取游标里第一条数据,如果多次执行fetchone()就依次获取数据
使用方式:
  游标变量.fetchone()

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchone() #获取游标里第一条数据
print(shuju) # 提交,不然无法保存新建或者修改的数据
# conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

fetchmany()获取游标里,指定条数据,参数是要获取数据的条数
使用方式:
  游标变量.fetchmany(3)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchmany(3) #获取游标里,指定条数据
print(shuju) # 提交,不然无法保存新建或者修改的数据
# conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

移动游标里数据指针获取对应数据

scroll(1,mode='relative')相对当前位置移动
  使用方式:
  游标变量.scroll(1,mode='relative')
  第一个参数正数相对当前位置向下移动数值对应指针,第一个负数相对当前位置向上移动数值对应指针

scroll(2,mode='absolute')相对绝对位置移动
  使用方式:
  游标变量.scroll(2,mode='absolute')
  将指针位置移动到第一个参数数值对应指针

相对当前位置移动获取数据mode='relative'

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchone() #获取游标里第一条数据,指针在第一个位置
shuju = cursor.fetchone() #指针在第二个位置
shuju = cursor.fetchone() #指针在第三个位置
print(shuju) #打印应该是第三条
cursor.scroll(-2,mode='relative') #调整指针,相对当前位置向上移动2位
shuju = cursor.fetchone() #指针第二位
print(shuju)
# 提交,不然无法保存新建或者修改的数据
# conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

相对绝对位置移动mode='absolute'

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchone() #获取游标里第一条数据,指针在第一个位置
shuju = cursor.fetchone() #指针在第二个位置
shuju = cursor.fetchone() #指针在第三个位置
print(shuju) #打印应该是第三条
cursor.scroll(3,mode='absolute') #调整指针,相对绝对位置移动3位
shuju = cursor.fetchone() #指针第四位
print(shuju)
# 提交,不然无法保存新建或者修改的数据
# conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

添加数据库时获取到添加数据的自增id

lastrowid获取添加数据时的自增id
使用方式:
  游标变量.lastrowid
注意:如果是添加的多条数据,获取到的自增id是最后一条的自增id

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql # 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行SQL,并返回收影响行数
effect_row = cursor.execute("INSERT INTO db1 (yhm,mim) VALUES (%s,%s)",('bb3',8889))
zzid = cursor.lastrowid #获取添加数据时的自增id
print(zzid) #打印自增id
# 提交,不然无法保存新建或者修改的数据
conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

第二百七十九节,MySQL数据库-pymysql模块操作数据库的更多相关文章

  1. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

    第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...

  2. 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库

    MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...

  3. 第二百七十五节,MySQL数据库安装和介绍

    MySQL数据库安装 一.概述 1.什么是数据库 ? 答:数据的仓库,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 答:他们均是一种 ...

  4. 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】

    MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...

  5. 第二百七十八节,MySQL数据库-表内容操作

    MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...

  6. MySQL数据库-pymysql模块操作数据库

    pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connect() 参数: host=数据库ip port= ...

  7. 第二百七十四节,同源策略和跨域Ajax

    同源策略和跨域Ajax 什么是同源策略  尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措 ...

  8. 第二百六十九节,Tornado框架-Session登录判断

    Tornado框架-Session登录判断 Session需要结合cookie来实现 Session的理解 1.用户登录系统时,服务器端获取系统当前时间,进行nd5加密,得到加密后的密串 2.将密串作 ...

  9. 第二百三十九节,Bootstrap路径分页标签和徽章组件

    Bootstrap路径分页标签和徽章组件 学习要点: 1.路径组件 2.分页组件 3.标签组件 4.徽章组件 本节课我们主要学习一下 Bootstrap 的四个组件功能:路径组件.分页组件.标签组件 ...

随机推荐

  1. OSG 集群渲染 cluster render 支持 Cave 和 powerwall 模式

    写了几天.用OSG,实现了集群渲染,感觉还不错,线性加速比还算能够.採用KDTree .八叉树管理场景.场景数据通过UDP和TCP. 不用复制文件,直接在线读取(主节点向渲染节点同步模型数据).效率基 ...

  2. tarjan+缩点+强连通定理

    C - Network of Schools Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I ...

  3. python发送QQ邮箱方法

    import smtplib from email.mime.text import MIMEText mail_user = "user1@qq.com" mail_pwd = ...

  4. Redhat 5禁止IPv6

    Redhat  5禁止IPv6 IPv6还没有全然普及,可是安装完系统之后IPv6是有效的,在一定程度上影响网络性能,所以在我们在全然不使用IPv6的情况下.最好关闭IPv6.如今我们就在本文以完整的 ...

  5. Kubuntu 初始配置

    1.中文配置 系统设置中地区选择中国.语系使用简体中文(一開始可能仅仅有英文选项,似乎是更新后能够选择其它语言了) 安装中文字体: sudo apt-get install ttf-wqy-micro ...

  6. springmvc sitemesh json问题

    参考: 解决方法: <sitemesh> <mapping path="/*" decorator="/WEB-INF/views/template/t ...

  7. 【linux】FTP添加用户,设置权限和目录

    一.目的,新建一个用户 test2,登录ftp,它只有自己的主目录权限,其他同级和上级目录没有权限 二.ftp安装.配置 yum -y install vsftpd //通过yum来安装vsftpd ...

  8. 禁止IE7的页面缩放功能

    注册表键 HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Zoom  下, 设置DWORD 值 ZoomDisabled  等于 1. 如 ...

  9. 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表

    本文出处:http://blog.csdn.net/u012377333/article/details/47022699 从上面的几篇文章中,能够知道怎样使用Shell创建数据库.使用Shell创建 ...

  10. MySQL EXPLAIN 命令详解

    MySQL EXPLAIN 命令详解 MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提 ...