Enne esmase võtme ja võõrvõti erinevuse õppimist õppime:
Mis on võtmed?
Klahvid on atribuut, mis aitab teil tuvastada relatsiooni (tabeli) rida. Need võimaldavad teil leida seose kahe tabeli vahel. Klahvid aitavad teil tabeli ühe või mitme veeru kombinatsiooni abil tabeli rea ainulaadselt tuvastada. Andmebaasivõtmest on abi ka tabelist ainulaadse kirje või rea leidmisel.
Mis on andmebaasisuhe?
Andmebaasisuhe on ühendused ühe või mitme tabeli vahel, mis on loodud liitumislausete abil. Seda kasutatakse andmebaasist andmete tõhusaks hankimiseks. Suhteid on peamiselt kolme tüüpi: 1) üks-ühele, 2) üks-paljudele, 3) paljud-paljudele.
Mis on esmane võti?
Esmane võtmepiirang on veerg või veergude rühm, mis identifitseerib relatiivse andmebaasi haldussüsteemi tabeli iga rea kordumatult. See ei saa olla duplikaat, mis tähendab, et sama väärtus ei tohiks tabelis ilmuda rohkem kui üks kord.
Tabelil võib olla rohkem kui üks esmane võti. Esmase võtme saab määratleda veeru või tabeli tasemel. Kui loote liitvõtme, peaks see olema määratletud tabeli tasemel.
Mis on võti?
Võõrvõti on veerg, mis loob seose kahe tabeli vahel. Võõrklahvi eesmärk on säilitada andmete terviklikkus ja võimaldada navigeerimist üksuse kahe erineva eksemplari vahel. See toimib ristviitena kahe tabeli vahel, kuna see viitab teise tabeli primaarvõtmele. Iga andmebaasi suhet peaks toetama võõras võti.
PÕHISED VAHED:
- Esmane võtmepiirang on veerg, mis identifitseerib relatsiooniandmebaasi haldussüsteemi tabeli iga rea kordumatult, samas kui võti on veerg, mis loob seose kahe tabeli vahel.
- Esmane võti ei aktsepteeri kunagi nullväärtusi, samas kui võti võib vastu võtta mitu nullväärtust.
- Tabelis võib olla ainult üks esmane võti, samas kui tabelis võib olla mitu võõrast võtit.
- Primaarvõtme väärtust ei saa vanemitabelist eemaldada, samas kui võõrvõti väärtust saab alamtabelist eemaldada.
- Ühelgi kahel real ei saa esmase võtme jaoks olla ühesuguseid väärtusi, teisest küljest võib võõras võti sisaldada duplikaatväärtusi.
- Väärtuste lisamine tabeli veergu ei ole piiratud, samal ajal kui sisestate mis tahes väärtused võõrvõtme tabelisse, veenduge, et väärtus oleks esmases võtmes veerus.
Miks kasutada esmast võtit?
Siin on primaarvõtme kasutamise miinused / eelised:
- Esmase võtme peamine eesmärk on identifitseerida iga andmebaasitabeli kirje.
- Esmast võtit saate kasutada siis, kui te ei luba kellelgi nullväärtusi sisestada.
- Kui kustutate või värskendate kirjeid, tehakse teie määratud toiming andmete terviklikkuse tagamiseks.
- Tehke piirangutoiming vanematabeli kustutamise või värskendamise tagasilükkamiseks.
- Andmed on korraldatud rühmitatud indeksite järjestuses alati, kui korraldate DBMS-i tabelit füüsiliselt.
Miks kasutada võti?
Siin on välismaise võtme kasutamise olulised põhjused:
- Võõrvõtmed aitavad teil üksusi migreerida, kasutades vanemtabeli esmast võtit.
- Võõrvõti võimaldab teil linkida kahte või enamat tabelit.
- See muudab teie andmebaasi andmed järjepidevaks.
- Võõrvõtit saab kasutada veeru või veerukombinatsiooni sobitamiseks vanemtabeli põhivõtmega.
- SQL-i võõrvõti piirangut kasutatakse selleks, et veenduda, et andmevanemate viideterviklus vastaks lapsetabeli väärtustele.
Näide primaarvõtmest
Süntaks:
Allpool on primaarvõtme süntaks:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Siin,
- Table_Name on selle tabeli nimi, mille peate looma.
- Column_Name on peamise võtmega veeru nimi.
Näide:
StudID | Rull nr | Eesnimi | Perekonnanimi | E-post |
---|---|---|---|---|
1 | 11 | Tom | Hind | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | 12 | Nick | Wright | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | 13 | Dana | Natan | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Ülaltoodud näites oleme loonud õpilastabeli, kus on veerud nagu StudID, Rullinumber, Eesnimi, Perekonnanimi ja E-post. StudID valitakse peamiseks võtmeks, kuna see võimaldab tabeli teisi ridu ainulaadselt tuvastada.
Välisvõtme näide
Süntaks:
Allpool on välisvõtme süntaks:
CREATE TABLE