{"id":1945,"date":"2025-10-27T06:34:02","date_gmt":"2025-10-27T06:34:02","guid":{"rendered":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/?page_id=1945"},"modified":"2025-10-30T12:03:19","modified_gmt":"2025-10-30T12:03:19","slug":"database-keys","status":"publish","type":"page","link":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/","title":{"rendered":"Database keys"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#1_Primary_Key_esmane_voti\" >1. Primary Key (esmane v\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#2_Foreign_Key_voorvoti\" >2. Foreign Key (v\u00f5\u00f5rv\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#3_Unique_Key_unikaalne_voti\" >3. Unique Key (unikaalne v\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#4_Simple_Key_lihtvoti\" >4. Simple Key (lihtv\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#5_Composite_Key_koosseisev_voti\" >5. Composite Key (koosseisev v\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#6_Compound_Key_kompoundvoti\" >6. Compound Key (kompoundv\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#7_Superkey_ulevoti\" >7. Superkey (\u00fclev\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#8_Candidate_Key_kandidaatvoti\" >8. Candidate Key (kandidaatv\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#9_Alternate_Key_alternatiivvoti\" >9. Alternate Key (alternatiivv\u00f5ti)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#Lopus_Kasutatud_allikad\" >L\u00f5pus: Kasutatud allikad<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Primary_Key_esmane_voti\"><\/span>1. <strong>Primary Key (esmane v\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Primary key on veerg, mis identifitseerib iga kirje tabelis. See ei tohi korduda ja ei saa olla t\u00fchi.<\/p>\n\n\n\n<p>Primary key on andmebaasi struktuuri p\u00f5hielement, kuna see tagab, et iga kirje on unikaalne. See on ka alus seoste loomisel teiste tabelitega.<\/p>\n\n\n\n<p><strong>N\u00e4ide tabelist <code>Student<\/code>:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/57DAC891-54A3-4958-A722-12C0531BCB79.png\" alt=\"\" class=\"wp-image-1960\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>StudentID<\/code> on primary key (PK).<\/li>\n\n\n\n<li>Iga rida on unikaalne.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Foreign_Key_voorvoti\"><\/span>2. <strong>Foreign Key (v\u00f5\u00f5rv\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Foreign key n\u00e4itab seost teise tabeliga. N\u00e4itab, milline kirje kuulub teise tabeli kirjele.<\/p>\n\n\n\n<p>Foreign key v\u00f5imaldab andmebaasil s\u00e4ilitada andmete terviklikkust, n\u00e4iteks et mitte lisada kursuse registreeringut olemasoleva \u00f5pilase ilma.<\/p>\n\n\n\n<p><strong>N\u00e4ide tabelist <code>Enrollment<\/code> (\u00f5pingud):<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/651A1D53-CC97-41DD-9BA4-A5D827EFAB57.png\" alt=\"\" class=\"wp-image-1962\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Klient_id viitab <code>Kliendid(Klient_id)<\/code>-le.<\/li>\n\n\n\n<li>See on v\u00f5\u00f5rv\u00f5ti (FK).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Unique_Key_unikaalne_voti\"><\/span>3. <strong>Unique Key (unikaalne v\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Unique key tagab, et veeru v\u00e4\u00e4rtused ei kordu, aga v\u00f5ib olla rohkem kui \u00fcks tabelis. M\u00f5nikord v\u00f5ib olla t\u00fchi.<\/p>\n\n\n\n<p>Unique key aitab v\u00e4ltida andmete dubleerimist ja toetab andmete terviklikkust. Erinevalt primary key\u2019st v\u00f5ib tabelis olla mitu unique key\u2019d.<\/p>\n\n\n\n<p><strong>N\u00e4ide tabelist <code>Employee<\/code> (t\u00f6\u00f6taja):<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/9E7CECEF-B7ED-44B2-A5FD-573D960E84A6.png\" alt=\"\" class=\"wp-image-1963\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Id on unique key (UK).<\/li>\n\n\n\n<li>Ei tohi olla sama kaks korda.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Simple_Key_lihtvoti\"><\/span>4. <strong>Simple Key (lihtv\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Lihtv\u00f5ti koosneb ainult \u00fchest veerust.<\/p>\n\n\n\n<p>Lihtv\u00f5ti on k\u00f5ige lihtsam v\u00f5tmet\u00fc\u00fcp ja seda kasutatakse k\u00f5ige sagedamini v\u00e4ikestes tabelites, kus \u00fche veeruga saab kindlaks teha unikaalsuse.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/DB909041-C846-4F12-8FC9-398A6969C1FC.png\" alt=\"\" class=\"wp-image-1964\"\/><\/figure>\n\n\n\n<p><strong>N\u00e4ide:<\/strong><br>raamatud_id on lihtv\u00f5ti, sest see on ainult \u00fcks veerg.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Composite_Key_koosseisev_voti\"><\/span>5. <strong>Composite Key (koosseisev v\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Koosseisev v\u00f5ti on mitu veergu koos, mis unikaalselt identifitseerivad kirje.<\/p>\n\n\n\n<p>Seda kasutatakse olukordades, kus \u00fcks veerg ei suuda tagada unikaalsust. K\u00f5ik veerud v\u00f5tmes peavad koos moodustama unikaalse identifikaatori.<\/p>\n\n\n\n<p><strong>N\u00e4ide tabelist<code> hinded<\/code>:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/82CB201C-A331-4816-9D29-1A20488B0D61.png\" alt=\"\" class=\"wp-image-1965\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_Compound_Key_kompoundvoti\"><\/span>6. <strong>Compound Key (kompoundv\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Sarnane composite key-ga \u2013 koosneb mitmest veerust. M\u00f5nikord kasutatakse m\u00f5lemat terminit samas t\u00e4henduses.<\/p>\n\n\n\n<p>Kompoundv\u00f5ti aitab hallata keerukamaid seoseid, n\u00e4iteks registreeringuid, kus kirjet m\u00e4\u00e4ravad mitu veergu korraga.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/563A9457-DBB3-4ECB-BDB1-57B1F8E7FCC3.png\" alt=\"\" class=\"wp-image-1966\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_Superkey_ulevoti\"><\/span>7. <strong>Superkey (\u00fclev\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Superkey on mis tahes veergude kombinatsioon, mis identifitseerib iga kirje unikaalselt.<\/p>\n\n\n\n<p><strong>N\u00e4ide tabelist <code>tootajad<\/code>:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/B139E0AA-73E4-4C62-BBDC-1F301D5DE473.png\" alt=\"\" class=\"wp-image-1967\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>(tootaja_id, isikukood)<\/code> on superkey.<\/li>\n\n\n\n<li>Primary key on alati superkey, aga superkey ei pea olema primary key.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"8_Candidate_Key_kandidaatvoti\"><\/span>8. <strong>Candidate Key (kandidaatv\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Candidate key on superkey, mis v\u00f5iks olla primary key.<\/p>\n\n\n\n<p>Tabelis v\u00f5ib olla mitu kandidaadiv\u00f5tit. Primary key valitakse neist, \u00fclej\u00e4\u00e4nud j\u00e4\u00e4vad alternatiivv\u00f5tmeteks.<\/p>\n\n\n\n<p><strong>N\u00e4ide tabelist klindid2:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/4D61F3AE-17AC-4950-98D7-8CCBE0BBAC97.png\" alt=\"\" class=\"wp-image-1968\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcks neist saab primary key-ks.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"9_Alternate_Key_alternatiivvoti\"><\/span>9. <strong>Alternate Key (alternatiivv\u00f5ti)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Lihtsalt \u00f6eldes:<\/strong><br>Alternate key on candidate key, mis <strong>ei valitud primary key-ks<\/strong>, aga on ikka unikaalne.<\/p>\n\n\n\n<p>Alternatiivv\u00f5tmed on kasulikud, kui soovite s\u00e4ilitada t\u00e4iendavaid unikaalseid identifikaatoreid, mida saab kasutada otsinguks v\u00f5i seoste loomiseks.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/A959AF87-C320-434D-92B6-32E6ECD2D152.png\" alt=\"\" class=\"wp-image-1969\"\/><\/figure>\n\n\n\n<p><strong>N\u00e4ide:<\/strong><br>Kui <code>klient_ID<\/code> on primary key, siis isikukod on alternate key.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Lopus_Kasutatud_allikad\"><\/span>L\u00f5pus: Kasutatud allikad<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.w3schools.com\/sql\/sql_ref_keywords.asp\">W3Schools: SQL Keys<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.google.com\/url?sa=t&amp;source=web&amp;rct=j&amp;opi=89978449&amp;url=https:\/\/digikogu.taltech.ee\/et\/Download\/b25ad59a-c03d-4963-973b-0cfd6590625a\/SQLlausetegattamisehlbustamiseksmeldudtek.pdf&amp;ved=2ahUKEwjirtju7cuQAxUPCRAIHS1ELOUQFnoECBUQAQ&amp;usg=AOvVaw2NaSPthP0yaqyrHLRmHzFK\">\u00d5pik: \u201eAndmebaasid ja SQL\u201c, P. Poost<\/a><\/li>\n\n\n\n<li>Moodle kursuse materjalid<\/li>\n\n\n\n<li><a href=\"https:\/\/ikbal-arslan.medium.com\/database-keys-and-keys-for-data-warehouse-96855a5fbaa7\" data-type=\"link\" data-id=\"https:\/\/ikbal-arslan.medium.com\/database-keys-and-keys-for-data-warehouse-96855a5fbaa7\">Database Keys and Keys for Data Warehouse<\/a><\/li>\n<\/ul>\n\n\n\n<p>K\u00f5ik kood :<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">-- <span class=\"hljs-number\">1.<\/span> peamine v\u00f5ti\ncreate table opilased (\n    opilase_id int primary key,   -- peamine v\u00f5ti\n    eesnimi varchar(<span class=\"hljs-number\">50<\/span>),\n    klass varchar(<span class=\"hljs-number\">10<\/span>)\n);\n\n\n-- <span class=\"hljs-number\">2.<\/span> v\u00e4lisv\u00f5ti  \n-- v\u00e4lisv\u00f5ti \u00fchendab \u00fche tabeli teise tabeli peamise v\u00f5tmega  \n\ncreate table kliendid (\n    klient_id int primary key,\n    nimi varchar(<span class=\"hljs-number\">50<\/span>)\n);\n\ncreate table tellimused (\n    tellimus_id int primary key,\n    klient_id int,                -- viide tabelile kliendid\n    kuupaev date,\n    foreign key (klient_id) references kliendid(klient_id)\n);\n\n\n-- <span class=\"hljs-number\">3.<\/span> unikaalne v\u00f5ti  \n-- v\u00e4\u00e4rtus selles veerus ei saa korduda  \n-- tabelis v\u00f5ib olla mitu sellist v\u00f5tit  \n\ncreate table kasutajad (\n    id int primary key,\n    kasutajanimi varchar(<span class=\"hljs-number\">50<\/span>),\n    e_post varchar(<span class=\"hljs-number\">100<\/span>) unique    -- unikaalne e-post\n);\n\n\n-- <span class=\"hljs-number\">4.<\/span> lihtne v\u00f5ti  \n-- lihtne v\u00f5ti on \u00fche veeru peamine v\u00f5ti  \n\ncreate table raamatud (\n    raamat_id int primary key,\n    pealkiri varchar(<span class=\"hljs-number\">100<\/span>)\n);\n\n\n-- <span class=\"hljs-number\">5.<\/span> koostatud v\u00f5ti  \n-- koostatud v\u00f5ti luuakse mitmest veerust  \n-- koos moodustavad nad ainulaadse rea  \n\ncreate table hinded (\n    opilase_id int,\n    aine varchar(<span class=\"hljs-number\">50<\/span>),\n    hinne int,\n    primary key (opilase_id, aine)  -- koostatud v\u00f5ti\n);\n\n\n-- <span class=\"hljs-number\">6.<\/span> \u00fchendatud v\u00f5ti  \n-- v\u00f5ti, mis \u00fchendab veerud erinevatest tabelitest  \n-- et saada ainulaadne kombinatsioon  \n\ncreate table kasutajad2 (\n    kasutaja_id int primary key,\n    nimi varchar(<span class=\"hljs-number\">50<\/span>)\n);\n\ncreate table raamatud2 (\n    raamat_id int primary key,\n    pealkiri varchar(<span class=\"hljs-number\">100<\/span>)\n);\n\ncreate table laenud (\n    laen_id int primary key,\n    raamat_id int,\n    kasutaja_id int,\n    foreign key (raamat_id) references raamatud2(raamat_id),\n    foreign key (kasutaja_id) references kasutajad2(kasutaja_id),\n    unique (raamat_id, kasutaja_id)  -- ainulaadne paar raamat-kasutaja\n);\n\n\n-- <span class=\"hljs-number\">7.<\/span> superv\u00f5ti  \n-- iga veergude kombinatsioon, mis teeb rea ainulaadseks  \n-- v\u00f5ib sisaldada liigseid veerge  \n\ncreate table tootajad (\n    tootaja_id int,\n    nimi varchar(<span class=\"hljs-number\">50<\/span>),\n    isikukood varchar(<span class=\"hljs-number\">20<\/span>),\n    primary key (tootaja_id),\n    unique (tootaja_id, isikukood)  -- superv\u00f5ti n\u00e4ide\n);\n\n\n-- <span class=\"hljs-number\">8.<\/span> kandidaadi v\u00f5ti  \n-- v\u00f5imalikud peamise v\u00f5tme variandid  \n-- \u00fcks valitakse peamiseks  \n\ncreate table kliendid2 (\n    klient_id int primary key,     -- valitud peamiseks v\u00f5tmeks\n    isikukood varchar(<span class=\"hljs-number\">20<\/span>) unique,  -- teine v\u00f5imalik v\u00f5ti\n    e_post varchar(<span class=\"hljs-number\">100<\/span>) unique     -- veel \u00fcks variant\n);\n\n\n-- <span class=\"hljs-number\">9.<\/span> alternatiivne v\u00f5ti  \n-- see on kandidaat, mida ei valitud peamiseks v\u00f5tmeks  \n\ncreate table kliendid3 (\n    klient_id int primary key,     -- peamine v\u00f5ti\n    isikukood varchar(<span class=\"hljs-number\">20<\/span>) unique,  -- alternatiivne v\u00f5ti\n    e_post varchar(<span class=\"hljs-number\">100<\/span>)\n);\n\n\n\n\n-- Tabel: opilased\ninsert into opilased (opilase_id, eesnimi, klass) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Jaan'<\/span>, <span class=\"hljs-string\">'10A'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'Mari'<\/span>, <span class=\"hljs-string\">'10B'<\/span>),\n(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">'Liis'<\/span>, <span class=\"hljs-string\">'11A'<\/span>),\n(<span class=\"hljs-number\">4<\/span>, <span class=\"hljs-string\">'T\u00f5nis'<\/span>, <span class=\"hljs-string\">'11B'<\/span>);\n\n-- Tabel: kliendid\ninsert into kliendid (klient_id, nimi) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Mati Mees'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'Kati Kask'<\/span>),\n(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">'Jaan J\u00f5gi'<\/span>);\n\n-- Tabel: tellimused\ninsert into tellimused (tellimus_id, klient_id, kuupaev) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'2025-10-01'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'2025-10-15'<\/span>),\n(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">'2025-10-20'<\/span>);\n\n-- Tabel: kasutajad\ninsert into kasutajad (id, kasutajanimi, e_post) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'jaan123'<\/span>, <span class=\"hljs-string\">'jaan123@mail.com'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'kati_kask'<\/span>, <span class=\"hljs-string\">'kati.kask@mail.com'<\/span>),\n(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">'mari_m'<\/span>, <span class=\"hljs-string\">'mari_m@mail.com'<\/span>);\n\n-- Tabel: raamatud\ninsert into raamatud (raamat_id, pealkiri) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Tarkuse puu'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'R\u00e4nduri tee'<\/span>),\n(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">'Eesti ajalugu'<\/span>);\n\n-- Tabel: hinded\ninsert into hinded (opilase_id, aine, hinne) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Matemaatika'<\/span>, <span class=\"hljs-number\">5<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'F\u00fc\u00fcsika'<\/span>, <span class=\"hljs-number\">4<\/span>),\n(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">'Ajalugu'<\/span>, <span class=\"hljs-number\">5<\/span>),\n(<span class=\"hljs-number\">4<\/span>, <span class=\"hljs-string\">'Keemia'<\/span>, <span class=\"hljs-number\">3<\/span>);\n\n-- Tabel: kasutajad2\ninsert into kasutajad2 (kasutaja_id, nimi) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Aleksei'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'Eve'<\/span>);\n\n-- Tabel: raamatud2\ninsert into raamatud2 (raamat_id, pealkiri) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Tundmatu saar'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'J\u00f5uluvana saladus'<\/span>);\n\n-- Tabel: laenud\ninsert into laenud (laen_id, raamat_id, kasutaja_id) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">1<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">2<\/span>);\n\n-- Tabel: tootajad\ninsert into tootajad (tootaja_id, nimi, isikukood) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Anna Aadamson'<\/span>, <span class=\"hljs-string\">'12345678901'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'Pekka P\u00e4rtel'<\/span>, <span class=\"hljs-string\">'23456789012'<\/span>);\n\n-- Tabel: kliendid2\ninsert into kliendid2 (klient_id, isikukood, e_post) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'34567890123'<\/span>, <span class=\"hljs-string\">'mattimees@mail.com'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'45678901234'<\/span>, <span class=\"hljs-string\">'katikask@mail.com'<\/span>);\n\n-- Tabel: kliendid3\ninsert into kliendid3 (klient_id, isikukood, e_post) values\n(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'56789012345'<\/span>, <span class=\"hljs-string\">'jaanjoogi@mail.com'<\/span>),\n(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">'67890123456'<\/span>, <span class=\"hljs-string\">'katiekask@mail.com'<\/span>);\n\n\n-- <span class=\"hljs-number\">1.<\/span> Tabel: opilased\nselect * <span class=\"hljs-keyword\">from<\/span> opilased;\n\n-- <span class=\"hljs-number\">2.<\/span> Tabel: kliendid\nselect * <span class=\"hljs-keyword\">from<\/span> kliendid;\n\n-- <span class=\"hljs-number\">3.<\/span> Tabel: tellimused\nselect * <span class=\"hljs-keyword\">from<\/span> tellimused;\n\n-- <span class=\"hljs-number\">4.<\/span> Tabel: kasutajad\nselect * <span class=\"hljs-keyword\">from<\/span> kasutajad;\n\n-- <span class=\"hljs-number\">5.<\/span> Tabel: raamatud\nselect * <span class=\"hljs-keyword\">from<\/span> raamatud;\n\n-- <span class=\"hljs-number\">6.<\/span> Tabel: hinded\nselect * <span class=\"hljs-keyword\">from<\/span> hinded;\n\n-- <span class=\"hljs-number\">7.<\/span> Tabel: kasutajad2\nselect * <span class=\"hljs-keyword\">from<\/span> kasutajad2;\n\n-- <span class=\"hljs-number\">8.<\/span> Tabel: raamatud2\nselect * <span class=\"hljs-keyword\">from<\/span> raamatud2;\n\n-- <span class=\"hljs-number\">9.<\/span> Tabel: laenud\nselect * <span class=\"hljs-keyword\">from<\/span> laenud;\n\n-- <span class=\"hljs-number\">10.<\/span> Tabel: tootajad\nselect * <span class=\"hljs-keyword\">from<\/span> tootajad;\n\n-- <span class=\"hljs-number\">11.<\/span> Tabel: kliendid2\nselect * <span class=\"hljs-keyword\">from<\/span> kliendid2;\n\n-- <span class=\"hljs-number\">12.<\/span> Tabel: kliendid3\nselect * <span class=\"hljs-keyword\">from<\/span> kliendid3;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"<p>1. Primary Key (esmane v\u00f5ti) Lihtsalt \u00f6eldes:Primary key on veerg, mis identifitseerib iga kirje tabelis. See ei tohi korduda ja ei saa olla t\u00fchi. Primary key on andmebaasi struktuuri p\u00f5hielement, kuna see tagab, et iga kirje on unikaalne. See on ka alus seoste loomisel teiste tabelitega. N\u00e4ide tabelist Student: 2. Foreign Key (v\u00f5\u00f5rv\u00f5ti) Lihtsalt \u00f6eldes:Foreign [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-1945","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Database keys - Anastasiia Radasheva Portfolio ENG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Database keys - Anastasiia Radasheva Portfolio ENG\" \/>\n<meta property=\"og:description\" content=\"1. Primary Key (esmane v\u00f5ti) Lihtsalt \u00f6eldes:Primary key on veerg, mis identifitseerib iga kirje tabelis. See ei tohi korduda ja ei saa olla t\u00fchi. Primary key on andmebaasi struktuuri p\u00f5hielement, kuna see tagab, et iga kirje on unikaalne. See on ka alus seoste loomisel teiste tabelitega. N\u00e4ide tabelist Student: 2. Foreign Key (v\u00f5\u00f5rv\u00f5ti) Lihtsalt \u00f6eldes:Foreign [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/\" \/>\n<meta property=\"og:site_name\" content=\"Anastasiia Radasheva Portfolio ENG\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-30T12:03:19+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/\",\"url\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/\",\"name\":\"Database keys - Anastasiia Radasheva Portfolio ENG\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/57DAC891-54A3-4958-A722-12C0531BCB79.png\",\"datePublished\":\"2025-10-27T06:34:02+00:00\",\"dateModified\":\"2025-10-30T12:03:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/#primaryimage\",\"url\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/57DAC891-54A3-4958-A722-12C0531BCB79.png\",\"contentUrl\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/57DAC891-54A3-4958-A722-12C0531BCB79.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/database-keys\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Database keys\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/#website\",\"url\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/\",\"name\":\"Anastasiia Radasheva Portfolio ENG\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/anastasiiaradasheva24.thkit.ee\\\/wp\\\/eng\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Database keys - Anastasiia Radasheva Portfolio ENG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/","og_locale":"en_US","og_type":"article","og_title":"Database keys - Anastasiia Radasheva Portfolio ENG","og_description":"1. Primary Key (esmane v\u00f5ti) Lihtsalt \u00f6eldes:Primary key on veerg, mis identifitseerib iga kirje tabelis. See ei tohi korduda ja ei saa olla t\u00fchi. Primary key on andmebaasi struktuuri p\u00f5hielement, kuna see tagab, et iga kirje on unikaalne. See on ka alus seoste loomisel teiste tabelitega. N\u00e4ide tabelist Student: 2. Foreign Key (v\u00f5\u00f5rv\u00f5ti) Lihtsalt \u00f6eldes:Foreign [&hellip;]","og_url":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/","og_site_name":"Anastasiia Radasheva Portfolio ENG","article_modified_time":"2025-10-30T12:03:19+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/","url":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/","name":"Database keys - Anastasiia Radasheva Portfolio ENG","isPartOf":{"@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/#website"},"primaryImageOfPage":{"@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#primaryimage"},"image":{"@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#primaryimage"},"thumbnailUrl":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/57DAC891-54A3-4958-A722-12C0531BCB79.png","datePublished":"2025-10-27T06:34:02+00:00","dateModified":"2025-10-30T12:03:19+00:00","breadcrumb":{"@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#primaryimage","url":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/57DAC891-54A3-4958-A722-12C0531BCB79.png","contentUrl":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/wp-content\/uploads\/2025\/10\/57DAC891-54A3-4958-A722-12C0531BCB79.png"},{"@type":"BreadcrumbList","@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/database-keys\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/"},{"@type":"ListItem","position":2,"name":"Database keys"}]},{"@type":"WebSite","@id":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/#website","url":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/","name":"Anastasiia Radasheva Portfolio ENG","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/pages\/1945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/comments?post=1945"}],"version-history":[{"count":2,"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/pages\/1945\/revisions"}],"predecessor-version":[{"id":1976,"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/pages\/1945\/revisions\/1976"}],"wp:attachment":[{"href":"https:\/\/anastasiiaradasheva24.thkit.ee\/wp\/eng\/wp-json\/wp\/v2\/media?parent=1945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}