全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SQL及关系型数据库数据分析
5908 4
2014-09-01
[python] view plaincopyprint?


  • #coding=utf-8   
  • #!/usr/bin/env python  
  • #-------------------------------------------------------------------------------  
  • # Name: pymssqlTest.py  
  • # Purpose: 测试 pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql  
  • #  
  • # Author: scott  
  • #  
  • # Created: 04/02/2012  
  • #-------------------------------------------------------------------------------  
  •   
  • import pymssql  
  •   
  •   
  • class MSSQL:  
  •     """
  •     对pymssql的简单封装
  •     pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql
  •     使用该库时,需要在Sql Server Configuration Manager里面将TCP/IP协议开启
  •     用法:
  •     """  
  •   
  •     def __init__(self,host,user,pwd,db):  
  •         self.host = host  
  •         self.user = user  
  •         self.pwd = pwd  
  •         self.db = db  
  •   
  •     def __GetConnect(self):  
  •         """
  •         得到连接信息
  •         返回: conn.cursor()
  •         """  
  •         if not self.db:  
  •             raise(NameError,"没有设置数据库信息")  
  •         self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")  
  •         cur = self.conn.cursor()  
  •         if not cur:  
  •             raise(NameError,"连接数据库失败")  
  •         else:  
  •             return cur  
  •   
  •     def ExecQuery(self,sql):  
  •         """
  •         执行查询语句
  •         返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
  •         调用示例:
  •                 ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
  •                 resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")
  •                 for (id,NickName) in resList:
  •                     print str(id),NickName
  •         """  
  •         cur = self.__GetConnect()  
  •         cur.execute(sql)  
  •         resList = cur.fetchall()  
  •   
  •         #查询完毕后必须关闭连接  
  •         self.conn.close()  
  •         return resList  
  •   
  •     def ExecNonQuery(self,sql):  
  •         """
  •         执行非查询语句
  •         调用示例:
  •             cur = self.__GetConnect()
  •             cur.execute(sql)
  •             self.conn.commit()
  •             self.conn.close()
  •         """  
  •         cur = self.__GetConnect()  
  •         cur.execute(sql)  
  •         self.conn.commit()  
  •         self.conn.close()  
  •   
  • def main():  
  • ## ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")  
  • ## #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段  
  • ## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")  
  •   
  •     ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")  
  •     resList = ms.ExecQuery("SELECT id,weibocontent FROM WeiBo")  
  •     for (id,weibocontent) in resList:  
  •         print str(weibocontent).decode("utf8")  
  •   
  • if __name__ == '__main__':  
  •     main()


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-12-24 13:43:33
顶起来!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-25 12:07:28
好东西,正好要学,感谢楼主!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-11-22 17:03:58
我调用的时候总是出现中文乱码哇,?有没有好的建议呢

具体代码如下:
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 13 16:56:27 2015

@author: Jay
"""
import pymssql   

conn = pymssql.connect(server="192.168.117.6",user="sa",password="pwd",database="weibo",charset = 'utf8')
'''
conn = pymssql.connect(server="192.168.117.6",user="sa",password="pwd",database="weibo",charset = 'gbk2312')
conn = pymssql.connect(server="192.168.117.6",user="sa",password="pwd",database="weibo",charset = 'cp936')
'''

cur = conn.cursor()
sql = "SELECT TOP 100 ID,价格 FROM 微博评论".encode("utf8")
cur.execute(sql)
resList = cur.fetchall()

conn.commit()
conn.close()
print(resList)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-8 17:21:05
讲解很详细
支持一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群