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()
__author__ = 'zjl'
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='mysql123',database="day17",charset="utf8")
cursor=conn.cursor()
# 创建游标 # 执行SQL,并返回收影响行数
v=cursor.execute("select * from class")
print(v)
effect_row = cursor.execute("INSERT INTO shirts(name) VALUES('adc8868')")#添加一条数据
print(effect_row)
# 提交,不然无法保存新建或者修改的数据
conn.commit() cursor.close()# 关闭游标
conn.close()# 关闭连接
execute(sql语句%s,(占位符变量))执行sql语句时的占位符使用
execute()操作一条数据
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
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 shirts(yhm,mim) VALUES(%s,%s)",('adc279819',279819)) #添加一条数据
print(effect_row) #返回影响行数 # 提交,不然无法保存新建或者修改的数据
conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()
查询数据库数据
注意:操作数据库的增、删、改都需要commit()提交数据到数据库,而查询是不需要commit()的
fetchall()获取游标查询数据库里的数据,返回元祖
使用方式:
游标变量.fetchall()
查询数据库内容时更改游标返回字典类型数据【推荐】
返回字典类型将数据库表的列(字段)作为键返回
默认查询数据时游标返回的元祖类型,如果想返回字典类型就需要设置游标
cursor=pymysql.cursors.DictCursor设置游标返回字典类型数据,当做参数写在execute()里,execute(cursor=pymysql.cursors.DictCursor)
#!/usr/bin/python
# -*- coding:utf-8 -*-
import pymysql # 获取数据
conn = pymysql.Connect(host='192.168.12.89',port=3306,user='root',password="",database="s17day11db",charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 受影响的行数
v = cursor.execute('select * from student')
result = cursor.fetchall()
print(result) cursor.close()
conn.close()
移动游标里数据指针获取对应数据
scroll(1,mode='relative')相对当前位置移动
使用方式:
游标变量.scroll(1,mode='relative')
第一个参数正数相对当前位置向下移动数值对应指针,第一个负数相对当前位置向上移动数值对应指针
scroll(2,mode='absolute')相对绝对位置移动
使用方式:
游标变量.scroll(2,mode='absolute')
将指针位置移动到第一个参数数值对应指针
相对当前位置移动获取数据mode='relative'
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='mysql123',database="day17",charset="utf8")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 受影响的行数
v = cursor.execute('select * from student')
result = cursor.fetchone()
result = cursor.fetchone()
# result=cursor.fetchone()
print(result)#打印应该是第2条
cursor.scroll(-2,mode='relative') #调整指针,相对当前位置向上移动2位 (第一个参数正数相对当前位置向下移动数值对应指针)
result = cursor.fetchone()
print(result)#调整指针 打印的位置
conn.commit()# 提交,不然无法保存新建或者修改的数据
cursor.close()
conn.close()
# {'sid': 2, 'sname': '陈涛', 'class_id': 1, 'gender': '男'}
# {'sid': 1, 'sname': '刘浩', 'class_id': 1, 'gender': '男'}
相对绝对位置移动mode='absolute'
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='mysql123',database="day17",charset="utf8")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 受影响的行数
v = cursor.execute('select * from student')
result = cursor.fetchone()
result = cursor.fetchone()
result=cursor.fetchone()
print(result)#打印应该是第三条
cursor.scroll(3,mode='absolute')#调整指针,相对绝对位置移动3位
result = cursor.fetchone()
print(result)
conn.commit()# 提交,不然无法保存新建或者修改的数据
cursor.close()
conn.close()
{'sid': 3, 'class_id': 2, 'sname': '吴一飞', 'gender': '男'}
{'sid': 4, 'class_id': 2, 'sname': '姜浩', 'gender': '男'}
添加数据库时获取到添加数据的自增id
lastrowid获取添加数据时的自增id
使用方式:
游标变量.lastrowid
注意:如果是添加的多条数据,获取到的自增id是最后一条的自增id
import pymysql # 获取数据
conn = pymysql.Connect(host='192.168.12.89',port=3306,user='root',password="",database="s17day11db",charset='utf8')
cursor = conn.cursor() cursor.execute('insert into class(caption) values(%s)',['新班级'])
conn.commit()
new_class_id = cursor.lastrowid # 获取新增数据自增ID cursor.execute('insert into student(sname,gender,class_id) values(%s,%s,%s)',['李杰','男',new_class_id])
conn.commit() cursor.close()
conn.close()
MySQL数据库-pymysql模块操作数据库的更多相关文章
- 第二百七十九节,MySQL数据库-pymysql模块操作数据库
MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...
- 利用PyMySQL模块操作数据库
连接到数据库 import pymysql # 创建链接得到一个链接对象 conn = pymysql.Connect( host="127.0.0.1", # 数据库服务器主机地 ...
- 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库
引言 在进行功能或者接口测试时常常需要通过连接数据库,操作和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操作是否正确等.因此,在进行接口自动化测试时,我们一样绕不开接 ...
- pymysql模块操作数据库
pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数 使用方式: 模块名称.connect() 参数: host=数据库ip po ...
- 调用pymysql模块操作数据库
1.创建数据库表: def create_table(tb_name): import pymysql#导入模块 #连接数据库 db = pymysql.Connect(','zabbix_db') ...
- pymysql模块操作数据库及连接报错解决方法
import pymysql sql = "select host,user,password from user" #想要执行的MySQL语句 #sql = 'create da ...
- 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库
MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- MySQL之pymysql模块
MySQL之pymysql模块 import pymysql #s链接数据库 conn = pymysql.connect( host = '127.0.0.1', #被连接数据库的ip地址 po ...
随机推荐
- 廖雪峰JavaScript学习笔记(基础及数据类型、变量)
先睹为快 alert('我要学JavaScript!'); Run: 基本语法: 1.每个语句以;结束,不强制 2.语句块用{...} 3.//单行注释,/*...*/ 多行注释 数据类型: 1.不区 ...
- IDEA复制某个类的包名路径
在对应的类中右键: 然后看图:
- Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...
- DAY8 文件操作(二)
一.写 1.1写文件 # w:没有文件新建文件,有文件就清空文件 w = open('1.txt', 'w', encoding='utf-8') w.write('000\n') # 在写入大量数据 ...
- Caffarelli 关于自由边界正则性的论文C1
Caffarelli 关于自由边界正则性的论文 接下来主要想叙述一下Caffarelli的C1文章中的一些想法,这是最近这几天看的文献. 对于从自由边界的Lipschitz正则性到$C^{1,\alp ...
- Flask之项目创建,路由以及会话控制
Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎 ...
- 『TensorFlow』TFR数据预处理探究以及框架搭建
一.TFRecord文件书写效率对比(单线程和多线程对比) 1.准备工作 # Author : Hellcat # Time : 18-1-15 ''' import os os.environ[&q ...
- PAT 1077 Kuchiguse
1077 Kuchiguse (20 分) The Japanese language is notorious for its sentence ending particles. Person ...
- springcloud-Ribbon-负载均衡组件
Ribbon负载均衡 1.Ribbon简介 ribbin是Netflix发布的负载均衡器,有助于控制http和tcp客户端的行为,为ribbon配置服务提供者列表后,ribbon就可以基于某种负载均衡 ...
- Solr安装使用教程
一.安装 1.1 安装jdk solr是基于lucene而lucene是java写的,所以solr需要jdk----当前安装的solr-7.5需要jdk-1.8及以上版本,下载安装jdk并设置JAVA ...