TOUVE 发表于 2018-8-15 09:53:17

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, )
  
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})
页: [1]
查看完整版本: python操作mysql(三)查询