0
点赞
收藏
分享

微信扫一扫

python+pymssql读写sqlserver数据库

杨小羊_ba17 2022-03-30 阅读 51
python

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()
举报

相关推荐

0 条评论