python 连接 SQL Server 数据库

#!/usr/bin/python
# -*- coding:utf-8 -*-
import pymssql
import pyodbc
host = ‘127.0.0.1:1433‘
user = ‘sa‘
password = ‘*****‘
database = ‘student‘
# SERVER是服务器名称,DATABASE是数据库名称,UID是用户名,PWD是密码
odbc = ‘DRIVER={SQL Server};SERVER=DESKTOP-MC70Q1A;DATABASE=student;UID=sa;PWD=******‘

# 数据库pymssql连接
def db_connect():
    # 打开数据库连接
    db = pymssql.connect(host, user, password, database)
    # 使用cursor()方法创建一个游标对象cursor
    cursor = db.cursor()
    # 使用execute()方法执行SQL查询
    cursor.execute(‘SELECT @@VERSION‘)
    # 使用fetchone()方法获取单条数据
    data = cursor.fetchone()
    print(‘数据库版本为:%s‘ % data)
    # 关闭数据库连接
    db.close()

# 数据库pyodbc连接
def db_connect1():
    # 打开数据库连接
    db = pyodbc.connect(odbc)
    # 使用cursor()方法创建一个游标对象cursor
    cursor = db.cursor()
    # 使用execute()方法执行SQL查询
    cursor.execute(‘SELECT @@VERSION‘)
    # 使用fetchone()方法获取单条数据
    data = cursor.fetchone()
    print(‘数据库版本为:%s‘ % ‘‘.join(data))
    # 关闭数据库连接
    db.close()

# 数据库pymssql插入
def insert_record():
    db = pymssql.connect(host, user, password, database)
    cursor = db.cursor()
    # 插入语句
    sql = """
    INSERT Course VALUES(‘10021‘,‘插入课程1‘,NULL)
    INSERT Course VALUES(‘10022‘,‘插入课程2‘,NULL)
    INSERT Course VALUES(‘10023‘,‘插入课程3‘,NULL)
    """
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘插入成功‘)
    except Exception as e:
        print(‘插入失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pyodbc插入
def insert_record1():
    db = pyodbc.connect(odbc)
    cursor = db.cursor()
    # 插入语句
    sql = """
    INSERT Course VALUES(‘10024‘,‘插入课程4‘,NULL)
    INSERT Course VALUES(‘10025‘,‘插入课程5‘,NULL)
    INSERT Course VALUES(‘10026‘,‘插入课程6‘,NULL)
    """
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘插入成功‘)
    except Exception as e:
        print(‘插入失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pymssql删除
def delete_record():
    db = pymssql.connect(host, user, password, database)
    cursor = db.cursor()
    # 删除语句
    sql = " DELETE FROM Course WHERE cno IN(‘10021‘,‘10022‘,‘10023‘)"
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘删除成功‘)
    except Exception as e:
        print(‘删除失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pyodbc删除
def delete_record1():
    db = pyodbc.connect(odbc)
    cursor = db.cursor()
    # 删除语句
    sql = "DELETE FROM Course WHERE cno IN(‘10024‘,‘10025‘,‘10026‘)"
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘删除成功‘)
    except Exception as e:
        print(‘删除失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# pymssql创建数据库表
def create_table():
    db = pymssql.connect(host, user, password, database)
    cursor = db.cursor()
    # 创建表语句
    sql = """
    DROP TABLE
    IF EXISTS New_table
    CREATE TABLE New_table(
    name CHAR(20) NULL,
    age INT,
    sex CHAR(2))
    """
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘创建表成功‘)
    except Exception as e:
        print(‘创建表失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# pyodbc创建数据库表
def create_table1():
    db = pyodbc.connect(odbc)
    cursor = db.cursor()
    # 创建表语句
    sql = """
    DROP TABLE
    IF EXISTS New_table1
    CREATE TABLE New_table1(
    name CHAR(20) NULL,
    age INT,
    sex CHAR(2))
    """
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘创建表成功‘)
    except Exception as e:
        print(‘创建表失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pymssql查询
def query_data():
    db = pymssql.connect(host, user, password, database)
    cursor = db.cursor()
    # 查询语句
    sql = "SELECT * FROM Course WHERE cbefore=‘高等数学‘"
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 获取所有记录列表
        results = cursor.fetchall()
        for row in results:
            cno = row[0]
            cname = row[1]
            cbefore = row[2]
            # 输出结果
            print(‘课程号:{0}\t课程名:{1}\t\t先行课:{2}‘.format(cno, cname, cbefore))
    except Exception as e:
        print(‘查询失败:%s‘ % e)
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pyodbc查询
def query_data1():
    db = pyodbc.connect(odbc)
    cursor = db.cursor()
    # 查询语句
    sql = "SELECT * FROM Course WHERE cbefore=‘高等数学‘"
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 获取所有记录列表
        results = cursor.fetchall()
        for row in results:
            cno = row[0]
            cname = row[1]
            cbefore = row[2]
            # 输出结果
            print(‘课程号:{0}\t课程名:{1}\t\t先行课:{2}‘.format(cno, cname, cbefore))
    except Exception as e:
        print(‘查询失败:%s‘ % e)
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pymssql修改
def alter_table():
    db = pymssql.connect(host, user, password, database)
    cursor = db.cursor()
    # 创建表语句
    sql = """
    ALTER TABLE New_table
    ALTER COLUMN sex CHAR(3)
    ALTER TABLE New_table
    DROP COLUMN age
    """
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘修改表成功‘)
    except Exception as e:
        print(‘修改表失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

# 数据库pyodbc修改
def alter_table1():
    db = pymssql.connect(host, user, password, database)
    cursor = db.cursor()
    # 创建表语句
    sql = """
    ALTER TABLE New_table1
    ALTER COLUMN sex CHAR(3)
    ALTER TABLE New_table1
    DROP COLUMN age
    """
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
        print(‘修改表成功‘)
    except Exception as e:
        print(‘修改表失败:%s‘ % e)
        # 如果发生错误就回滚
        db.rollback()
    finally:
        # 关闭数据库连接
        db.close()

在进行python连接数据库的时候,是通过百度搜索一步步尝试的。刚开始用的是pymssql模块,写到进行数据库查询的函数时这个模块输出来的结果总是出现乱码,网上也提供了几种解决办法,‘utf8’、‘gbk’编码都尝试过了,都没能解决问题。后来想着java连接sql server是通过jdbc连接的,就搜了一下python的,在后来的验证中成功解决了出现的乱码问题。这次实现还学到了使用sql修改表数据时,每次只能进行一次修改,如果还要继续进行修改,需要重新写‘alter table 表名’。

原文地址:https://www.cnblogs.com/liumengsong/p/10127438.html

时间: 2024-11-05 22:56:56

python 连接 SQL Server 数据库的相关文章

python 连接sql server数据库的示例代码

首先,到http://pymssql.sourceforge.net/下载pymssql模块,必须安装这个模块才可以用python连接mysql 以下是sql server的操作代码,需要注意字符集 # -*- coding:utf-8 -*- import pymssql #创建一个数据库连接,host是服务器的ip地址,如果是本机可以用".",user是访问用户名,password是密码,database是数据库名 conn=pymssql.connect(host=".

Python 连接Sql Server数据库 MSSql

Python 想要和MSSql数据库进行交互,首先要下载名为"pymssql"的包,然后import该包即可. 地址:https://pypi.python.org/pypi/pymssql/2.1.0#downloads 百度云(3.4win32+64):http://pan.baidu.com/s/1eSyPO5c 下载后安装,系统会自动选择python所在文件夹,然后安装到python\Lis\site-packages文件夹中. 然后在python的IDLE中敲入,import

详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作

总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. 操作数据库 7. 关闭连接 代码如下: ******************连接数据库******************* 1 package zj6_Test; 2 import java.sql.*; 3 public class Zj6_3 { 4 /** 5 * 使用Statement接口

ThinkPHP连接sql server数据库

原文:ThinkPHP连接sql server数据库 亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置问题. 我的PHP版本是5.3,就说5.3的方法吧 1.首先要下载 php_pdo_sqlsrv_53_ts_vc9.dll php_sqlsrv_53_ts_vc9.dll 下载地址:http://share.weiyun.com/dc589f

VS2013 MFC ODBC连接SQL SERVER数据库编程(三)

VS2013 MFC ODBC连接SQL SERVER数据库编程(三) 转载请注明:http://blog.csdn.net/my_acm/article/category/2616577 继上一篇讲完对数据库的链接以及一些说明之后,本文将实现对数据库的增删查改等操作. 如上图所示就是最终完成的一个简单的小程序. 首先添加列表框的NM_CLICK响应程序.鼠标放在列表框上,右键->添加事件处理程序,找到MN_CLICK消息,添加并编辑,如下图所示. 在响应函数里面添加如下代码: 这样就实现了,点

JDBC连接sql server数据库的详细步骤和代码

JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: [java] view plaincopyprint? 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  className)实现. 成功加载后,会将Driver类的实例注册到DriverManager类中. 2.提供JDBC连接的URL •连接URL定

从SSMS中复制代码到Word中数字消失--没解决&&Excel连接SQL Server数据库

1.因工作需要需把SSMS中的代码复制到word中,可发现一个问题: 从SQL Server2008的SSMS中复制代码到Word 2013中,如果是中文汉字+阿拉伯数字,阿拉伯数字会消失.如果是英文+阿拉伯数字就没有问题.在网上也没找到方法,问一哥们,他说我们都是英文,没遇到过.记录下来吧 2.每次发的数据都在数据库中,之前都是select * from TableName,然后"连同标题一起复制",然后再粘贴到Excel中.但其实excel可以连接SQL Server的,其实操作很

C# 连接SQL Server数据库的连接字符串<转>

C#连接SQL Server数据库的连接字符串,我们一个一个参数来介绍(注意:参数间用分号分隔): “user id=sa”:连接数据库的验证用户名为sa.他还有一个别名“uid”,所以这句我们还可以写成“uid=sa”. “password=”:连接数据库的验证密码为空.他的别名为“pwd”,所以我们可以写为“pwd=”. 这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要

Windows 2008服务器环境PHP连接SQL Server数据库的配置及连接方法

背景: PHP程序常用的数据库是Mysql数据库,但是由于实际项目需要,要求PHP网站连接SQL Server数据库查询一些必要信息.因此,本文就来给大家介绍一下如何安装及配置PHP扩展,可以实现PHP利用PDO函数连接SQL Server数据库. 正文: 要让PHP配置支持sql server,需要安装一些必要软件及扩展,步骤如下: 1.在微软官方页面https://www.microsoft.com/en-us/download/details.aspx?id=20098下载PHP扩展压缩包