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()
注意:
1.在使用pymssql模块连接SQL Server执行查询操作时会出现中文乱码问题,尝试了编码改成GBK以及UTF-8最终都以失败告终。执行插入操作以及其它为出现问题,可正常显示。
2.使用pyodbc模块连接SQL Server效果则相对较好,没有出现中文乱码问题,建议首选。
3.执行操作时一定要使用commit语句提交到数据库执行。
4.如果发生错误记得要使用rollback语句回滚。
python 连接 SQL Server 数据库的更多相关文章
- python连接sql server数据库实现增删改查
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
- python 连接sql server数据库的示例代码
首先,到http://pymssql.sourceforge.net/下载pymssql模块,必须安装这个模块才可以用python连接mysql 以下是sql server的操作代码,需要注意字符集 ...
- Python连接SQL Server数据库 - pymssql使用基础
连接数据库 pymssql连接数据库的方式和使用sqlite的方式基本相同: 使用connect创建连接对象 connect.cursor创建游标对象,SQL语句的执行基本都在游标上进行 cursor ...
- python连接sql server数据库
记录一下pyodbc连接数据库的使用方法和注意事项,基于python2.7: 前提: pip install pyodbc .下载pyodbc包. pyodbc.connect('DRIVER ...
- Python 连接Sql Server数据库 MSSql
Python 想要和MSSql数据库进行交互,首先要下载名为"pymssql"的包,然后import该包即可. 地址:https://pypi.python.org/pypi/py ...
- Python 连接SQL Server数据库 - pymssql使用基础
1. 官方api http://www.pymssql.org/en/stable/ref/pymssql.html 我学习自这里
- Python3.7.1学习(八) Python访问SQL Server数据库
一.pip install pymssql即可安装pymssql库 二.Python连接SQL Server数据库 实例代码如下: # -*- coding:utf-8 -*-"&q ...
- python 使用pymssql连接sql server数据库
python 使用pymssql连接sql server数据库 #coding=utf-8 #!/usr/bin/env python#------------------------------ ...
- python 连接sql server
linux 下pymssql模块的安装 所需压缩包:pymssql-2.1.0.tar.bz2freetds-patched.tar.gz 安装: tar -xvf pymssql-2.1.0.tar ...
随机推荐
- Knative 初体验:Eventing Hello World
作者 | 阿里云智能事业群高级开发工程师 元毅 基于事件驱动是Serveless的核心功能之一,通过事件驱动服务,满足了用户按需付费(Pay-as-you-go)的需求.在之前的文章中我们介绍过 Kn ...
- How to use AutoMapper
http://docs.automapper.org/en/stable/Getting-started.html IMappingExpression<TSource, TDestinatio ...
- 前后端登录注册之node剖析与token的使用状态
登录模块功能详解 1.用户名密码的格式验证 由前端完成,根据需求自行决定,不加叙述 2.点击提交按钮思路详解 前端将用户名 以及加密后的密码还有验证码输入的内容统一发给后端 由后端和数据库的数据进行 ...
- Pytorch的网络结构可视化(tensorboardX)(详细)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xiaoxifei/article/det ...
- ViewPager封装工具类: 轻松实现APP导航或APP中的广告栏
相信做app应用开发的,绝对都接触过ViewPager,毕竟ViewPager的应用可以说无处不在:APP第一次启动时的新手导航页,APP中结合Fragment实现页面滑动,APP中常见的广告栏的自动 ...
- 第三期 预测——Frenet 坐标
Frenet坐标 在讨论过程模型之前,我们应该提到“Frenet Coordinates”,它是一种以比传统x,y笛卡尔坐标更直观的方式表示道路位置的方式. 用Frenet坐标,我们使用变量 s和d描 ...
- props & children
一. choosing the type at runtime import React from 'react'; import { PhotoStory, VideoStory } from '. ...
- JS 动态表格
表格 在script里面使用innerHTML获取标签体的内容,然后进行添加. 删除则是不断的获取父节点,利用父节点删除子节点. 在做这个的时候,要主要获取表格table的对象有两种方式,一是getE ...
- Roslyn 静态分析
本文告诉大家如何使用 Roslyn 分析代码 首先创建一个项目,项目使用.net Framework 4.6.2 ,控制台项目.然后需要安装一些需要的库 Nuget 安装 打开 Nuget 安装下面两 ...
- H3C 显示OSPF邻居信息