Python 向 Sql_server 插入、刪除、更新、變量、批量處理

1、sql_server插入

import pymssql
#加載連接數據庫sql_server的模塊

connect = pymssql.connect('127.0.0.1', 'sa', '******', 'test')
#設定變量connect 執行連接數據庫 分別是ip、用戶、密碼、數據庫選擇

cursor = connect.cursor()
#設定變量cursor 創建光標

sql = "insert into c3(id, name, age) values ('12','ki','22');commit"
#執行SQL語句,向表c3插入數據,SQL_server 語句後面需要接上commit 提交,否則無法提交到數據。

try:
    cursor.execute(sql)
    #如果沒有問題執行數據庫命令
    
except:
    connect.rollback()
    #如果語句報錯則滾回
    
cursor.close()
#關閉光標
connect.close()
#光標連接

2、sql_server 刪除

import pymssql
connect = pymssql.connect('127.0.0.1', 'sa', '******', 'test')
cursor = connect.cursor()
sql = "delete from c3 where id = 12 ;commit"
try:
    cursor.execute(sql)
except:
    connect.rollback()
cursor.close()
connect.close()

3、sql_server 更新

import pymssql
connect = pymssql.connect('127.0.0.1', 'sa', '******', 'test')
cursor = connect.cursor()
sql = "update c3 set name = 'kki',age = '33' where id = 22 ;commit"
try:
    cursor.execute(sql)
except:
    connect.rollback()
cursor.close()
connect.close()

4、變量傳入

import pymssql
id1 = 23 
name1 = "tre"
age1 = 24
connect = pymssql.connect('127.0.0.1', 'sa', '******', 'test')
cursor = connect.cursor()
sql = "insert into c3(id, name, age) values ('%d', '%s', '%d');commit" % (id1, name1, age1)
#變量傳入,使用%d 代表int類型、%s字符串類型,變量需要在commit之後傳入   
try:
    cursor.execute(sql)
except:
    connect.rollback()
cursor.close()
connect.close()

5、批量插入規律的數據

import pymssql
i = 1
name = 'user'
age = 24
connect = pymssql.connect('127.0.0.1', 'sa', '*******', 'test')
cursor = connect.cursor()
for j in range(10):
    sql = "insert into c3(id, name, age) values ('%d', '%s', '%d');commit" % (i, name+str(i), age)
    #插入數據的時候,i是int類型,需要轉換成字符串類型使用str(i)
    try:
        cursor.execute(sql)
    except:
        connect.rollback()
    i = i + 1
    j = j + 1
cursor.close()
connect.close()

6、批量修改

import pymssql
connect = pymssql.connect('127.0.0.1', 'sa', '********', 'test')
cursor = connect.cursor()
sql = "select * from A8SD_GLDEPARTMENT where year = 2020 and ACCOUNTID = 001 and (oadepid = 1703065553569008174 OR oadepid = 3932086535711443527)"
#查詢想要的數據轉換成變量

cursor.execute(sql)

row = cursor.fetchall()
#把查詢的結果轉換成list列,

for i in row:
#進行循環處理

    #print(i[1], i[4], i[5])
    #循環打印當前列的 1 、4、 5的值
    
    sql1 = "update A8SD_GLDEPARTMENT set UFDEPID = '%s', UFDEPNAME = '%s' where ACCOUNTID <> 001 and oadepid = '%s';commit "% (i[4], i[5], i[1])
    #對自己的數據表進行數據更新處理
    
    try:
        cursor.execute(sql1)
    except:
        connect.rollback()
cursor.close()
connect.close()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章