python 连接 SQL Server 数据库
时间:2021-07-01 10:21:17
帮助过:5人阅读
!/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 表名’。
python 连接 SQL Server 数据库
标签:efi sql coding arc copy pass 函数 exception 数据库版本