当前位置 : 主页 > 编程语言 > python >

一文教会你用python连接并简单操作SQLserver数据库

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 实验环境: 基本步骤: 安装pymssql模块 编写代码 错误1: 报错 原因 错误2: 总结 实验环境: python版本3.9 Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] on win3
目录
  • 实验环境:
  • 基本步骤:
    • 安装pymssql模块
    • 编写代码
  • 错误1:
    • 报错
    • 原因
  • 错误2:
    • 总结

      实验环境:

      python版本3.9

      Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] on win32
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
      

      SQLserver版本2019

      exec xp_msver 

      基本步骤:

      安装pymssql模块

      #pip 安装pymssql (python3.6以上直接安装不上)
      pip install pymssql
      
      #在官网下载pymssql对应版本,在当前文件夹下
      https://pypi.org/project/pymssql/
      pip install pymssql-2.2.4-cp39-cp39-win_amd64.whl
      

      编写代码

      sqlserver.py

      #coding=utf-8  #settng设置全局为utf—8格式
      #导包
      import pymssql
      #创建连接字符串  (sqlserver默认端口为1433)
      conn =pymssql.connect(host='localhost', #这里的host='_'可以用本机ip或ip+端口号
                               server="******",#本地服务器
                               port="1433",#TCP端口
                               user="sa",password="******",
                               database="******",
                               charset="GBK"
      #这里设置全局的GBK,如果设置的是UTF—8需要将数据库默认的GBK转化成UTF-8    
          )
      if conn:
         print('连接数据库成功!')#测试是否连接上
      

      查询

      #查询语句
      cursor =conn.cursor()  #使用cursor()方法获取操作游标
      sql_select="SELECT * FROM STUDENT"  #数据库查询语句
      cursor.execute(sql_select) #执行语句
      results =cursor.fetchall() #获取所有记录列表
      #print('原始:',end="")
      #print(result)   #后边有空格
      
      for result in results:
          result= list(result) #元组转化为列表
          for res in range (len(result)):
              if isinstance(result[res],str):
                  result[res]=result[res].replace(' ','')解决空格问题
          result=tuple(result) #列表再转换为元组
          print("处理后:",end="")
          print(result)
      #
      conn.commit()
      #关闭数据库
      conn.close()

      原始:

      处理后:

      插入

      #插入语句
      cursor =conn.cursor()
      sql_insert="insert into student values(990031,'wang',20,'男','bb','aa')"
      cursor.execute(sql_insert)
      conn.commit()
      conn.close()
      

      更新

      #更新语句
      cursor =conn.cursor()
      sql_update="update student set AGE=21 where SNO='990031' "
      cursor.execute(sql_update)
      conn.commit()
      conn.close()
      

      删除语句

      #删除语句
      cursor =conn.cursor()
      sql_delete="delete from student where sno='990031'"
      cursor.execute(sql_delete)
      conn.commit()
      conn.close()
      

      增加表

      #新建表
      cursor =conn.cursor()
      sql_create="""create table table_student(SNO int primary key not null,SNAME varchar(100),SDEPT varchar(100),BPLACE varchar(100))"""
      cursor.execute(sql_create)
      conn.commit()
      conn.close()
      

      错误1:

      报错

      原因

      没有把TCP/IP协议打开

      查看TCP端口位置:

      保证TCP/IP开启:

      开启之后,服务,重新启动服务

      错误2:

      出现查询结果乱码:

      解决办法:

      查看sqlserver的编码:

      select COLLATIONPROPERTY('chinese_PRC_Stroke_CI_AI_KS_WS','CodePage')

      查询结果:

      936 简体中文gbk

      950 繁体中文BIG5

      437 加拿大/美国 英语

      932 日文

      949 韩文

      866 俄文

      总结

      到此这篇关于python连接并简单操作SQLserver数据库的文章就介绍到这了,更多相关python连接操作SQLserver数据库内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

      上一篇:Python实现21点小游戏的示例代码
      下一篇:没有了
      网友评论