


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. 關(guān)聯(lián)表記錄的刪除操作關(guān)聯(lián)型數(shù)據(jù)表通過外鍵關(guān)系表示相互關(guān)聯(lián),比如會員等級和會員、會員和會員積分、積分日志、地區(qū)表(自關(guān)聯(lián))、文章分類和文章、商品分類和商品等,因此在系統(tǒng)中關(guān)聯(lián)型數(shù)據(jù)表是非常常見的形式,掌握好對關(guān)聯(lián)型數(shù)據(jù)表的處理至關(guān)重要。根據(jù)業(yè)務(wù)需求的不同,對于關(guān)聯(lián)型數(shù)據(jù)表的數(shù)據(jù)刪除也采用不同的策略,通常有3種方式:級聯(lián)刪除、限制刪除、置空或重置為缺省值。級聯(lián)刪除以會員和會員積分日志為例,會員積分日志通常需要選定一個會員,查看該會員的日志信息,當(dāng)該會員記錄被刪除時,積分日志就沒有查看的入口,稱之為“垃圾”數(shù)據(jù)。因此在刪除會員時,同時也把該會員的積分日志也刪除。限制刪除以會員等級和會員為例,在
2、本系統(tǒng)中,會員等級包含了根據(jù)積分自動計算會員等級的非特殊會員組,非特殊會員組與會員不是關(guān)聯(lián)關(guān)系,此處會員等級僅指代特殊會員組。當(dāng)會員等級被刪除時,可以刪除屬于該會員等級的會員嗎?顯示不能,而且是相當(dāng)危險的一種行為,會員信息的丟失,屬于網(wǎng)站的重大工作事故。如何解決會員等級的刪除呢?解決思路是:如果沒有屬于此會員等級的會員,那么刪除該會員等級對系統(tǒng)就沒有任何影響了,所以在刪除會員等級時,需要檢查會員表是否有屬于此會員等級的數(shù)據(jù),如果沒有,則允許刪除,否則限制刪除。直接提示不能刪除,顯然對用戶不是很友好,如何能提高友好性呢?做為課外題,大家可以思考一下。置空setnull/重置為缺省值setdefa
3、ult置空是刪除數(shù)據(jù)時,將關(guān)聯(lián)數(shù)據(jù)表的外鍵設(shè)置為null或者為缺省值。置空也是保留關(guān)聯(lián)數(shù)據(jù)的一種方法,通常用于外鍵可以不設(shè)置或者對于未設(shè)置的數(shù)據(jù)有相關(guān)處理,比如QQ的好友和組,好友可以分配到特定組里,未分組的好友都在“我的好友”里,當(dāng)刪除組時,并不會刪除組里的好友,好友會在“我的好友”里顯示。了解了關(guān)聯(lián)數(shù)據(jù)的刪除邏輯后,怎樣實現(xiàn)呢?方法有很多,這里介紹2種方式:通過外鍵約束和刪除關(guān)聯(lián)表的SQL語句。外鍵約束:大部分DBMS都支持外鍵約束,Mysql中只有Innodb類型的數(shù)據(jù)表才支持,創(chuàng)建表時通過建立外鍵,并設(shè)置約束方法。MySQL創(chuàng)建關(guān)聯(lián)表可以理解為是兩個表之間有個外鍵關(guān)系,但這兩個表必須滿
4、足三個條件:1 .兩個表必須是InnoDB數(shù)據(jù)引擎2 .使用在外鍵關(guān)系的域必須為索引型(Index)3 .使用在外鍵關(guān)系的域必須與數(shù)據(jù)類型相似Mysql創(chuàng)建關(guān)鍵表的示例(圖書館借書和成員):CreateTABLEIFNOTEXISTS'books'('book_id'smallint(6)NOTNULLauto_incrementCOMMENT'書籍編號','book_name'char(20)NOTNULLCOMMENT'書名','book_borrower'char(7)defaultNULLC
5、OMMENT'借閱者','book_borrower_time'datedefaultNULLCOMMENT'借閱時間,PRIMARYKEY('book_id'),INDEX(book_borrower)ENGINE=InnoDB;CreateTABLEIFNOTEXISTS'parts'('part_id'smallint(6)NOTNULLCOMMENT'成員編號','part_name'varchar(6)NOTNULLCOMMENT'成員名','
6、;part_mail'varchar(50)NOTNULLCOMMENT'郵箱','part_pass'varchar(20)NOTNULLCOMMENT'密碼',PRIMARYKEY('part_id'),FOREIGNKEY(part_name)REFERENCES00ks(book_borrower)ondeletecascadeonupdatecascade)ENGINE=InnoDB分析一下books表和parts表,選擇InnoDB為表引擎。而parts表的part_name字段為外鍵,關(guān)聯(lián)到books表的bo
7、ok_borrower字段.注意兩個字段分別是char和varchar都是字符串類型。ondeletecascade意思為當(dāng)books表有相關(guān)記錄刪除時,那parts表也會跟著刪除相關(guān)聯(lián)的記錄.理論上parts表的part_name字段也應(yīng)該要創(chuàng)建索引才對,但實驗證創(chuàng)建關(guān)聯(lián)后自動索引了.不同DBMS支持的約束不同,Mysql5.0支持cascade(級聯(lián)操作)、restrict(限制操作),不寫約束條件表示不進(jìn)行任何操作(垃圾數(shù)據(jù))。與ondelete(刪除操作)對應(yīng)的還有onupdate(當(dāng)關(guān)聯(lián)主表的關(guān)聯(lián)字段內(nèi)容更新時)的處理,請大家思考其中的業(yè)務(wù)邏輯。Sql語句刪除多表數(shù)據(jù)1、通過多條SQ
8、L語句刪除先刪除子表數(shù)據(jù),再刪除主表數(shù)據(jù),為保證數(shù)據(jù)完整性,通常啟動事務(wù)來處理,如果要支持事務(wù),也需要InnoDb的數(shù)據(jù)表類型。2、在一條SQL語句中刪除delete語法:DELETELOW_PRIORITYQUICKFROMtable_nameWHEREwhere_definitionORDERBYLIMITrowsorDELETELOW_PRIORITYQUICKtable_name.*,table_name.*FROMtable-referencesWHEREwhere_definitionorDELETELOW_PRIORITYQUICKFROMtable_name.*,table_n
9、ame.*USINGtable-referencesWHEREwhere_definition示例代碼:1 .刪除一個表中的數(shù)據(jù)deletefromdepartmentwherename='AssetManagement'2 .刪除兩個表中的數(shù)據(jù)deleteemployee,employeeSkillsfromemployee,employeeSkills,departmentwhereemployee.employeeID=employeeSki11s.employeeIDandemployee.departmentID=department.departmentID='Finance'3 .刪除兩個表中的數(shù)據(jù),用using語法deletefromemployee,employeeSkillsusingemployee,employeeSkil
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新質(zhì)生產(chǎn)力領(lǐng)航
- 2025家庭裝修合同協(xié)議書
- 2025短期圍擋建設(shè)合同
- 上海食品模擬考核b類試卷及答案
- 山東省初中統(tǒng)考語文試卷及答案
- 《電容式傳感器》課件
- 化纖織造工藝參數(shù)優(yōu)化考核試卷
- 油炸食品制造的工藝流程考核試卷
- 浙江國企招聘2025中移鐵通嘉興海鹽分公司招聘10人筆試參考題庫附帶答案詳解
- 2025年中國鋁鍛壓五金制品市場調(diào)查研究報告
- 新疆烏魯木齊市米東區(qū)2024-2025學(xué)年九年級上學(xué)期期中數(shù)學(xué)試卷(含答案)
- 課件:《科學(xué)社會主義概論(第二版)》第一章
- 國際關(guān)系理論知到智慧樹章節(jié)測試課后答案2024年秋外交學(xué)院
- 第一章整式的乘法單元(教學(xué)設(shè)計)-七年級數(shù)學(xué)下冊同步備課系列(湘教版2024)
- 中考物理復(fù)習(xí)歐姆定律復(fù)習(xí)講解學(xué)習(xí)
- 上海市2024年中考英語試題及答案
- TMT行業(yè)市場發(fā)展現(xiàn)狀及趨勢與投資分析研究報告
- 2024年黑龍江哈爾濱市中考英語真題卷及答案解析
- 【MOOC】道路交通安全-河海大學(xué) 中國大學(xué)慕課MOOC答案
- 人教版二年級上冊英語期中考試卷【3套】
- 2025年湖北省武漢市高考數(shù)學(xué)模擬試卷附答案解析
評論
0/150
提交評論