python通過pymysql實現數據庫的增刪改查


今天實現了python對於數據庫的增刪改查工作:

具體的每一步的數據庫的增刪蓋茶自己都實驗過了。

掌握了基本的數據庫操作語言。然后就是對於tuple()的認識。

以及對於查詢語句中的:fetchone、fetchmany、fetchall

fetchone():獲取下一行數據,第一次為首行;

fetchall():獲取所有行數據源

fetchmany(4):獲取4行數據

默認情況下,我們獲取到的返回值是元組,只能看到每行的數據,卻不知道每一列代表的是什么,這個時候可以使用以下方式來返回字典,每一行的數據都會生成一個字典:

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  #在實例化的時候,將屬性cursor設置為pymysql.cursors.DictCursor

在fetchone示例中,在獲取行數據的時候,可以理解開始的時候,有一個行指針指着第一行的上方,獲取一行,它就向下移動一行,所以當行指針到最后一行的時候,就不能再獲取到行的內容,所以我們可以使用如下方法來移動行指針:

cursor.scroll(1,mode='relative')  # 相對當前位置移動

cursor.scroll(2,mode='absolute') # 相對絕對位置移動

第一個值為移動的行數,整數為向下移動,負數為向上移動,mode指定了是相對當前位置移動,還是相對於首行移動

具體自己實驗過得代碼如下:(代碼中的所有方法都經過測試可行)

#import pymysql
#user = input('請輸入用戶名:')
#pwd1 = input('請輸入密碼1:')
#pwd2 = input('請輸入密碼2:')
# 1.連接
#conn = pymysql.connect("localhost", "root", "511924", "student", charset='utf8')
# 2.創建游標
#cursor = conn.cursor()
# 2.創建游標
#cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 注意%s需要加引號
###########################################對於查詢
#fetch數據類型關於默認獲取的數據是元祖類型,如果想要或者字典類型的數據
# 游標設置為字典類型
#cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
#cursor.execute("select * from tb7")
#row_1 = cursor.fetchone()
#print(row_1)的結果為 {u'licnese': 213, u'user': '123', u'nid': 10, u'pass': '213'}
##############################################進行查詢的相關操作
#區間查詢
#sql = "select * from text where zhanghu ='%s' and sex between '%s' and '%s'" % (user, pwd1,pwd2)
#多條件查詢
#sql = "select * from text where zhanghu ='%s' and sex='%s'" % (user, pwd1)
# 3.執行sql語句
#result = cursor.execute(sql)  # 執行sql語句,返回sql查詢成功的記錄數目
#print(result)
# 獲取剩余結果的第一行數據
#row_1 = cursor.fetchone()
#print(row_1)#z只能通過row_1[1]等輸出各項
# 獲取剩余結果前n行數據
# row_2 = cursor.fetchmany(3)
# 獲取剩余結果所有數據
# row_3 = cursor.fetchall()
#row_3 = cursor.fetchall()
#print(row_3[1][2])
# 關閉連接,游標和連接都要關閉
#cursor.close()
#conn.close()
#if result:
 #   print('登陸成功')
#else:
 #   print('登錄失敗')
#########################################################進行數據的增加
#a1=input("輸入姓名")
#a2=input("輸入密碼")
#((a1,a2),("dazhi666","88"))與[(a1,a2),("dazhi666","88")]都可以
#也可以使用sql和tuple(valuesList)進行操作
#effect_row = cursor.executemany("insert into text(zhanghu,sex)values(%s,%s)", ((a1,a2),("dazhi666","88")))
#print(effect_row)
#conn.commit()
#cursor.close()
#conn.close()
#獲取最后一個的自增id
#new_id = cursor.lastrowid
#print (new_id)
###################################################################數據庫修改
#q1=input("shuru1")
#q2=input("shuru2")
#sql = "update text set zhanghu = %s where sex = %s"
#effect_row = cursor.execute(sql,(q1,q2))
#print(effect_row)
# 一定記得commit
#conn.commit()
# 4.關閉游標
#cursor.close()
# 5.關閉連接
#conn.close()
#################################################################數據庫刪除
#wen=input("shuru")
#wen2=input("shurud")
#sql = "delete from text where sex = %s"
#sql = "delete from text where sex between %s and %s"
#effect_row = cursor.execute(sql,(wen,wen2))
#print(effect_row)
# 一定記得commit
#conn.commit()
# 4.關閉游標
#cursor.close()
# 5.關閉連接
#conn.close()
######################################################################查詢操作的字典行為
#sql = 'select * from text'
#cursor.execute(sql)
# 查詢第一行的數據
#row = cursor.fetchone()
#print(row)
#print(row["zhanghu"])輸出某一個元素的值
# 查詢第二行數據
#row = cursor.fetchone()
#print(row)
#cursor.scroll(-1, mode='relative')  # 設置之后,光標相對於當前位置往前移動了一行,所以打印的結果為第二行的數據
#row = cursor.fetchone()
#print(row)
#cursor.scroll(0, mode='absolute')  # 設置之后,光標相對於首行沒有任何變化,所以打印的結果為第一行數據
#row = cursor.fetchone()
#print(row)
# 4.關閉游標
#cursor.close()
# 5.關閉連接
#conn.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM