python使用_pymssql_CRUD(操作sql server)

本文介绍了如何使用Python的pymssql模块对SQL Server数据库进行创建、读取、更新和删除操作。详细步骤和链接参考提供。
摘要由CSDN通过智能技术生成

使用pymssql对sql server进行增删查改操作:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
通过pymssql对sql server进行CRUD操作
"""

import pymssql
import pandas as pd


# ===========================
# Essential:创建连接对象
# ===========================
db_params = {
    'host': '127.0.0.1',
    'user': 'alex.deng',
    'password': 'XXXXXX',
    'database': 'CarDataCenter'
}
conn = pymssql.connect(**db_params)  # 默认autocommit=False
cursor = conn.cursor()               # 创建游标,增删改查都在游标上进行



# ===========================
# create 创建表/表中插入数据
# 1. 创建新表
# 2. 表中插入数据insert
# ===========================
# 1. 创建新表
cursor.execute("""
IF OBJECT_ID('dbo.car_details', 'U') IS NOT NULL
DROP TABLE dbo.car_details;
CREATE TABLE dbo.car_details (
    id INT NOT NULL,
    name VARCHAR(100),
    url VARCHAR(100),
    PRIMARY KEY(id)
)
""")
# 如果没有指定autocommit属性为True的话就需要调用commit()方法
conn.commit()  # 如果 update/delete/insert 记得要 conn.commit() ,否则数据库事务无法提交

# 2. 表中插入数据insert
cursor.executemany(
    """
    INSERT INTO dbo.car_details
    VALUES (%d, %s, %s)
    """,
    [(1243, '思域 2016款 尊耀版', 'http://.com/details/8.html'),
     (1245, '奥迪A4LTFSI quattro运动版', 'http://.com/details/3-2.html'),
     (1246, '奥迪A6L 2017款技术版', 'http://pingce/details/82.html')])
# 如果没有指定autocommit属性为True的话就需要调用commit()方法
conn.commit()



# ===========================
# retrieve 查询
# 注意:游标执行多次查询只会保留最后一次执行结果
# ===========================
# fetchall 所有结果
cursor.execute("""
select  * from [dbo].[car_details]
""")
data = cursor.fetchall()
col_names = ['id', 'name', 'url']
df_car_detail = pd.DataFrame(data, columns=col_names)  # 输出结果存储为DataFrame

# fetchone 单个结果
cursor.execute("""
select  * from [dbo].[car_details]
""")
row = cursor.fetchone()  # row为tuple类型
# 可以通过while或for循环来遍历查询结果
while row:
    print(row)
    row = cursor.fetchone()
# or
for row in cursor:
    print(row)


# ===========================
# update 更新
# ===========================
cursor.execute(
    """
    UPDATE  dbo.car_details
    SET name = %s
    WHERE id = %s
    """, ('奥迪A6L 2017款技术版更新', 1246))
# 如果没有指定autocommit属性为True的话就需要调用commit()方法
conn.commit()


# ===========================
# delete 删除
# ===========================
id = 1243
cursor.execute("""
DELETE FROM dbo.car_details
WHERE id=%d
""", id)
# 如果没有指定autocommit属性为True的话就需要调用commit()方法
conn.commit()


# 关闭连接
conn.close()

pymysql介绍见https://blog.csdn.net/weixin_43254908/article/details/87375382

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值