版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【任務(wù)8-1】創(chuàng)建、新增、查詢、刪除SQLite數(shù)據(jù)表【任務(wù)描述】(1)在PyCharm集成開發(fā)環(huán)境中創(chuàng)建項(xiàng)目Unit08。(2)在項(xiàng)目Unit08創(chuàng)建Python程序文件8-1.py。(3)自定義getInsertSql()函數(shù)用于返回SQL插入語句,
自定義execInsert()函數(shù)用于向數(shù)據(jù)表中插入多條記錄。(4)創(chuàng)建SQLite數(shù)據(jù)庫文件“電子商務(wù).db”【任務(wù)描述】(5)在SQLite數(shù)據(jù)庫“電子商務(wù).db”中如果“用戶表”已存在,先刪除該數(shù)據(jù)表,然后再重新創(chuàng)建數(shù)據(jù)表“用戶表”,該數(shù)據(jù)表包括用戶ID、用戶編號(hào)、用戶名稱、密碼4個(gè)字段,各字段的數(shù)據(jù)類型及長度見程序文件“8-1.py”中的代碼。(6)向數(shù)據(jù)表“用戶表”中插入5條記錄。(7)查詢用戶名為“admin”,密碼為“666”的記錄?!救蝿?wù)實(shí)施】1.創(chuàng)建PyCharm項(xiàng)目Unit08成功啟動(dòng)PyCharm后,在指定位置“D:\PycharmProject\”,創(chuàng)建PyCharm項(xiàng)目Unit08?!救蝿?wù)實(shí)施】2.創(chuàng)建Python程序文件8-1.py在PyCharm項(xiàng)目“Unit08”中,新建Python程序文件“8-1.py”,同時(shí)PyCharm主窗口顯示程序文件“8-1.py”的代碼編輯窗口,在該程序文件的代碼編輯窗口也自動(dòng)添加了模板內(nèi)容。【任務(wù)實(shí)施】3.編寫Python程序代碼在新建文件“8-1.py”的代碼編輯窗口已有模板注釋內(nèi)容下面輸入程序代碼?!救蝿?wù)實(shí)施】importsqlite3fieldName=["用戶ID","用戶編號(hào)","用戶名稱","密碼"]userData=[(1,"2020011","admin","666"),(2,"2020012","better","888"),(3,"2020013","向前","123456"),(4,"2020014","尋找","123"),(5,"2020015","向好漢","1456")]【任務(wù)實(shí)施】#SQL創(chuàng)建數(shù)據(jù)表語句,使用三個(gè)雙引號(hào),多行字符串定義可以讓程序更加清晰,規(guī)整,可讀性更好sqlCreateTable="""CreateTableifnotexists用戶表(
用戶IDint(10)primarykey,
用戶編號(hào)varchar(10),
用戶名稱varchar(30),
密碼varchar(20))defgetInsertSql():#SQL插入語句
strInsert="""insertinto用戶表(
用戶ID,用戶編號(hào),用戶名稱,密碼)values(?,?,?,?)"""returnstrInsertdefexecInsert():i=0foriteminuserData:i+=1print("插入第",i,"條記錄,數(shù)據(jù)為:",item[0],item[1],item[2],item[3])cursor.execute(getInsertSql(),(item[0],item[1],item[2],item[3]))try:#連接到SQLite數(shù)據(jù)庫
#數(shù)據(jù)庫文件是電子商務(wù).db,如果文件不存在,會(huì)自動(dòng)在當(dāng)前目錄創(chuàng)建
conn=sqlite3.connect("電子商務(wù).db")#創(chuàng)建一個(gè)游標(biāo)對(duì)象Cursorcursor=conn.cursor()cursor.execute("droptableifexists用戶表")#執(zhí)行一條SQL語句,創(chuàng)建userData表
cursor.execute(sqlCreateTable)execInsert()mit()strSelect="select*from用戶表where用戶名稱=?and密碼=?"cursor.execute(strSelect,("admin","666"))cursor.execute("select*from用戶表")rows=cursor.fetchall()print("數(shù)據(jù)表userData.db的記錄數(shù)量:",len(rows))exceptExceptionaserror:print(error)finally:#關(guān)閉游標(biāo)
cursor.close()#關(guān)閉Connectionconn.close()單擊工具欄中【保存】按鈕,保存程序文件“8-1.py”?!救蝿?wù)實(shí)施】
4.運(yùn)行Python程序在PyCharm主窗口選擇【Run】菜單,在彈出的下拉菜單中選擇【Run】菜單項(xiàng)。在彈出的【Run】對(duì)話框中選擇“8-1”選項(xiàng),程序“8-1.py”開始運(yùn)行?!救蝿?wù)實(shí)施】程序8-1.py的運(yùn)行結(jié)果如下所示。插入第1條記錄,數(shù)據(jù)為:12020011admin666插入第2條記錄,數(shù)據(jù)為:22020012better888插入第3條記錄,數(shù)據(jù)為:32020013向前123456插入第4條記錄,數(shù)據(jù)為:42020014尋找123插入第5條記錄,數(shù)據(jù)為:52020015向好漢1456數(shù)據(jù)表userData.db的記錄數(shù)量:5快樂學(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)8-2】查詢、更新、刪除用戶數(shù)據(jù)表中的數(shù)據(jù)【任務(wù)描述】(1)在項(xiàng)目Unit08創(chuàng)建Python程序文件8-2.py。(2)在程序文件8-2.py中自定義多個(gè)函數(shù):initDb()函數(shù)用于創(chuàng)建數(shù)據(jù)庫文件“電子商務(wù).db”和一個(gè)游標(biāo)對(duì)象,getSelectSql()函數(shù)用于返回SQL查詢語句,getUserInfo()函數(shù)用于獲取指定用戶名稱和密碼的記錄數(shù),getUpdateSql()函數(shù)用于返回SQL修改數(shù)據(jù)語句,getDeleteSql()函數(shù)用于返回滿足指定條件的SQL刪除記錄語句?!救蝿?wù)描述】(3)連接到SQLite數(shù)據(jù)庫“電子商務(wù).db”。(4)從數(shù)據(jù)表“用戶表”中查詢符合指定條件的記錄。(5)將數(shù)據(jù)表“用戶表”中用戶ID為“1”對(duì)應(yīng)記錄的
“密碼”修改為“666”。(6)刪除數(shù)據(jù)表“用戶表”中用戶名稱為“向前”的記錄?!救蝿?wù)實(shí)施】1.創(chuàng)建Python程序文件8-2.py在PyCharm項(xiàng)目“Unit08”中,新建Python程序文件“8-2.py”,同時(shí)PyCharm主窗口顯示程序文件“8-2.py”的代碼編輯窗口,在該程序文件的代碼編輯窗口也自動(dòng)添加了模板內(nèi)容。【任務(wù)實(shí)施】2.編寫Python程序代碼在新建文件“8-2.py”的代碼編輯窗口已有模板注釋內(nèi)容下面輸入程序代碼。importsqlite3【任務(wù)實(shí)施】definitDb():#數(shù)據(jù)庫文件是電子商務(wù).db,如果文件不存在,會(huì)自動(dòng)在當(dāng)前目錄創(chuàng)建
conn=sqlite3.connect("電子商務(wù).db")#創(chuàng)建一個(gè)游標(biāo)對(duì)象Cursorcursor=conn.cursor()returnconn,cursordefgetSelectSql(condition):#SQL查詢語句
strSelect="select*from用戶表"+conditionreturnstrSelectdefgetUserInfo(name,password):#SQL查詢語句
strSelect="select用戶名稱,密碼from用戶表\where用戶名稱=?and密碼=?"cursor.execute(strSelect,(name,password))rows=cursor.fetchall()n=len(rows)returnn【任務(wù)實(shí)施】defgetUpdateSql():#SQL修改數(shù)據(jù)語句
strUpdate="update用戶表set密碼=?where用戶ID=?"returnstrUpdatedefgetDeleteSql(condition):#SQL刪除數(shù)據(jù)語句
strDelete="deletefrom用戶表"+conditionreturnstrDelete【任務(wù)實(shí)施】
try:#連接到SQLite數(shù)據(jù)庫
conn,cursor=initDb()#初始化pymysql#查看查詢語句運(yùn)行結(jié)果
cursor.execute(getSelectSql("where用戶名稱==?"),("admin",))rows=cursor.fetchmany()print("用戶表符合條件的查詢結(jié)果記錄數(shù):",len(rows))num=getUserInfo("better","888")print("用戶表符合條件的查詢結(jié)果記錄數(shù):",num)【任務(wù)實(shí)施】
#查看修改語句運(yùn)行結(jié)果
cursor.execute(getUpdateSql(),("666",1))cursor.execute(getSelectSql(""))rows=cursor.fetchmany(3)print("用戶表的記錄數(shù):",len(rows))#查看刪除語句運(yùn)行結(jié)果
cursor.execute(getDeleteSql("where用戶名稱=?"),("向前",))cursor.execute(getSelectSql(""))rows=cursor.fetchall()print("用戶表的記錄數(shù):",len(rows))【任務(wù)實(shí)施】exceptExceptionaserror:print(error)finally:#關(guān)閉游標(biāo)
cursor.close()#關(guān)閉Connectionconn.close()單擊工具欄中【保存】按鈕,保存程序文件“8-2.py”。【任務(wù)實(shí)施】
3.運(yùn)行Python程序在PyCharm主窗口選擇【Run】菜單,在彈出的下拉菜單中選擇【Run】菜單項(xiàng)。在彈出的【Run】對(duì)話框中選擇“8-2”選項(xiàng),程序“8-2.py”開始運(yùn)行。【任務(wù)實(shí)施】程序8-2.py的運(yùn)行結(jié)果如下所示。用戶表符合條件的查詢結(jié)果記錄數(shù):1用戶表符合條件的查詢結(jié)果記錄數(shù):1用戶表的記錄數(shù):3用戶表的記錄數(shù):4快樂學(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)8-3】創(chuàng)建books數(shù)據(jù)表并顯示數(shù)據(jù)表的結(jié)構(gòu)信息【任務(wù)描述】(1)在項(xiàng)目Unit08創(chuàng)建Python程序文件8-3.py。(2)連接已存在的MySQL數(shù)據(jù)庫“eCommerce”。(3)在MySQL數(shù)據(jù)庫“eCommerce”中
創(chuàng)建數(shù)據(jù)表“books”。(4)輸出數(shù)據(jù)表“books”的結(jié)構(gòu)信息?!救蝿?wù)實(shí)施】在PyCharm項(xiàng)目Unit08中創(chuàng)建Python程序文件8-3.py。在程序文件8-3.py中編寫程序代碼,實(shí)現(xiàn)所需功能?!救蝿?wù)實(shí)施】importpymysql#打開數(shù)據(jù)庫連接conn=pymysql.connect(host="localhost",user="root",password="123456",database="eCommerce")#使用cursor()方法創(chuàng)建一個(gè)游標(biāo)對(duì)象cursorcursor=conn.cursor()#使用execute()方法執(zhí)行SQL,如果表存在則刪除cursor.execute("DropTableIfExistsbooks")#使用預(yù)處理語句創(chuàng)建表sql="""CreateTableifnotexistsbooks(
商品IDinteger(8)NotNullAuto_Increment,
商品編號(hào)Varchar(12)NotNull,
圖書名稱Varchar(50)NotNull,
價(jià)格Decimal(8,2)DefaultNull,ISBNVarchar(13)NotNull,
作者Varchar(30)Null,
出版社Varchar(12)Null,
出版日期Varchar(10)DefaultNull,
版次Int(1),PrimaryKey(商品ID))Engine=MyIsamAuto_Increment=1DefaultCharset=utf8;"""#執(zhí)行SQL語句try:cursor.execute(sql)exceptExceptionaserror:print(error)#使用execute()方法執(zhí)行SQL查詢cursor.execute("Select*frombooks")#使用fetchall()方法獲取數(shù)據(jù)表的全部記錄.data=cursor.fetchall()print("數(shù)據(jù)表中記錄數(shù):",len(data))#顯示每列的詳細(xì)信息desc=cursor.descriptionforitemindesc:print(“數(shù)據(jù)的結(jié)構(gòu)信息:",item)#獲取表頭print("數(shù)據(jù)表的字段名:",",".join([item[0]foritemindesc]))#關(guān)閉數(shù)據(jù)庫連接conn.close()程序8-3.py的運(yùn)行結(jié)果如下所示。數(shù)據(jù)表中記錄數(shù):0數(shù)據(jù)的結(jié)構(gòu)信息:('商品ID',3,None,8,8,0,False)數(shù)據(jù)的結(jié)構(gòu)信息:('商品編號(hào)',253,None,48,48,0,False)數(shù)據(jù)的結(jié)構(gòu)信息:('圖書名稱',253,None,200,200,0,False)數(shù)據(jù)的結(jié)構(gòu)信息:('價(jià)格',246,None,10,10,2,True)數(shù)據(jù)的結(jié)構(gòu)信息:('ISBN',253,None,52,52,0,False)數(shù)據(jù)的結(jié)構(gòu)信息:('作者',253,None,120,120,0,True)數(shù)據(jù)的結(jié)構(gòu)信息:('出版社',253,None,48,48,0,True)數(shù)據(jù)的結(jié)構(gòu)信息:('出版日期',253,None,40,40,0,True)數(shù)據(jù)的結(jié)構(gòu)信息:('版次',3,None,1,1,0,True)數(shù)據(jù)表的字段名:商品ID,商品編號(hào),圖書名稱,價(jià)格,ISBN,作者,出版社,出版日期,版次快樂學(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)8-4】在books數(shù)據(jù)表中批量添加多條記錄【任務(wù)描述】(1)在項(xiàng)目Unit08創(chuàng)建Python程序文件8-4.py。(2)連接已存在的MySQL數(shù)據(jù)庫“eCommerce”。(3)定義列表bookData,該列表的元素為元組,包含6個(gè)元素,每一個(gè)元素存放一本圖書的相關(guān)數(shù)據(jù),對(duì)應(yīng)數(shù)據(jù)表中一條記錄的數(shù)據(jù)。(4)在數(shù)據(jù)表“books”中插入6條記錄數(shù)據(jù)?!救蝿?wù)實(shí)施】在PyCharm項(xiàng)目Unit08中創(chuàng)建Python程序文件8-4.py。在程序文件8-4.py中編寫程序代碼,實(shí)現(xiàn)所需功能?!救蝿?wù)實(shí)施】importpymysql#打開數(shù)據(jù)庫連接conn=pymysql.connect(host="localhost",user="root",password="123456",database="eCommerce",charset="utf8")#使用cursor()方法創(chuàng)建一個(gè)游標(biāo)對(duì)象cursorcursor=conn.cursor()cursor.execute("deletefrombooks")#數(shù)據(jù)列表bookData=[("12528944","PPT設(shè)計(jì)從入門到精通",79.00,\"9787115454614","張曉景","人民郵電出版社","2019-1-1",1),("12563157","給Python點(diǎn)顏色青少年學(xué)編程",59.80,\"9787115512321","佘友軍","人民郵電出版社","2019-9-1",1),("12451724","Python從入門到項(xiàng)目實(shí)踐(全彩版)",99.80,\"9787569226614","明日科技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版翡翠手鐲授權(quán)合同范本3篇
- 中小學(xué)校長職業(yè)聘用協(xié)議示例(2024版)版B版
- 2024版勞動(dòng)合同烏魯木齊
- 個(gè)人對(duì)個(gè)人汽車租賃合同樣本2024版B版
- 西華師范大學(xué)《工程地質(zhì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版城市公交出租車服務(wù)承包管理合同3篇
- 無錫學(xué)院《水聲學(xué)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版建筑工程保險(xiǎn)條款標(biāo)準(zhǔn)協(xié)議樣本版B版
- 二零二五版合同能源服務(wù)與節(jié)能技術(shù)研發(fā)合作協(xié)議3篇
- 二零二五年酒店客房用品綠色包裝設(shè)計(jì)采購合同2篇
- 《血管活性藥物靜脈輸注護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀
- GB/T 3324-2024木家具通用技術(shù)條件
- NGS二代測序培訓(xùn)
- 《材料合成與制備技術(shù)》課程教學(xué)大綱(材料化學(xué)專業(yè))
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- 釘釘OA辦公系統(tǒng)操作流程培訓(xùn)
- 新生兒科年度護(hù)理質(zhì)控總結(jié)
- GB/T 15934-2024電器附件電線組件和互連電線組件
- 《工貿(mào)企業(yè)有限空間作業(yè)安全規(guī)定》知識(shí)培訓(xùn)
- 高層次人才座談會(huì)發(fā)言稿
- 垃圾清運(yùn)公司管理制度(人員、車輛、質(zhì)量監(jiān)督、會(huì)計(jì)管理制度)
評(píng)論
0/150
提交評(píng)論