python 连接 SQL Server 数据库(使用 pymssql 库)

import pymssql

host = ‘127.0.0.1’
user = ‘sa’
password = ‘******’
database = ‘WMS’

数据库连接

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(f’Database version: {data[0]}’)
# 关闭数据库连接,此时自动关闭多有游标对象
db.close()

创建数据库表

def create_table():
# 打开数据库连接
db = pymssql.connect(host, user, password, database)
# 使用 cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute()方法执行 SQL,如果表存在就删除
cursor.execute(‘drop table if exists teacher’)
# 使用预处理语句创建表
sql = ‘’‘create table teacher(
id int primary key,
name varchar(20) not null,
sex varchar(2) not null,
age int not null)’’’
try:
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(‘CREATE TABLE SUCCESS.’)
# 捕获与数据库相关的错误
except pymssql.Error as err:
print(f’CREATE TABLE FAILED, CASE:{err}’)
# 如果发生错误就回滚
db.rollback()
finally:
# 关闭数据库连接
db.close()

删除数据库表

def drop_table():
# 打开数据库连接
db = pymssql.connect(host, user, password, database)
# 使用 cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用预处理语句删除表
sql = ‘drop table teacher’
try:
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(‘DROP TABLE SUCCESS.’)
# 捕获与数据库相关的错误
except pymssql.Error as err:
print(f’DROP TABLE FAILED, CASE:{err}’)
# 如果发生错误就回滚
db.rollback()
finally:
# 关闭数据库连接
db.close()

数据库插入

def insert_record():
# 打开数据库连接
db = pymssql.connect(host, user, password, database)
# 使用 cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = “insert information values(1001, ‘小明’, ‘男’, 18)”
try:
# 执行 SQL 语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(‘INSERT SUCCESS.’)
# 捕获与数据库相关的错误
except pymssql.Error as err:
print(f’INSERT FAILED, CASE:{err}’)
# 如果发生错误就回滚
db.rollback()
finally:
# 关闭数据库连接
db.close()

数据库删除

def delete_record():
# 打开数据库连接
db = pymssql.connect(host, user, password, database)
# 使用 cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 删除语句
sql = “delete from information where sex=‘女’”
try:
# 执行 SQL 语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(‘DELETE SUCCESS.’)
# 捕获与数据库相关的错误
except pymssql.Error as err:
print(f’DELETE FAILED, CASE:{err}’)
# 如果发生错误就回滚
db.rollback()
finally:
# 关闭数据库连接
db.close()

数据库更新

def update_record():
# 打开数据库连接
db = pymssql.connect(host, user, password, database)
# 使用 cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 更新语句
sql = “update information set age=25 where name=‘小明’”
try:
# 执行 SQL 语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(‘UPDATE SUCCESS.’)
# 捕获与数据库相关的错误
except pymssql.Error as err:
print(f’UPDATE FAILED, CASE:{err}’)
# 如果发生错误就回滚
db.rollback()
finally:
# 关闭数据库连接
db.close()

数据库查询

def query_record():
# 打开数据库连接
db = pymssql.connect(host, user, password, database, charset=‘utf8’)
# 使用 cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = ‘select * from information’
try:
# 执行 SQL 语句
cursor.execute(sql)
‘’’
fetchone():该方法获取下一个查询结果集,结果集是一个对象。
fetchall():接收全部返回结果行。
rowcount:返回执行 execute()方法后影响的行数
‘’’
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
num = row[0]
# 解决中文乱码问题
name = row[1].encode(‘latin-1’).decode(‘gbk’)
sex = row[2].encode(‘latin-1’).decode(‘gbk’)
age = row[3]
# 输出结果
print(f’id:{num}, name:{name}, sex:{sex}, age:{age}’)
# 捕获与数据库相关的错误
except pymssql.Error as err:
print(f’QUERY MySQL table FAILED, CASE:{err}’)
finally:
# 关闭数据库连接
db.close()

if name == ‘main’:
db_connect()

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dance Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值