Python连接SQL Server数据库 增删改查

68 篇文章 1 订阅
53 篇文章 2 订阅

 

2018年05月30日 17:46:01 gx_up 阅读数:2328

 版权声明:听说这里是写版权的,那转载就请注明下吧 https://blog.csdn.net/qq_32688731/article/details/80513453

 Pymssql使用

麻烦的是,经常安装失败。需要先下载包,再在本地进行安装。

pip install pymssql

传送门:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql

可根据自己Python的版本来下载,之前安装Python3.7使用有些问题

安装pymssql:

 

pymssql对数据库的一些操作:

 
  1. import pymssql

  2.  
  3. # server 数据库服务器名称或IP

  4. # user 用户名

  5. # password 密码

  6. # database 数据库名称

  7.  
  8. server = "*******"

  9. user = "sa"

  10. password = "*******"

  11. database = "Python"

  12. conn = pymssql.connect(server, user, password, database)

  13. cursor = conn.cursor()

  14.  
  15. # 新建表

  16.  
  17.  
  18. def CreateTable():

  19. sql = """

  20. IF OBJECT_ID('persons', 'U') IS NOT NULL DROP TABLE persons

  21. CREATE TABLE persons (id INT NOT NULL identity(1,1),name VARCHAR(100),age int,PRIMARY KEY(id))

  22. """

  23. cursor.execute(sql)

  24. conn.commit()

  25.  
  26. # 批量插入数据

  27.  
  28.  
  29. def InsertData():

  30. sql = "INSERT INTO persons(name,age) VALUES (%s, %d)"

  31. data = [

  32. ('zhangsan', 15),

  33. ('lisi', 16),

  34. ('wangwu T.', 17)]

  35. cursor.executemany(sql, data)

  36. # 如果没有指定autocommit属性为True的话就需要调用commit()方法

  37. conn.commit()

  38.  
  39. # 删除操作

  40.  
  41.  
  42. def DeleteData():

  43. sql = "delete persons where id=5"

  44. cursor.execute(sql)

  45. conn.commit()

  46.  
  47. # 查询操作

  48.  
  49.  
  50. def SelectTable():

  51. sql = "SELECT * FROM persons"

  52. cursor.execute(sql)

  53. row = cursor.fetchone()

  54. while row:

  55. print("ID=%d, Name=%s" % (row[0], row[1]))

  56. row = cursor.fetchone()

  57. # 也可以使用for循环来迭代查询结果

  58. # for row in cursor:

  59. # print("ID=%d, Name=%s" % (row[0], row[1]))

  60.  
  61. # 修改操作

  62.  
  63.  
  64. def UpdateData():

  65. sql = "update [persons] set name ='Python1' where id<3"

  66. cursor.execute(sql)

  67. conn.commit()

  68.  
  69.  
  70. def main():

  71. # CreateTable()

  72. InsertData()

  73. DeleteData()

  74. UpdateData()

  75. SelectTable()

  76. conn.close()

  77.  
  78.  
  79. if __name__ == '__main__':

  80. main()

  81.  
  82. # 关闭连接

  mssql_helper:

 
  1. import pymssql

  2.  
  3. class MSSQL:

  4. def __init__(self,host,user,pwd,db): #类的构造函数,初始化数据库连接ip或者域名,以及用户名,密码,要连接的数据库名称

  5. self.host=host

  6. self.user=user

  7. self.pwd=pwd

  8. self.db=db

  9. def __GetConnect(self): #得到数据库连接信息函数, 返回: conn.cursor()

  10. self.conn=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset='utf8')

  11. cur=self.conn.cursor() #将数据库连接信息,赋值给cur。

  12. if not cur:

  13. return(NameError,"连接数据库失败")

  14. else:

  15. return cur

  16.  
  17. #执行查询语句,返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段

  18. def ExecQuery(self,sql): #执行Sql语句函数,返回结果

  19. cur = self.__GetConnect() #获得数据库连接信息

  20. cur.execute(sql) #执行Sql语句

  21. resList = cur.fetchall() #获得所有的查询结果

  22. #查询完毕后必须关闭连接

  23. self.conn.close() #返回查询结果

  24. return resList

  25. def ExecNonQuery(self,sql):

  26. cur = self.__GetConnect()

  27. cur.execute(sql)

  28. self.conn.commit()

  29. self.conn.close()

使用:

 
  1. import mssql_helper

  2.  
  3. server = "********"

  4. user = "sa"

  5. password = "*********"

  6. database = "Python"

  7.  
  8.  
  9. mssql =""

  10.  
  11. def main():

  12. global mssql

  13. mssql = mssql_helper.MSSQL(server,user,password,database)

  14.  
  15. def test():

  16. rows = mssql.ExecQuery("SELECT * FROM persons")

  17. print(rows)

  18.  
  19. if __name__ == '__main__':

  20. main()

  21. test()

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值