具体连贯、测试代码:
server默认为127.0.0.1,如果关上了TCP动静端口的须要加上端口号,如'127.0.0.1:1433'
user默认为sa
password为本人设置的明码
database为数据库名字
server = '127.0.0.1'
user = "sa"
password = "123456"
database = "pubs"
conn = pymssql.connect(server, user, password, database)
可简化为conn = pymssql.connect(host='localhost', user='sa', password='123456', database='pubs')
cursor = conn.cursor()
cursor.execute('SELECT * FROM titles')
print( cursor.fetchall() )
如果用pandas读取数据库
import pymssql
import pandas as pd
conn = pymssql.connect('IP地址','账号','明码','数据库')
sql_1 = "SELECT Id,creat_time from 表名"
利用pandas间接获取数据"
data = pd.read_sql(sql_1, conn)
conn.close()
print(data)
封装好的版本:
coding=utf-8
sqlserver的连贯
import pymssql
class MSSQL:
def __init__(self,host,user,pwd,db): self.host = host self.user = user self.pwd = pwd self.db = dbdef __GetConnect(self): """ 失去连贯信息 返回: conn.cursor() """ if not self.db: raise(NameError,[贝宝](https://www.gendan5.com/wallet/PayPal.html)"没有设置数据库信息") 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 curdef ExecQuery(self,sql): """ 执行查问语句 返回的是一个蕴含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 """ cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查问结束后必须敞开连贯 self.conn.close() return resListdef 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():
# host默认为127.0.0.1,如果关上了TCP动静端口的须要加上端口号,如'127.0.0.1:1433'# user默认为sa# pwd为本人设置的明码# db为数据库名字ms = MSSQL(host='127.0.0.1',user="sa",pwd="123456",db="pubs")resList = ms.ExecQuery("SELECT * FROM titles")print(resList)
if name == '__main__':
main()