zoukankan      html  css  js  c++  java
  • 用python连接SQL server数据库

    python连接SQL server用到的是pymssql模块。

    1.首先安装(pip install pymssql)

    2.创建连接对象

      

    • 使用connect创建连接对象
    • connect.cursor创建游标对象,SQL语句的执行基本都在游标上进行
    • cursor.executeXXX方法执行SQL语句,cursor.fetchXXX获取查询结果等
    • 调用close方法关闭游标cursor和数据库连接

     

    pymssql.connect(pymssql.connect(server='.',user='',password='',database='',timeout=0,login_timeout=60,charset ='UTF-8',as_dict=False,host='',appname=None,port ='1433',conn_properties,autocommit=False,tds_version='7.1' )

      用于创建到数据库的连接的构造函数。返回一个 Connection对象。

      connect的参数意义:

    参数:
    • server(str) - 数据库主机
    • user(str) - 数据库用户连接为
    • password(str) - 用户密码
    • database(str) - 最初连接到的数据库
    • timeout(int) - 以秒为单位的查询超时,默认为0(无超时)
    • login_timeout(int) - 以秒为单位的连接和登录超时,默认为60
    • charset(str) - 用来连接数据库的字符集
    • conn_properties - 连接建立时发送到服务器的SQL查询。可以是字符串或其他类型的字符串迭代。默认值:请参阅_mssql.connect()
    • as_dict(布尔) - 行是否应该作为字典而不是元组返回
    • appname(str) - 设置用于连接的应用程序名称
    • port(str) - 用于连接服务器的TCP端口
    • autocommit(布尔) - 是否使用默认的自动提交模式
    • tds_version(str) - 要使用的TDS协议版本。

    3.连接对象的属性(connection对象)

      

      Connection.autocommitstatus

    其中status是一个布尔值。此方法打开或关闭自动提交模式。

    默认情况下,自动提交模式是关闭的,意味着如果更改的数据要保存在数据库中,则每个事务都必须显式提交。

    你可以打开自动提交模式,这意味着每一个操作一旦成功就立即提交。

    DB-API 2.0的pymssql扩展。

      Connection.close

    关闭连接。

      Connection.cursor

    返回一个游标对象,该对象可用于查询并从数据库中获取结果。

      Connection.commit

    提交当前事务。如果将自动提交保留为缺省值,则必须调用此方法来保存数据False

    4.Cusor对象方法(SQL 语句的调用

    Cursor.close

    关闭游标。从这一点来看,光标不可用。

    Cursor.execute(operation
    Cursor.execute(operation,params

    operation是一个字符串,如果指定params,它是一个简单的值,一个元组,一个字典或None

    对数据库执行操作,可能会使用提供的值替换参数占位符。这应该是创建SQL命令的首选方法,而不是手动串联字符串,这是潜在的SQL注入攻击的原因。此方法接受与Python的内置字符串插值运算符类似的格式。但是,由于格式和类型转换是在内部处理的,因此只支持%s%d占位符。两个占位符在功能上都是等效的。

    如果您提供params字典,则支持键控占位符。

    如果您execute()使用一个参数进行调用,该%符号会失去其特殊含义,因此您可以像往常一样在查询字符串中使用它,例如在LIKE运算符中。

    您必须先致电Connection.commit()execute()否则您的数据将不会保留在数据库中。您也可以设置 connection.autocommit是否希望自动完成。DB-API需要此行为,如果您不喜欢它,请_mssql改为使用 模块。

    Cursor.executemanyoperationparams_seq 

    operation是一个S语句QL字符串,params_seq是一系列数据元组。对参数序列中的每个元素重复执行数据库操作。

    例如:

     

    Cursor.fetchone

    返回查询到一条语句,即一个元祖(行)。

    Cursor.fetchmanysize = None 

    返回查询到size条语句

    Cursor.fetchall

    返回查询到所有的元祖,为一个list

    Cursor.nextset

    此方法使光标跳到下一个可用结果集,丢弃当前集中的所有剩余行。True如果下一个结果可用,None则返回值,如果没有。

    Cursor.__iter__
    Cursor.next

    这些方法有助于Python迭代器协议。你很可能不会直接调用它们,而是通过使用迭代器间接调用它们。

    DB-API 2.0的pymssql扩展。

    Cursor.setinputsizes
    Cursor.setoutputsize

    这些方法什么都不做,正如DB-API规范所允许的。

     

    实例:

    import pymssql
    
    #连接本地数据库
    con = pymssql.connect(host = 'localhost',user = '',password = '',database = 'DB_STU')
    
    #创建cursor对象
    cur = con.cursor()
    

      

  • 相关阅读:
    Windows 下搭建Android开发环境
    浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
    更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题
    单词计数 soj1076
    拓扑排序
    浅谈C和C++中的const关键字
    快速排序
    拓扑排序 soj1075
    集合划分问题
    浅谈C/C++中的顺序点和副作用
  • 原文地址:https://www.cnblogs.com/LMIx/p/8966373.html
Copyright © 2011-2022 走看看