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

Python 操作 MySQL 数据库Ⅲ

48-mysql-Navicat数据库查询题目讲解(多表操作)python操作MySQLsql注入问题pymysql模块增删改查数据操作

python接口测试—mysql数据库操作

Python数据库操作 DQL-MySQL数据库查询sql#学习猿地

Python操作mysql数据库查询操作时提示“unread-result-found”