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 ...
随机推荐
- Python中并发前戏之操作系统
进程: 1.串行: 一个任务完完整整地运行完毕后,才能运行下一个任务 2.并发 看起来多个任务是同时运行的即可,单核也可以实现并发 3.并行: 真正意义上多个任务的同时运行,只有多核才实现并行 1.什 ...
- 2019-11-19-git-修改commit日期为之前的日期
title author date CreateTime categories git 修改commit日期为之前的日期 lindexi 2019-11-19 08:53:16 +0800 2018- ...
- python 字典推导式
- javascript、jquery、AJAX总结 标签: javascriptjqueryajax 2016-01-23 10:25 2415人阅读
其实在学习之前,就已经用上了js,jquery和ajax,不过当时不清楚这些的区别,就全都当成js来看,然后别人一说jquery,ajax都觉得好像很高级,等到自己学习的时候,倒是对这些更清楚了一点, ...
- HDU-1260_Tickets
Tickets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Des ...
- Pytorch - GPU ID 指定 pytorch gpu 指定
PyTorch 关于多 GPUs 时的指定使用特定 GPU. PyTorch 中的 Tensor,Variable 和 nn.Module(如 loss,layer和容器 Sequential) 等可 ...
- C# 设计模式 责任链
责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个 ...
- Hbase数据模型 行
- oracle函数 INSTR(C1,C2[,I[,J]])
[功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; [说明]多字节符(汉字.全角符等),按1个字符计算 [参数] C1 被搜索的字符串 C2 希望搜索的字符串 I 搜 ...
- 消息点击率翻倍的背后——闲鱼无侵入可扩展IFTTT系统
一.面临问题 在闲鱼生态里,用户之间会有很多种关系.其中大部分关系是由买家触发,联系到卖家,比如买家通过搜索.收藏.聊天等动作与卖家产生联系:另外一部分是平台与用户之间的关系.对这些关系分析之后我们发 ...