數(shù)據(jù)庫參照完整性定義 SQL基本表的創(chuàng)建中是通過什么實現(xiàn)參照完整性規(guī)則的?
SQL基本表的創(chuàng)建中是通過什么實現(xiàn)參照完整性規(guī)則的?例如,類表中有一個學校表、一個班級表、一個學生表、一個班級表、一個學校,創(chuàng)建一個外鍵約束來限制學生表中的班級,并創(chuàng)建一個外鍵約束。例如,在創(chuàng)建之后,
SQL基本表的創(chuàng)建中是通過什么實現(xiàn)參照完整性規(guī)則的?
例如,類表中有一個學校表、一個班級表、一個學生表、一個班級表、一個學校,創(chuàng)建一個外鍵約束來限制學生表中的班級,并創(chuàng)建一個外鍵約束。例如,在創(chuàng)建之后,我在張三(1類)、李四(2類)和王武(3類)的數(shù)據(jù)創(chuàng)建之后插入以下數(shù)據(jù)。如果沒有外鍵,我就把大學刪除了,那么班級里的數(shù)據(jù)就有問題了。查詢學校的班級,有數(shù)據(jù),但查詢學校,發(fā)現(xiàn)學校不存在。如果我刪除2012級3班,王武的數(shù)據(jù)會有問題。去查,顯示王武班是3班,但班表上沒有這個記錄。這導(dǎo)致數(shù)據(jù)不完整。如果存在外鍵約束。當我刪除大學時,默認情況下,數(shù)據(jù)庫會拒絕我的操作,并提示我有外鍵數(shù)據(jù),所以我不能刪除2012級3班。默認情況下,數(shù)據(jù)庫會拒絕我的操作,并提示我有外鍵數(shù)據(jù),不能刪除。我需要將王武的班級從3班改為2班,并確保2012級3班以下沒有學生,然后才能將其刪除引用完整性是兩個關(guān)聯(lián)表之間的約束。具體來說,輔助表中每條記錄的外鍵值必須存在于主表中。因此,如果在兩個表之間建立關(guān)聯(lián)關(guān)系,則一個關(guān)系的操作將影響另一個表中的記錄。例如,如果學生號用于在學生表和選修課之間建立關(guān)聯(lián),學生表是主表,選修課是從表,那么在從表中輸入新記錄時,系統(tǒng)應(yīng)檢查主表中是否已存在新記錄的學號。如果存在,則允許輸入操作,否則拒絕輸入,這是引用完整性。引用完整性還反映在主表的刪除和修改中。例如,刪除主表中的一條記錄時,表中外鍵值與主表中主鍵值相同的所有記錄將同時被刪除,這稱為級聯(lián)刪除;修改主表中主鍵值時,表中相應(yīng)記錄的外鍵值將被刪除也會被修改,這就是所謂的級聯(lián)刪除。
什么是參照完整性?
數(shù)據(jù)庫的引用完整性是指表之間的對應(yīng)關(guān)系。通常可以通過設(shè)置兩個表之間的主鍵和外鍵關(guān)系,或者編寫兩個表的觸發(fā)器來實現(xiàn)。
對于兩個具有相應(yīng)引用完整性的表,在數(shù)據(jù)插入、更新和刪除過程中,系統(tǒng)會將修改后的表與另一個對應(yīng)表進行比較,以防止一些不正確的數(shù)據(jù)操作。