python+pymssql读写sqlserver数据库,使用时安装一下pymssql,pip install pymssql;
import pymssql
import datetime
# 连接
def conn():
connect = pymssql.connect('(local)', 'sa', '1234','test1',charset='GBK') # 服务器名,账户,密码,数据库名,charset='GBK'解决乱码问题
if connect:
print("连接成功!")
return connect
# 查询
def query():
connect = conn()
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "select top 100 stationName, dayWindSpeedMax from SUN_Meteorological where stationId = 120"
cursor.execute(sql) #执行sql语句
row = cursor.fetchone() #读取查询结果,
while row: #循环读取所有结果
print("站名=%s, 最大风速=%s" % (row[0],row[1])) #输出结果
row = cursor.fetchone()
cursor.close()
connect.close()
# 删除
def delete():
connect = conn()
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "delete from SUN_Meteorological where [stationID] = 53446"
cursor.execute(sql)
connect.commit() # 一定加一句提交,不加没效果
cursor.close()
connect.close()
# 插入 ,pymssql出现插入中文乱码,可以使用pyodbc连接数据库
def insert():
connect = conn()
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
i = datetime.datetime.now()
stationId = 126
stationName = "你好11"
# stationName = name.encode("GBK")
date = i.strftime('%Y-%m-%d')
year = i.year
month = i.month
day = i.day
sql = ("insert into SUN_Meteorological (stationID,stationName,date,year,month,day) values('%s','%s','%s','%s','%s','%s')"%(stationId,stationName,date,year,month,day)).encode("utf-8").decode("latin1")
cursor.execute(sql)
connect.commit()
cursor.close()
connect.close()