Python利用txt文件對(duì)Mysql進(jìn)行增刪改查移
一、關(guān)系數(shù)據(jù)庫
1.數(shù)據(jù)模型
實(shí)體間的關(guān)系分為以下有三種:
1*)一對(duì)一模型
一對(duì)一(one-to-one)
關(guān)系模型用二維表格表示數(shù)據(jù)及數(shù)據(jù)聯(lián)系,是應(yīng)用最為廣泛的數(shù)據(jù)模型。目前,各種常用的數(shù)據(jù)庫,如Microsoft SQL Server、Microsoft Access、Microsoft FoxPro、Oracle、MySQL、SQLite等,都屬于關(guān)系模型數(shù)據(jù)庫管理系統(tǒng)。
2*)一對(duì)多模型
一對(duì)多(one-to-many)
層次模型采用樹狀結(jié)構(gòu)表示數(shù)據(jù)之間的聯(lián)系,樹的節(jié)點(diǎn)稱為記錄,記錄之間只有簡(jiǎn)單的層次關(guān)系。有且只有一個(gè)節(jié)點(diǎn)沒有父節(jié)點(diǎn),該節(jié)點(diǎn)稱為根節(jié)點(diǎn);其他節(jié)點(diǎn)有且只有一個(gè)父節(jié)點(diǎn)。
3*)多對(duì)多模型
多對(duì)多(many-to-many)
可以有任意多個(gè)節(jié)點(diǎn)沒有父節(jié)點(diǎn)。一個(gè)節(jié)點(diǎn)允許有多個(gè)父節(jié)點(diǎn)。兩個(gè)節(jié)點(diǎn)之間可以有兩種或兩種以上聯(lián)系。
2.面相對(duì)象模型
1*)對(duì)象模型概念
面向?qū)ο竽P褪窃诿嫦驅(qū)ο蠹夹g(shù)基礎(chǔ)上發(fā)展起來一種的數(shù)據(jù)模型,它采用面向?qū)ο蟮姆椒▉碓O(shè)計(jì)數(shù)據(jù)庫。
2*) 對(duì)象模型特點(diǎn)
面向?qū)ο竽P偷臄?shù)據(jù)庫種存儲(chǔ)對(duì)象以對(duì)象為單位,每個(gè)對(duì)象包含對(duì)象的屬性和方法,具有類和繼承等特點(diǎn)。
二、了解關(guān)系數(shù)據(jù)庫的概念和特點(diǎn)
關(guān)系數(shù)據(jù)庫的概念和特點(diǎn)
1.基本概念
i*)關(guān)系
數(shù)據(jù)和數(shù)據(jù)之間的聯(lián)系稱為關(guān)系。
ii*)二維表
關(guān)系數(shù)據(jù)庫使用二維表來表示和存儲(chǔ)關(guān)系,一個(gè)關(guān)系就是一個(gè)二維表。表中的行稱為記錄,列稱為字段。一個(gè)數(shù)據(jù)庫可以包含多個(gè)表
iii*)記錄與字段
表中的一行稱為一個(gè)記錄。表中的列為記錄中的數(shù)據(jù)項(xiàng),稱為字段。字段也稱為屬性或者列。每個(gè)記錄可以包含多個(gè)字段,不同記錄包含相同的字段(字段的值不同)。例如,用戶表中的每個(gè)記錄包含用戶名、登錄密碼等字段。
關(guān)系數(shù)據(jù)庫不允許在一個(gè)表中出現(xiàn)重復(fù)的記錄。
VI*)關(guān)鍵字
可以唯一標(biāo)識(shí)一個(gè)記錄的字段或字段組合稱為關(guān)鍵字。一個(gè)表可有多個(gè)關(guān)鍵字,其中用于標(biāo)識(shí)記錄的關(guān)鍵字稱為主關(guān)鍵字,其他的關(guān)鍵字可稱為候選關(guān)鍵字。一個(gè)表只允許有一個(gè)主關(guān)鍵字。例如,用戶表中的用戶名可定義為主關(guān)鍵字,在添加記錄時(shí),主關(guān)鍵字不允許重復(fù)。
VII*)外部關(guān)鍵字
如果一個(gè)表中的字段或字段組合作為其他表的主關(guān)鍵字,這樣的字段或字段組合稱為外部關(guān)鍵字。
2.基本特點(diǎn)
關(guān)系數(shù)據(jù)庫中的表是二維表,表中的字段必須是不可再分的,即不允許表中表。
在同一個(gè)表中不允許出現(xiàn)重復(fù)的記錄。
在同一個(gè)記錄中不允許出現(xiàn)重復(fù)的字段。
表中記錄先后順序不影響數(shù)據(jù)的性質(zhì),可以交換記錄順序。
記錄中字段的順序不影響數(shù)據(jù),可以交換字段的順序。
三、常用字段數(shù)據(jù)類型
數(shù)據(jù)表格
四、在spyder中調(diào)用文件TXT內(nèi)容進(jìn)入程序
第一步、首先我們需要把文件里面的內(nèi)容寫進(jìn)spyder
當(dāng)我們文件寫入spyder成功后,就可以編寫程序啦!
第二步、編寫菜單程序
1.制作主頁菜單
def query_record(): print('查詢學(xué)生記錄') def modify_record(): print('修改學(xué)生記錄') def delete_record(): print('刪除學(xué)生記錄') def add_record(): print('增加學(xué)生記錄') def exit_record(): print("退出系統(tǒng)") def login(): while True: print('主菜單') print('============='*2) print('1. 查詢記錄') print('2. 修改記錄') print('3. 刪除記錄') print('4. 增加記錄') print('5. 退出系統(tǒng)') print('=============='*2) mc2 = int(input('輸入菜單號(hào):')) if mc2 == 1: query_record() elif mc2 == 2: modify_record() elif mc2 == 3: delete_record() elif mc2 == 4: add_record() elif mc2 == 5: exit_record() else: break
當(dāng)我們編寫完菜單程序之后就可以針對(duì)菜單程序編寫對(duì)應(yīng)程序
編寫相對(duì)應(yīng)的程序菜單,列如編寫進(jìn)入查詢記錄菜單過后的程序
2.制作程序菜單
while True: print('============'*2) print('1. 查詢學(xué)生記錄') print('2. 修改學(xué)生記錄') print('3. 刪除學(xué)生記錄') print('4. 增加學(xué)生記錄') print('5. 退出系統(tǒng)') print('============'*2)
當(dāng)我們編寫完畢之后,總體的架構(gòu)也就有了,這樣就可以逐步實(shí)現(xiàn)每個(gè)菜單號(hào)所對(duì)應(yīng)的代碼啦!
首先編寫查詢學(xué)生學(xué)號(hào)的程序
3.編寫查詢學(xué)號(hào)程序
mc1 = int(input('請(qǐng)輸入菜單號(hào):')) if mc1 == 1: id=input("請(qǐng)輸入您想查詢的學(xué)號(hào):") for student in students: found=False if (student[0]==id): found=True print("恭喜記錄查詢成功!") print() for i in range(len(student)): print(student[i],end=" ") print() break if not found: print("姓名為{}的同學(xué)沒有找到!".format(id))
查詢到所要修改的學(xué)號(hào)后,輸入修改后的新學(xué)號(hào)
4.編寫修改學(xué)號(hào)程序
elif mc1==2: id=input("請(qǐng)輸入您想修改的學(xué)號(hào):") for student in students: found=False if (student[0]==id): found=True student=list(student) student[7]=int(input("輸入新的電話號(hào)碼:")) student[3]=int(input("輸入新的年齡:")) print("恭喜記錄修改成功!") for i in range(len(student)): print(student[i],end=" ") print() break if not found: print("姓名為{}的同學(xué)沒有找到!".format(id))
查詢記錄程序編完之后就可以進(jìn)行修改記錄程序的編寫了
5.編寫學(xué)號(hào)程序
elif mc1==2: id=input("請(qǐng)輸入您想修改的學(xué)號(hào):") for student in students: found=False if (student[0]==id): found=True student=list(student) student[7]=int(input("輸入新的電話號(hào)碼:")) student[3]=int(input("輸入新的年齡:")) print("恭喜記錄修改成功!") for i in range(len(student)): print(student[i],end=" ") print() break if not found: print("姓名為{}的同學(xué)沒有找到!".format(id))
修改記錄程序編完之后就可以進(jìn)行刪除記錄程序的編寫了
6.編寫刪除學(xué)生記錄程序
elif mc1==3: id=input("請(qǐng)輸入你想刪除的學(xué)生學(xué)號(hào):") found=False for student in students: if (student[0]==id): found=True students.remove(student) print("恭喜記錄刪除成功!") print() break if not found: print("姓名為{}的同學(xué)沒有找到!".format(id)) else: for student in students: for i in range(len(student)): print(student[i],end=" ") print()
刪除記錄程序編完之后就可以進(jìn)行增加記錄程序的編寫了!
7.編寫增加學(xué)生記錄程序
第三步、退出系統(tǒng)即可
以上就是Python利用txt文件對(duì)Mysql進(jìn)行增刪改查移的詳細(xì)內(nèi)容,更多關(guān)于Python Mysql增刪改查移的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于python實(shí)現(xiàn)在excel中讀取與生成隨機(jī)數(shù)寫入excel中
最近接個(gè)項(xiàng)目,項(xiàng)目要求是這樣的:在一份已知的excel表格中讀取學(xué)生的學(xué)號(hào)與姓名,再將這些數(shù)據(jù)放到新的excel表中的第一列與第二列,最后再生成隨機(jī)數(shù)作為學(xué)生的考試成績(jī),具體實(shí)現(xiàn)代碼大家參考下本文2018-01-01python使用matplotlib:subplot繪制多個(gè)子圖的示例
這篇文章主要介紹了python使用matplotlib:subplot繪制多個(gè)子圖的示例,幫助大家更好的利用python繪制圖像,感興趣的朋友可以了解下2020-09-09Python使用微信itchat接口實(shí)現(xiàn)查看自己微信的信息功能詳解
這篇文章主要介紹了Python使用微信itchat接口實(shí)現(xiàn)查看自己微信的信息功能,結(jié)合實(shí)例形式分析了Python微信itchat模塊常見功能與操作技巧,需要的朋友可以參考下2019-08-08詳解APScheduler如何設(shè)置任務(wù)不并發(fā)
本文主要介紹了APScheduler如何設(shè)置任務(wù)不并發(fā),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07淺談Python小波分析庫Pywavelets的一點(diǎn)使用心得
這篇文章主要介紹了淺談Python小波分析庫Pywavelets的一點(diǎn)使用心得,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07跟老齊學(xué)Python之集成開發(fā)環(huán)境(IDE)
IDE的全稱是:Integrated Development Environment,簡(jiǎn)稱IDE,也稱為Integration Design Environment、Integration Debugging Environment,翻譯成中文叫做“集成開發(fā)環(huán)境”,在臺(tái)灣那邊叫做“整合開發(fā)環(huán)境”。2014-09-09python獲取引用對(duì)象的個(gè)數(shù)方式
今天小編就為大家分享一篇python獲取引用對(duì)象的個(gè)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12