python操作mysql查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python操作mysql查询相关的知识,希望对你有一定的参考价值。
#_*_coding:utf-8_*_ import MySQLdb DBHOST = "192.168.89.101" DBUSER = "root" DBPASSWD ="1qaz#EDC" DB = "soms" PORT = 3306 CHARSET = "utf8" #建立与数据库的连接 conn = MySQLdb.connect(host=DBHOST, user=DBUSER, passwd=DBPASSWD, db=DB, port=PORT, charset=CHARSET) cur = conn.cursor() #建立游标,Python是通过游标执行SQL语句 #从数据库中查询数据 results = cur.execute("select * from discovery") print results
结果:
/usr/bin/python2.7 /home/toby/PycharmProjects/SOMS/mysqldb/MysqlConnect.py
2
查询出来了2条记录
返回所有查询结果:
#从数据库中查询数据 cur.execute("select * from discovery") res = cur.fetchall() print res #可以遍历一下 for i in res: print i
原来,用cur.execute()从数据库查询出来的东西,被“保存在了cur所能找到的某个地方”,要找出这些被保存的东西,需要用cur.fetchall()(或者fechone等),并且找出来之后,做为对象存在。从上面的实验探讨发现,被保存的对象是一个tuple中,里面的每个元素,都是一个一个的tuple。因此,用for循环就可以一个一个拿出来了。
返回单条查询结果:
#返回单条查询结果 cur.execute("select * from discovery") print cur.fetchone()
将读取到的数据变成字典形式:
方法很简单,在建立游标的时候,只需传入cursorclass=MySQLdb.cursors.DictCursor 参数 cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) #建立游标,Python是通过游标执行SQL语句 cur.execute("select * from discovery") res = cur.fetchall() print res
结果:
/usr/bin/python2.7 /home/toby/PycharmProjects/SOMS/mysqldb/MysqlConnect.py
({‘status‘: u‘True‘, ‘ip‘: u‘192.168.89.3‘, ‘id‘: 1L, ‘port‘: 22L}, {‘status‘: u‘True‘, ‘ip‘: u‘192.168.89.23‘, ‘id‘: 3L, ‘port‘: 22L})
以上是关于python操作mysql查询的主要内容,如果未能解决你的问题,请参考以下文章
Python操作Mysql实例代码教程在线版(查询手册)_python
48-mysql-Navicat数据库查询题目讲解(多表操作)python操作MySQLsql注入问题pymysql模块增删改查数据操作