对于python操作mysql 数据库,具体的步骤应为:

1. 连接上mysql host 端口号 数据库 账号 密码
2. 建立游标
3. 执行sql(注意,如果是update,insert,delete 需要进行提交才能生效。)
4. 获取结果
5. 关闭连接、关闭游标

一、默认获取的结果是元祖

 conn = pymysql.connect(host='localhost',user='root',passwd='',port=3306,db='sakila',charset='utf8')
#charset 必须写utf8, 不能写utf-8; port 要写int 类型,不能加上引号
cur = conn.cursor() # 建立游标,游标认为你是仓库管理员
cur.execute('select * from user limit 10;')
res = cur.fetchone() # 只获取一条结果,它的结果是一个一维元祖,第一次获取到第一条
##print('fetchone',cur.fetchone()) # 第二次获取到的是第二行;
print(res)
print('fetchall',cur.fetchall())# 获取第二条开始的所有数据,获取sql语句执行的结果, 是个二维元祖,它把结果放到一个元祖里,每一条数据也是一个元祖
print(res)
print(res[0][1])
print('fetchone',cur.fetchone()) # #被获取完了,所以获取到的是None
# 如果确定只有一条数据的用fetchone, 超过一条数据的那就用fetchall

二、将获取的结果转字典,方便使用

 conn = pymysql.connect(host='localhost',user='root',passwd='',port=3306,db='sakila',charset='utf8')
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) # 将元祖转为字典
sql = "select * from user where name='aa'"
cur.execute(sql)
print(cur.fetchone()) #获取字典
res = cur.fetchall()
print(res) #list 里存字典
cur.close()#关闭游标
conn.close()#关闭连接

在python 中会经常用到mysql,因此可以写了一个函数用于mysql的操作,要使用时调用以下即可。

 import pymysql
def op_mysql(host,user,password,db,sql,port=3306,charset='utf8'):
conn = pymysql.connect(host=host,user=user,
password=password,
db=db,
port=port,
charset=charset)
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(sql)
# select, update, delete, insert 长度都是6位
# SELECT
sql_start = sql[:6].upper() # sql 的前6位字符串,判断它是什么类型的sql语句
if sql_start == 'SELECT':
res = cur.fetchall()
else:
conn.commit()
res = 'ok'
cur.close()
conn.close()
return res
sql = 'select * from user limit 5;'
op_mysql(
host='localhost',
user='root',
password='',
port=3306,
db='sakila',
charset='utf8',
sql=sql)

												

python 之操作mysql 数据库实例的更多相关文章

  1. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  2. python 2.7 操作mysql数据库 实例

    create table msg(id int primary key auto_increment,title varchar(20),name varchar(60),content varcha ...

  3. Python之 操作 MySQL 数据库

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

  4. shell脚本连接、读写、操作mysql数据库实例

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  5. python实现操作mysql数据库

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

  6. python 安装操作 MySQL 数据库.

    以ubuntu和mysql为例 检查自己的机器上面有没有安装数据库 xpower@xpower-CW65S:~$ sudo service mysql start [sudo] xpower 的密码: ...

  7. Python之操作MySQL数据库

      一.操作步骤 1.导入pymysql模块 2.建立连接(ip.用户名.密码.数据库名.端口号.字符集.(自动提交参数)) 3.建立游标 4.执行sql语句 (4.需要提交的提交) 5.关闭游标 6 ...

  8. python 连接操作mysql数据库

    开发数据库程序流程: 1.创建connection对象,获取cursor 2.使用cursor执行SQL 3.使用cursor获取数据.判断执行状态 4.提交事务 或者 回滚事务 import: 数据 ...

  9. python,java操作mysql数据库,数据引擎设置为myisam时能够插入数据,转为innodb时无法插入数据

    今天想给数据库换一个数据引擎,mysiam转为 innodb 结果 python 插入数据时失败,但是自增id值是存在的, 换回mysiam后,又可以插入了~~ 想换php插入试试,结果php数据引擎 ...

随机推荐

  1. jQuery过滤HTML标签并高亮显示关键字的方法

    本文实例讲述了jQuery过滤HTML标签并高亮显示关键字的方法.分享给大家供大家参考.具体如下: jQuery实现网页关键字过滤效果,将需要过滤的文字定义在JavaScript中,可定义多个,不过要 ...

  2. 一道money计算题引发的思考

    网友提出一个问题如下 是小学和中学时候学到了增长折线问题,有点像数学问题,不过这个要求用编程来实现,恐怕还是有些逻辑要处理的,话不多说看代码吧 我给出的代码如下 代码清单: <?php func ...

  3. Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3

    一.现代操作系统的权限分离: 现代操作系统一般都至少分为内核态和用户态.一般应用程序通常运行于用户态,而当应用程序调用系统调用时候会执行内核代码,此时会处于内核态.一般的,应用程序是不能随便进入内核态 ...

  4. 【BZOJ4244】邮戳拉力赛 DP

    [BZOJ4244]邮戳拉力赛 Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车 ...

  5. oracle如何给指定用户修改密码?

    1.用system用户登录, 2.执行如下sql: alter user 用户名 identified by 新密码; 比如alter user scott identified by 123456; ...

  6. SignalR 循序渐进(五)多个Hub服务器下的消息订阅

    SignalR的通讯方式决定了其高性能,但是即便如此,当消息的并发量上来以后,单节点的Hub服务器依然可能无法承载总的消息吞吐量,那么如何对Hub服务器做水平扩展呢? 从微软官方的文档上看,Signa ...

  7. 2017 Multi-University Training Contest - Team 1—HDU6040

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6040 题意:不知道北航的同学为何解释题意之前都要想一段故事,导致刚开始题意不是很懂,题意就是给你n,m ...

  8. webPage logService 日志服务 剥离

    [旧的场景]1.x.a.com指向负载均衡服务器ipL;2.代码所在的应用服务器ipA,ipB,ipC,运行nginx-phpFPM服务,提供2个服务: 2.1.应用服务器ipA,ipB,ipC中we ...

  9. spring data jpa 遇到的问题

    org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.O ...

  10. What’s wrong with virtual methods called through an interface

    May 31, 2016 Calling a virtual method through an interface always was a lot slower than calling a st ...