最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python通過pymysql調(diào)用MySQL進(jìn)行增刪改移查

 更新時間:2021年12月29日 15:15:44   作者:那人獨(dú)釣寒江雪.  
這篇文章主要介紹了Python通過pymysql調(diào)用MySQL,從而實(shí)現(xiàn)數(shù)據(jù)的增刪改移查功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、關(guān)系數(shù)據(jù)庫

1.數(shù)據(jù)模型

實(shí)體間的關(guān)系分為以下有三種:

1*)一對一模型

一對一(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*)一對多模型

一對多(one-to-many)

層次模型采用樹狀結(jié)構(gòu)表示數(shù)據(jù)之間的聯(lián)系,樹的節(jié)點(diǎn)稱為記錄,記錄之間只有簡單的層次關(guān)系。有且只有一個節(jié)點(diǎn)沒有父節(jié)點(diǎn),該節(jié)點(diǎn)稱為根節(jié)點(diǎn);其他節(jié)點(diǎn)有且只有一個父節(jié)點(diǎn)。

3*)多對多模型

多對多(many-to-many)

可以有任意多個節(jié)點(diǎn)沒有父節(jié)點(diǎn)。一個節(jié)點(diǎn)允許有多個父節(jié)點(diǎn)。兩個節(jié)點(diǎn)之間可以有兩種或兩種以上聯(lián)系。

2.面相對象模型

1*)對象模型概念

面向?qū)ο竽P褪窃诿嫦驅(qū)ο蠹夹g(shù)基礎(chǔ)上發(fā)展起來一種的數(shù)據(jù)模型,它采用面向?qū)ο蟮姆椒▉碓O(shè)計數(shù)據(jù)庫。

2*)對象模型特點(diǎn)

面向?qū)ο竽P偷臄?shù)據(jù)庫種存儲對象以對象為單位,每個對象包含對象的屬性和方法,具有類和繼承等特點(diǎn)。

二、了解關(guān)系數(shù)據(jù)庫的概念和特點(diǎn)

關(guān)系數(shù)據(jù)庫的概念和特點(diǎn)

基本概念

i*)關(guān)系

數(shù)據(jù)和數(shù)據(jù)之間的聯(lián)系稱為關(guān)系。

ii*)二維表

關(guān)系數(shù)據(jù)庫使用二維表來表示和存儲關(guān)系,一個關(guān)系就是一個二維表。表中的行稱為記錄,列稱為字段。一個數(shù)據(jù)庫可以包含多個表。

iii*)記錄與字段

表中的一行稱為一個記錄。表中的列為記錄中的數(shù)據(jù)項(xiàng),稱為字段。字段也稱為屬性或者列。每個記錄可以包含多個字段,不同記錄包含相同的字段(字段的值不同)。例如,用戶表中的每個記錄包含用戶名、登錄密碼等字段。

關(guān)系數(shù)據(jù)庫不允許在一個表中出現(xiàn)重復(fù)的記錄。

VI*)關(guān)鍵字

可以唯一標(biāo)識一個記錄的字段或字段組合稱為關(guān)鍵字。一個表可有多個關(guān)鍵字,其中用于標(biāo)識記錄的關(guān)鍵字稱為主關(guān)鍵字,其他的關(guān)鍵字可稱為候選關(guān)鍵字。一個表只允許有一個主關(guān)鍵字。例如,用戶表中的用戶名可定義為主關(guān)鍵字,在添加記錄時,主關(guān)鍵字不允許重復(fù)。

VII*)外部關(guān)鍵字

如果一個表中的字段或字段組合作為其他表的主關(guān)鍵字,這樣的字段或字段組合稱為外部關(guān)鍵字。

基本特點(diǎn)

1.關(guān)系數(shù)據(jù)庫中的表是二維表,表中的字段必須是不可再分的,即不允許表中表。

2.在同一個表中不允許出現(xiàn)重復(fù)的記錄。

3.在同一個記錄中不允許出現(xiàn)重復(fù)的字段。

4.表中記錄先后順序不影響數(shù)據(jù)的性質(zhì),可以交換記錄順序。

5.記錄中字段的順序不影響數(shù)據(jù),可以交換字段的順序。

三、常用字段數(shù)據(jù)類型

數(shù)據(jù)表格

四、使Mysql和Pymysql鏈接成功

第一步、先在Navicat Premium 12中找到數(shù)據(jù)表登錄鏈接

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

注明:數(shù)據(jù)表一定要存在 不然數(shù)據(jù)修改追加不進(jìn)去的!?。?!

第二步、 顯示鏈接成功后登入spyder 或者pycharm使用pymysql調(diào)用mysql

注明:博主使用的spyder

請?zhí)砑訄D片描述

import pymysql

#定義數(shù)據(jù)庫鏈接參數(shù)
host = '127.0.0.1'  #或者用local host
port = 3306
db = 'student'
user = 'root'
password = 'lyt2529165097'
conn = pymysql.connect(host=host, port=port, db=db, user=user, password=password)
def main():
    cursor = conn.cursor(pymysql.cursors.SSCursor)  #流式游標(biāo),默認(rèn)返回元組
    return cursor
通過在spyder里面輸入主機(jī)號 端口號 主機(jī)名 密碼等就可以登錄進(jìn)去了

第三步、編寫代碼登錄系統(tǒng)

1.編寫系統(tǒng)登錄退出界面

while True:
    print('請選擇以下菜單號:')
    print('========='*3)
    print('1、登錄學(xué)生信息管理系統(tǒng)')
    print('2、退出學(xué)生信息管理系統(tǒng)')
    print('========='*3)
    mc1 = int(input('輸入菜單號:'))
    if mc1 == 1:
        login()
    elif mc1 == 2:
        print('感謝使用學(xué)生信息管理系統(tǒng)!')
        break

當(dāng)然了,進(jìn)入系統(tǒng)怎么可能不需要密碼呢。一定要給自己設(shè)置密碼哦 不然別人半夜刪你代碼!??!

2.編寫進(jìn)入系統(tǒng)用戶名和密碼

def login():
    administartor = input('請輸入用戶名:')
    password = input('請輸入密碼:')
    if administartor == '雷云騰' and password == 'lyt2529165097':

請?zhí)砑訄D片描述

成功進(jìn)入系統(tǒng)后,就可以編寫下一個程序了,比如我們把菜單系統(tǒng)都編寫出來,這樣就有了一個整體架構(gòu)

3.編寫登錄后供選擇的菜單

登錄主菜單

#登入后的菜單----展開
def login():
    administartor = input('請輸入用戶名:')
    password = input('請輸入密碼:')
    if administartor == '雷云騰' and password == 'lyt2529165097':
        print("恭喜你成功登錄系統(tǒng)!!")
        while True:
            print('學(xué)生信息管理系統(tǒng)')
            print('================')
            print('1、增加學(xué)生記錄')
            print('2、查詢學(xué)生記錄')
            print('3、修改學(xué)生記錄')
            print('4、刪除學(xué)生記錄')
            print('5、顯示所有的學(xué)生記錄')
            print('6、返回上級菜單')
            print('=================')
            mc2 = int(input('輸入菜單號:'))
            if mc2 == 1:
                add_student()
            elif mc2 == 2:
                query_student()
            elif mc2 == 3:
                update_student
            elif mc2 == 4:
                delete_student()
            elif mc2==5:
                print_student()
            else:
                break
    else:
        print('賬號或密碼錯誤!')

成功進(jìn)入系統(tǒng)后并且擁有菜單系統(tǒng)的時候就可以編寫下一個程序了,比如我們先編寫插入記錄的程序

4.編寫增加學(xué)生記錄的程序

#插入學(xué)生記錄
def add_student():
    cursor = main()
    id = int(input('學(xué)號:'))
    name = input('姓名:')
    gender = input('性別:')
    age = int(input('年齡:'))
    class1 = input('班級:')
    major = input('專業(yè):')
    college = input('學(xué)院:')
    add = cursor.execute('insert into stu (id, name, gender, age, class1, major, college)\
                   values(%s,%s,%s,%s,%s,%s,%s)',(id, name, gender, age, class1, major, college))
    if add == 1:
        conn.commit()
        print('插入成功!')
    else:
        print('插入失敗!')

請?zhí)砑訄D片描述

第四步、編寫查詢學(xué)生信息記錄的代碼

I*)按照學(xué)號查詢學(xué)生記錄

#按學(xué)號查詢
def Q_by_id():
    cursor = main()
    choice_id = int(input('請輸入學(xué)號:'))
    cursor.execute('select * from stu where id =%s',(choice_id))
    students = cursor.fetchall()
    for stu in students:
        print(stu[0], stu[1], stu[2], stu[3], stu[4], stu[5], stu[6])
        print('查詢成功')
         re = input('是否繼續(xù)查詢(yes/no):')
        if re == 'yes':
            Q_by_id()
        else:
            query_student()

II*)按照姓名查詢學(xué)生記錄

#按姓名查詢(以防學(xué)號輸入錯誤)
def Q_by_name():
    cursor = main()
    choose_name = input('請輸入姓名:')
    cursor.execute('select * from stu where name =%s',(choose_name))
    students = cursor.fetchall()
    for stu in students:
        print(stu[0], stu[1], stu[2], stu[3], stu[4], stu[5], stu[6])
        print()
        re = input('是否繼續(xù)查詢yes/no:')
        if re == 'yes':
            Q_by_name()
        else:
            query_student()

III*)查詢所有學(xué)生的信息記錄

#查詢所有學(xué)生
def Q_all():
    cursor = main()
    cursor.execute('select * from stu')
    students = cursor.fetchall()
    for student in students:
        print('\t{}\t{}\t{}\t{}\t{}\t{}\t{}' .format(student[0], student[1], student[2], student[3], student[4], student[5], student[6]))

在這里插入圖片描述

在這里插入圖片描述

這樣就查詢成功啦!,如果還想要進(jìn)行查詢的話,也是可以編寫代碼來實(shí)現(xiàn)的!

VI*)編寫"是否"進(jìn)行查詢記錄

 re = input('是否繼續(xù)查詢(yes/no):')
        if re == 'yes':
            Q_by_id()
        else:
            query_student()

在這里插入圖片描述

當(dāng)然 除了能查詢 當(dāng)然還得有可供我們選擇的菜單啦!不然我們是無法進(jìn)入程序經(jīng)行增刪改查的

VII*)寫出登錄菜單后還要寫出可供我們查詢的菜單

查詢記錄菜單

#查詢的菜單
def query_student():
    while True:
        print('查詢學(xué)生記錄')
        print('================')
        print('1、按學(xué)號查詢學(xué)生記錄')
        print('2、按姓名查詢學(xué)生記錄')
        print('3、查詢?nèi)繉W(xué)生記錄')
        print('4、返回上級菜單')
        print('=================')
        mc3 = int(input('請輸入查詢的菜單號:'))
        if mc3 == 1:
            Q_by_id()
        elif mc3 == 2:
            Q_by_name()
        elif mc3 == 3:
            Q_all()
        else:
            break

在這里插入圖片描述

注明:不光要寫出代碼 還要寫出可供選擇的菜單哦~

VII*)編寫刪除學(xué)生記錄程序

刪除記錄的菜單

#刪除的菜單
def delete1_student():
    print('============================')
    print('1、刪除學(xué)生所有信息')
    print('2、回到初始界面')
    print('============================')
    mc4 = int(input('Input menu number:'))
    if mc4 == 1:
        delete_student()
    elif mc4 == 3:
        login()

刪除學(xué)生姓名為雷云騰的信息

首先要知道他的學(xué)號,然后還有姓名

在這里插入圖片描述

接下來就是我們最難的環(huán)節(jié) 也是我們的重頭戲 修改指定的學(xué)生記錄

還是需要知道他的學(xué)號,姓名

def update_student():
        cursor = main()
        cur= int(input('請輸入想要修改學(xué)生的學(xué)號:'))
        cursor.execute('select * from stu where id = %s', (cur))
        if cursor.fetchall() == []:
            print('未查找到學(xué)號是{}的學(xué)生'.format(cur))
            mc3 = input('是否重新查詢?(yes/no)')
            if mc3 != 'no':
                update_student()
            else:
                login()
        else:
            print('==============')
            print('1、修改姓名')
            print('2、修改性別')
            print('3、修改年齡')
            print('4、修改班級')
            print('5、修改專業(yè)')
            print('6、修改學(xué)院')
            print('7、返回上級菜單')
            print('==============')
            mc2 = int(input('請輸入菜單號:'))
            if mc2 == 1:
                name = input('請輸入修改后的名字:')
                a = cursor.execute('update stu set name = %s where id = %s', (name, cur))
                if a == 1:
                    conn.commit()
                    print('修改成功!')
                else:
                    print('修改失?。?)
            elif mc2 == 2:
                gender1 = input('請輸入修改后的性別:')
                a = cursor.execute('update stu set genden = %s where id = %s', (gender1, cur))
                if a > 1:
                    conn.commit()
                    print('修改成功!')
                else:
                    print('修改失?。?)
            elif mc2 == 3:
                age1 = int(input('請輸入修改后的年齡:'))
                a = cursor.execute('update stu set age = %s where id = %s', (age1, cur))
                if a > 1:
                    conn.commit()
                    print('修改成功!')
                else:
                    print('修改失敗!')
            elif mc2 == 4:
                class1 = input('請輸入修改后的班級:')
                a = cursor.execute('update stu set class = %s where id = %s', (class1, cur))
                if a > 1:
                    conn.commit()
                    print('修改成功!')
                else:
                    print('修改失敗!')
            elif mc2 == 5:
                major1 = input('請輸入修改后的專業(yè):')
                a = cursor.execute('update stu set major = %s where id = %s', (major1, cur))
                if a > 1:
                    conn.commit()
                    print('修改成功!')
                else:
                    print('修改失??!')
            elif mc2 == 6:
                college1 = input('請輸入修改后的學(xué)院:')
                a = cursor.execute('update stu set college = %s where id = %s', (college1, cur))
                if a > 1:
                    conn.commit()
                    print('修改成功!')
                else:
                    print('修改失??!')
            else:
                pass#占一個空位符

當(dāng)我還沒有關(guān)閉數(shù)據(jù)表時還未更新,這時候我們需要關(guān)閉所更新的數(shù)據(jù)表并且重新打開

在這里插入圖片描述

這時候我們關(guān)閉數(shù)據(jù)表他就會對我們所更改的數(shù)據(jù)進(jìn)行更新

在這里插入圖片描述

在這里插入圖片描述

當(dāng)然除了更改姓名還可以更改學(xué)號 性別學(xué)院等等…

五、 All源碼(注明)

這個就不告訴大家了 給大家講了那么多知識,相信多看看多實(shí)訓(xùn)一定都能打出來甚至做的更好的。

六、博客總結(jié)

1.為什么會寫代碼

現(xiàn)在代碼不僅會增加自己學(xué)識和思維 隨著學(xué)識的增加 也會影響到其他事物中去,當(dāng)然,在博客中經(jīng)常會遇到一些生活、學(xué)習(xí)上的看似棘手的問題,那時我總是在舉步維艱時強(qiáng)迫自己認(rèn)為能找到出路。久而久之,自己也產(chǎn)生了這樣一種思維模式,認(rèn)為事情總是可以找到答案的。每次寫出一個博客和文章得到同行和老師的稱贊我都會興奮不已 為我下一次更好的博客內(nèi)容做鋪墊。

2.特定思維

在這個過程中,我又感覺到寫代碼也與之前解決問題的模式相似,每一次完成一個完整的東西,都形成了一種特定思維模式的一小部分,也許這就是寫代碼的樂趣。

3.思維靈感

當(dāng)我每次困惑一個問題很久很久不能解決的時候 我會感到很壓抑,這時候我會試著出去呼吸一下新鮮空氣 伸個懶腰 把思緒放空。你就會發(fā)現(xiàn)身上頓時輕松了很多?;貋碓俳鉀Q這個困惑的時候發(fā)現(xiàn)特別容易。有時候靈感就是你壓抑很久突然放松之后來的,那一瞬間。

4.腦+手

培養(yǎng)自己編程思維,培養(yǎng)自己編程樂趣。代碼不是憑空想象出來的,是一行一行的敲出來的,運(yùn)行成功沒有捷徑 只有靠自己的腦+手。

以上就是Python通過pymysql調(diào)用MySQL進(jìn)行增刪改移查的詳細(xì)內(nèi)容,更多關(guān)于Python pymysql增刪改移查的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python入門教程之if語句的用法

    Python入門教程之if語句的用法

    這篇文章主要介紹了Python入門教程之if語句的用法,是Python入門的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python?Pangu自動美化中文排版工具使用探索

    python?Pangu自動美化中文排版工具使用探索

    這篇文章主要為大家介紹了python?Pangu自動美化中文排版工具使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python爬蟲之Selenium設(shè)置元素等待的方法

    Python爬蟲之Selenium設(shè)置元素等待的方法

    這篇文章主要介紹了Python爬蟲之Selenium設(shè)置元素等待的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python+DeOldify實(shí)現(xiàn)老照片上色功能

    Python+DeOldify實(shí)現(xiàn)老照片上色功能

    DeOldify是一種技術(shù),以彩色和恢復(fù)舊的黑白圖像,甚至電影片段。它是由一個叫Jason?Antic的人開發(fā)和更新的。本文將利用DeOldify實(shí)現(xiàn)老照片上色功能,感興趣的可以了解一下
    2022-06-06
  • python類型強(qiáng)制轉(zhuǎn)換long to int的代碼

    python類型強(qiáng)制轉(zhuǎn)換long to int的代碼

    python的int型最大值和系統(tǒng)有關(guān),32位和64位系統(tǒng)結(jié)果是不同的,分別為2的31次方減1和2的63次方減1,可以通過sys.maxint查看此值
    2013-02-02
  • Python 實(shí)現(xiàn)Excel XLS和XLSX格式相互轉(zhuǎn)換問題

    Python 實(shí)現(xiàn)Excel XLS和XLSX格式相互轉(zhuǎn)換問題

    本文介紹如何使用Python庫Spire.XLS for Python實(shí)現(xiàn)Excel文件的XLS和XLSX格式轉(zhuǎn)換,提供了詳細(xì)的安裝指南和轉(zhuǎn)換步驟,幫助用戶在不同版本的Excel文件格式之間靈活轉(zhuǎn)換,同時支持將Excel文件轉(zhuǎn)換為PDF、圖片、HTML等格式
    2024-10-10
  • Anaconda 查看、創(chuàng)建、管理和使用python環(huán)境的方法

    Anaconda 查看、創(chuàng)建、管理和使用python環(huán)境的方法

    這篇文章主要介紹了Anaconda 查看、創(chuàng)建、管理和使用python環(huán)境的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python中計時程序運(yùn)行時間的幾種常用方法

    Python中計時程序運(yùn)行時間的幾種常用方法

    這篇文章主要介紹了Python中計時程序運(yùn)行時間的幾種常用方法,分別是一般方法、基于上下文管理器和基于裝飾器,每種方法都有其適用場景和優(yōu)缺點(diǎn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • python處理圓角圖片、圓形圖片的例子

    python處理圓角圖片、圓形圖片的例子

    最近因?yàn)楣ぷ餍枰枰幚韴D片,一種是頭像的方形圖片處理成圓行的,一種是方形圖片的4角變得橢圓點(diǎn)
    2014-04-04
  • python中的常用運(yùn)算符和優(yōu)先級

    python中的常用運(yùn)算符和優(yōu)先級

    這篇文章主要介紹了python中的常用運(yùn)算符和優(yōu)先級,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論

双桥区| 沂水县| 潼关县| 广西| 莲花县| 富顺县| 万山特区| 海盐县| 民乐县| 确山县| 额敏县| 武隆县| 郑州市| 黑龙江省| 莱芜市| 罗甸县| 临澧县| 庄河市| 克拉玛依市| 邢台县| 清镇市| 长丰县| 科技| 福建省| 民乐县| 儋州市| 乌兰察布市| 札达县| 海淀区| 玉环县| 南安市| 高尔夫| 元朗区| 安福县| 双江| 特克斯县| 抚远县| 齐齐哈尔市| 石狮市| 冕宁县| 牡丹江市|