{"id":259,"date":"2021-03-05T17:46:45","date_gmt":"2021-03-05T17:46:45","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/?post_type=chapter&#038;p=259"},"modified":"2021-05-07T09:17:05","modified_gmt":"2021-05-07T09:17:05","slug":"olemasoleva-tabeli-muutmine","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/chapter\/olemasoleva-tabeli-muutmine\/","title":{"raw":"Olemasoleva tabeli muutmine","rendered":"Olemasoleva tabeli muutmine"},"content":{"raw":"<p style=\"text-align: justify\">Oleme varasemalt \u00f5ppinud tabelite kustutamist juhuks, kui tabeli loomisel midagi valesti l\u00e4heb. N\u00fc\u00fcd, kui me oleme \u00f5ppinud ka tabelitesse andmete lisamist, ei soovi me edaspidi tabeleid lihtsalt \u00e4ra kustutada iga kord, kui m\u00f5ni viga ilmneb, sest tabeli kustutamisel kustutatakse \u00e4ra ka k\u00f5ik selles olevad andmed.<\/p>\r\n<p style=\"text-align: justify\">Mida siis aga ikkagi teha, kui me m\u00e4rkame, et n\u00e4iteks m\u00f5ni veerg on valesti nimetatud v\u00f5i kui m\u00f5ni kitsendus on j\u00e4\u00e4nud lisamata? Sellisteks juhtudeks on olemas SQL laused erinevateks nimemuutusteks ning struktuurimuutusteks. K\u00e4esolevas peat\u00fckis vaatamegi, millised on erinevad v\u00f5imalikud nime- ja struktuurimuutused. Samuti tutvume tabelis olevate kirjete muutmise ning kustutamisega.<\/p>\r\n\r\n<h2>Nimemuutused<\/h2>\r\n<p style=\"text-align: justify\">Nimemuutuste alla k\u00e4ib tabeli nime muutmine, veeru nime muutmine ning ka kitsenduse nime muutmine.<\/p>\r\n<p style=\"text-align: justify\">\u00dcldjuhul on nimemuutusi vaja sisse viia juhul, kui tabeli, veeru v\u00f5i kitsenduse nimi ei t\u00f5lgenda meie andmeid korrektselt. N\u00e4iteks v\u00f5ib ette tulla olukord, kus me oleme loonud tabeli <em>Toode<\/em> ning lisanud sinna\u00a0veeru\u00a0nimega <em>pikkus.\u00a0<\/em>Veeru nimi\u00a0<em>pikkus<\/em> ei anna meile aga mingit informatsiooni selle kohta, mis \u00fchikutes toote pikkus on, samas veeru nimi <em>pikkus_cm<\/em> kirjeldaks kohe, et pikkus on sentimeetrites. Nimemuutuste jaoks v\u00f5ib esineda vajadus ka siis, kui me oleme tabelit luues m\u00f5ne nime lihtsalt valesti kirjutanud. Lisaks eelnevale v\u00f5b ilmneda vajadus nimemuutusteks erinevate \u00fchiskonna muutuste t\u00f5ttu. N\u00e4iteks kui Eesti taasiseseisvus, muudeti haldus\u00fcksuste nimesid<span class=\"aCOpRe\"> \u2013<\/span> n\u00f5ukogude ajal kasutuses oleva m\u00f5iste rajoon asemele tuli maakond ning k\u00fclan\u00f5ukogu nimetati \u00fcmber vallaks.<\/p>\r\n<p style=\"text-align: justify\">Selleks, et muuta tabeli nime, on olemas SQL lause kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli vana nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME TO<\/strong><\/span> &lt;tabeli uus nimi&gt;;<\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Kui me soovime aga muuta veeru nime, tuleb kasutada SQL lauset kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME COLUMN<\/strong> <\/span>&lt;vana veeru nimi&gt; <span style=\"color: #ff6600\"><strong>TO<\/strong><\/span> &lt;uus veeru nimi&gt;;<\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Sarnaselt veeru nime muutmisele on kitsenduse nime muutmiseks SQL lause kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME CONSTRAINT<\/strong><\/span> &lt;vana kitsenduse nimi&gt; <span style=\"color: #ff6600\"><strong>TO<\/strong><\/span> &lt;uus kitsenduse nimi&gt;;<\/code><\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\n[h5p id=\"34\"]\r\n<h2>Struktuurimuutused<\/h2>\r\n<p style=\"text-align: justify\">Struktuurimuutuste alla k\u00e4ib nii veergude kui ka tabeli kitsenduste lisamine ning kustutamine. Samuti saab struktuurimuutuste abil muuta olemasoleva veeru definitsiooni.<\/p>\r\n<p style=\"text-align: justify\">Selleks, et lisada tabelisse uus veerg, saab kasutada SQL lauset kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li>\r\n<pre><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>ADD COLUMN<\/strong><\/span> &lt;veeru definitsioon&gt;<span style=\"color: #ff0000\">;<\/span><\/pre>\r\n<strong><code><\/code><\/strong><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Tabeli kitsenduse lisamiseks saame me kasutada SQL lauset kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #000080\"><strong><span style=\"color: #ff6600\">ADD CONSTRAINT<\/span><\/strong><\/span> &lt;kitsenduse nimi&gt; &lt;tabeli kitsendus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Seda, millised n\u00e4gid v\u00e4lja veeru definitsioonid on v\u00f5imalik meelde tuletada <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/chapter\/tabeli-loomine\/\">siit<\/a> peat\u00fckist ning seda, millised n\u00e4gid v\u00e4lja erinevad tabeli kitsendused, saab meenutada <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/chapter\/vaikevaartused-ja-kitsendused\/\">siit<\/a>.<\/p>\r\n<p style=\"text-align: justify\">Selleks, et veergu v\u00f5i tabeli kitsendust kustutada, on SQL laused kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #993300\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <\/code><strong><code><span style=\"color: #000080\"><span style=\"color: #ff6600\">DROP<\/span> <span style=\"color: #ff6600\">COLUMN<\/span><\/span><\/code><\/strong><code> &lt;kustutatava veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li><code><span style=\"color: #993300\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #000080\"><strong><span style=\"color: #ff6600\">DROP<\/span> <span style=\"color: #ff6600\">CONSTRAINT<\/span><\/strong><\/span> &lt;kustutatava kitsenduse nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Nagu varasemalt mainitud sai, siis lisaks veergude ning tabeli kitsenduste lisamisele ja kustutamisele on v\u00f5imalik muuta ka tabelis olemasoleva veeru definitsiooni. Vajadus selleks ilmneb n\u00e4iteks siis, kui tunnuse andmet\u00fc\u00fcp on algselt valesti m\u00e4\u00e4ratud. Veeru definitsiooni muutmiseks tuleks l\u00e4bida j\u00e4rgnevad sammud:<\/p>\r\n\r\n<ol style=\"text-align: justify\">\r\n \t<li>Lisame olemasolevasse tabelisse uue veeru, mille loomisel kasutame uut muudatustega veeru definitsiooni. Selleks kasutame SQL lauset:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>ADD COLUMN<\/strong><\/span> &lt;uue veeru definitsioon&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li>Kanname sinna vanas veerus olnud andmed \u00fcle lausega:\r\n<code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>SET<\/strong><\/span> &lt;uue veeru nimi&gt; = &lt;vana veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li>Kustutame vana veeru j\u00e4rgneva SQL lausega:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>DROP COLUMN<\/strong><\/span> &lt;vana veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li>Muudame uue veeru nime vanaks tagasi lausega:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong> <\/span>&lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME COLUMN<\/strong><\/span> &lt;uue veeru nimi&gt; <\/code><strong><code><span style=\"color: #000080\"><span style=\"color: #ff6600\">TO<\/span><\/span><\/code><\/strong><code> &lt;vana veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ol>\r\n<p style=\"text-align: justify\">N\u00e4iteks kui me soovime tabelis <em>Inimesed<\/em> muuta veeru\u00a0<em>eesnimi<\/em> andmet\u00fc\u00fcbiks <em>varchar (70), <\/em>peame me k\u00e4ivitama j\u00e4rgnevaid SQL lauseid:<\/p>\r\n\r\n<ol style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> Inimesed <\/code><strong><code><span style=\"color: #ff6600\">ADD COLUMN<\/span><\/code><\/strong><code> eesnimi_muudatustega <\/code><strong><code><span style=\"color: #000080\">VARCHAR (70)<\/span><\/code><\/strong><code><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li><code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> Inimesed <span style=\"color: #ff6600\"><strong>SET<\/strong><\/span> eesnimi_muudatustega = eesnimi<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> Inimesed <span style=\"color: #ff6600\"><strong>DROP COLUMN<\/strong><\/span> eesnimi<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> Inimesed <span style=\"color: #ff6600\"><strong>RENAME COLUMN<\/strong><\/span> eesnimi_muudatustega <span style=\"color: #ff6600\"><strong>TO<\/strong><\/span> eesnimi<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ol>\r\n<p style=\"text-align: justify\"><span style=\"color: #ff0000\">NB! <span style=\"color: #333333\">Kui sa muutsid enne \u00fclesande k\u00e4igus tabeli <em>Inimesed<\/em> nime, pead sa neid SQL lauseid jooksutades kasutama tabeli nime <em>Inimesed<\/em> asemel <em>Inimesed2 <\/em>v\u00f5i siis muutma tabeli nimeks j\u00e4lle <em>Inimesed<\/em>, et sa saaksid ka edasisi n\u00e4iteid l\u00e4bida.\u00a0<\/span><\/span><\/p>\r\n<p style=\"text-align: justify\">K\u00f5ik need neli sammu on olulised sellep\u00e4rast, et veeru definitsiooni muutmisel ei l\u00e4heks meil tabelis olemasolevad andmed kaotsi. Kui me lihtsalt kustutaks vana veeru ning lisaks uue definitsiooniga veeru asemele, kustuks k\u00f5ik vanas veerus olnud andmed. Teise sammu k\u00e4igus me aga kopeerime andmed vanast veerust ka uude veergu, mist\u00f5ttu vana veeru kustutamisel andmed siiski s\u00e4ilivad uues veerus.<\/p>\r\n<p style=\"text-align: justify\">Et veeru andmet\u00fc\u00fcpi saab muuta vaid veeru definitsiooni muutes ning veeru definitsiooni muutmine on struktuurimuutustest k\u00f5ige keerulisem, tulekski alati tabelit luues tunnuste andmet\u00fc\u00fcbid hoolikalt l\u00e4bi m\u00f5elda ja paika panna, et hiljem seda keerulist protsessi v\u00e4ltida.<\/p>\r\n<p style=\"text-align: justify\">Lisaks veeru definitsiooni muutmisele on v\u00f5imalik l\u00e4bi viia ka j\u00e4rgnevaid muudatusi:<\/p>\r\n\r\n<ol style=\"text-align: justify\">\r\n \t<li>Veerule algv\u00e4\u00e4rtuse andmine:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #970000\"><strong>ALTER<\/strong> <strong>COLUMN<\/strong> <\/span>&lt;veeru nimi&gt; <\/code><strong><code><span style=\"color: #ff6600\">SET<\/span><span style=\"color: #000080\"> DEFAULT<\/span><\/code><\/strong><code> &lt;vaikev\u00e4\u00e4rtus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li>Veerule antud algv\u00e4\u00e4rtuse kustutamine:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE <\/strong><\/span>&lt;tabeli nimi&gt; <span style=\"color: #970000\"><strong>ALTER COLUMN <\/strong><\/span>&lt;veeru nimi&gt; <span style=\"color: #000080\"><strong><span style=\"color: #ff6600\">DROP<\/span> DEFAULT<\/strong><\/span><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li>Veerule kitsenduse <em>NOT NULL<\/em> lisamine:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt;<span style=\"color: #970000\"> <strong>ALTER COLUMN<\/strong><\/span> &lt;veeru nimi&gt; <\/code><strong><code><span style=\"color: #ff6600\">SET<\/span><\/code><\/strong><code> <span style=\"color: #000080\"><strong>NOT NULL<\/strong><\/span><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n \t<li>Veerult kitsenduse <em>NOT NULL<\/em> kustutamine:\r\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #970000\"><strong>ALTER COLUMN<\/strong><\/span> &lt;veeru nimi&gt; <\/code><strong><code><span style=\"color: #ff6600\">DROP<\/span><\/code><\/strong><code> <span style=\"color: #000080\"><strong>NOT NULL<\/strong><\/span><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ol>\r\n&nbsp;\r\n\r\n[h5p id=\"35\"]\r\n<h2>Kirjete muutmine ning kustutamine<\/h2>\r\n<p style=\"text-align: justify\">Vahel on vajadus ka vigaseid andmeid muuta v\u00f5i kustutada. Selleks, et muuta olemasolevat kirjet, tuleb kasutada SQL lauset kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>SET<\/strong><\/span> &lt;veeru nimi&gt; = &lt;uus v\u00e4\u00e4rtus&gt; <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> &lt;tingimus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Selle SQL lause abil otsitakse \u00fcles k\u00f5ik kirjed, mis rahuldavad etteantud tingimust ning seej\u00e4rel muudetakse leitud kirjete nimetatud veeru v\u00e4\u00e4rtused etteantud uueks v\u00e4\u00e4rtuseks. N\u00e4iteks kui me soovime muuta tabelis <em>Inimesed <\/em>k\u00f5igi isikute eesnimeks 'Liisa', kelle eesnimeks on hetkel 'Mari', peaksime jooksutama SQL lauset:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> Inimesed <\/code><strong><code><span style=\"color: #ff6600\">SET<\/span><\/code><\/strong><code> eesnimi = 'Liisa' <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> eesnimi = 'Mari'<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Kui me aga soovime kustutada tabelis olevat kirjet, saame kasutada SQL lauset kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>DELETE FROM<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> &lt;tingimus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Ehk kui me n\u00fc\u00fcd sooviks hoopis kustutada k\u00f5ik isikud tabelist <em>Inimesed<\/em>, kelle eesnimeks on 'Liisa', peaksime me jooksutama SQL lauset:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>DELETE FROM<\/strong><\/span> Inimesed <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> eesnimi = 'Liisa'<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Kui aga peaks ilmnema vajadus kustutada tabelist k\u00f5ik andmed, saab kasutada SQL lauset kujul:<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li><code><span style=\"color: #970000\"><strong>DELETE DROM<\/strong><\/span> &lt;tabeli nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">See SQL lause kustutab tabelist k\u00f5ik kirjed, sest me j\u00e4tsime tingimuse t\u00e4psustamata. Kuna me tingimust ei t\u00e4psustanud, kuuluvad k\u00f5ik tabelis olevad kirjed tulemi hulka ehk need k\u00f5ik kustutatakse.<\/p>","rendered":"<p style=\"text-align: justify\">Oleme varasemalt \u00f5ppinud tabelite kustutamist juhuks, kui tabeli loomisel midagi valesti l\u00e4heb. N\u00fc\u00fcd, kui me oleme \u00f5ppinud ka tabelitesse andmete lisamist, ei soovi me edaspidi tabeleid lihtsalt \u00e4ra kustutada iga kord, kui m\u00f5ni viga ilmneb, sest tabeli kustutamisel kustutatakse \u00e4ra ka k\u00f5ik selles olevad andmed.<\/p>\n<p style=\"text-align: justify\">Mida siis aga ikkagi teha, kui me m\u00e4rkame, et n\u00e4iteks m\u00f5ni veerg on valesti nimetatud v\u00f5i kui m\u00f5ni kitsendus on j\u00e4\u00e4nud lisamata? Sellisteks juhtudeks on olemas SQL laused erinevateks nimemuutusteks ning struktuurimuutusteks. K\u00e4esolevas peat\u00fckis vaatamegi, millised on erinevad v\u00f5imalikud nime- ja struktuurimuutused. Samuti tutvume tabelis olevate kirjete muutmise ning kustutamisega.<\/p>\n<h2>Nimemuutused<\/h2>\n<p style=\"text-align: justify\">Nimemuutuste alla k\u00e4ib tabeli nime muutmine, veeru nime muutmine ning ka kitsenduse nime muutmine.<\/p>\n<p style=\"text-align: justify\">\u00dcldjuhul on nimemuutusi vaja sisse viia juhul, kui tabeli, veeru v\u00f5i kitsenduse nimi ei t\u00f5lgenda meie andmeid korrektselt. N\u00e4iteks v\u00f5ib ette tulla olukord, kus me oleme loonud tabeli <em>Toode<\/em> ning lisanud sinna\u00a0veeru\u00a0nimega <em>pikkus.\u00a0<\/em>Veeru nimi\u00a0<em>pikkus<\/em> ei anna meile aga mingit informatsiooni selle kohta, mis \u00fchikutes toote pikkus on, samas veeru nimi <em>pikkus_cm<\/em> kirjeldaks kohe, et pikkus on sentimeetrites. Nimemuutuste jaoks v\u00f5ib esineda vajadus ka siis, kui me oleme tabelit luues m\u00f5ne nime lihtsalt valesti kirjutanud. Lisaks eelnevale v\u00f5b ilmneda vajadus nimemuutusteks erinevate \u00fchiskonna muutuste t\u00f5ttu. N\u00e4iteks kui Eesti taasiseseisvus, muudeti haldus\u00fcksuste nimesid<span class=\"aCOpRe\"> \u2013<\/span> n\u00f5ukogude ajal kasutuses oleva m\u00f5iste rajoon asemele tuli maakond ning k\u00fclan\u00f5ukogu nimetati \u00fcmber vallaks.<\/p>\n<p style=\"text-align: justify\">Selleks, et muuta tabeli nime, on olemas SQL lause kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli vana nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME TO<\/strong><\/span> &lt;tabeli uus nimi&gt;;<\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Kui me soovime aga muuta veeru nime, tuleb kasutada SQL lauset kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME COLUMN<\/strong> <\/span>&lt;vana veeru nimi&gt; <span style=\"color: #ff6600\"><strong>TO<\/strong><\/span> &lt;uus veeru nimi&gt;;<\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Sarnaselt veeru nime muutmisele on kitsenduse nime muutmiseks SQL lause kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME CONSTRAINT<\/strong><\/span> &lt;vana kitsenduse nimi&gt; <span style=\"color: #ff6600\"><strong>TO<\/strong><\/span> &lt;uus kitsenduse nimi&gt;;<\/code><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div id=\"h5p-34\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-34\" class=\"h5p-iframe\" data-content-id=\"34\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"AT_8_kontrollk\u00fcsimus_1\"><\/iframe><\/div>\n<\/div>\n<h2>Struktuurimuutused<\/h2>\n<p style=\"text-align: justify\">Struktuurimuutuste alla k\u00e4ib nii veergude kui ka tabeli kitsenduste lisamine ning kustutamine. Samuti saab struktuurimuutuste abil muuta olemasoleva veeru definitsiooni.<\/p>\n<p style=\"text-align: justify\">Selleks, et lisada tabelisse uus veerg, saab kasutada SQL lauset kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li>\n<pre><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>ADD COLUMN<\/strong><\/span> &lt;veeru definitsioon&gt;<span style=\"color: #ff0000\">;<\/span><\/pre>\n<p><strong><code><\/code><\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Tabeli kitsenduse lisamiseks saame me kasutada SQL lauset kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #000080\"><strong><span style=\"color: #ff6600\">ADD CONSTRAINT<\/span><\/strong><\/span> &lt;kitsenduse nimi&gt; &lt;tabeli kitsendus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Seda, millised n\u00e4gid v\u00e4lja veeru definitsioonid on v\u00f5imalik meelde tuletada <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/chapter\/tabeli-loomine\/\">siit<\/a> peat\u00fckist ning seda, millised n\u00e4gid v\u00e4lja erinevad tabeli kitsendused, saab meenutada <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/chapter\/vaikevaartused-ja-kitsendused\/\">siit<\/a>.<\/p>\n<p style=\"text-align: justify\">Selleks, et veergu v\u00f5i tabeli kitsendust kustutada, on SQL laused kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #993300\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <\/code><strong><code><span style=\"color: #000080\"><span style=\"color: #ff6600\">DROP<\/span> <span style=\"color: #ff6600\">COLUMN<\/span><\/span><\/code><\/strong><code> &lt;kustutatava veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li><code><span style=\"color: #993300\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #000080\"><strong><span style=\"color: #ff6600\">DROP<\/span> <span style=\"color: #ff6600\">CONSTRAINT<\/span><\/strong><\/span> &lt;kustutatava kitsenduse nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Nagu varasemalt mainitud sai, siis lisaks veergude ning tabeli kitsenduste lisamisele ja kustutamisele on v\u00f5imalik muuta ka tabelis olemasoleva veeru definitsiooni. Vajadus selleks ilmneb n\u00e4iteks siis, kui tunnuse andmet\u00fc\u00fcp on algselt valesti m\u00e4\u00e4ratud. Veeru definitsiooni muutmiseks tuleks l\u00e4bida j\u00e4rgnevad sammud:<\/p>\n<ol style=\"text-align: justify\">\n<li>Lisame olemasolevasse tabelisse uue veeru, mille loomisel kasutame uut muudatustega veeru definitsiooni. Selleks kasutame SQL lauset:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>ADD COLUMN<\/strong><\/span> &lt;uue veeru definitsioon&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li>Kanname sinna vanas veerus olnud andmed \u00fcle lausega:<br \/>\n<code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>SET<\/strong><\/span> &lt;uue veeru nimi&gt; = &lt;vana veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li>Kustutame vana veeru j\u00e4rgneva SQL lausega:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>DROP COLUMN<\/strong><\/span> &lt;vana veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li>Muudame uue veeru nime vanaks tagasi lausega:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong> <\/span>&lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>RENAME COLUMN<\/strong><\/span> &lt;uue veeru nimi&gt; <\/code><strong><code><span style=\"color: #000080\"><span style=\"color: #ff6600\">TO<\/span><\/span><\/code><\/strong><code> &lt;vana veeru nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ol>\n<p style=\"text-align: justify\">N\u00e4iteks kui me soovime tabelis <em>Inimesed<\/em> muuta veeru\u00a0<em>eesnimi<\/em> andmet\u00fc\u00fcbiks <em>varchar (70), <\/em>peame me k\u00e4ivitama j\u00e4rgnevaid SQL lauseid:<\/p>\n<ol style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> Inimesed <\/code><strong><code><span style=\"color: #ff6600\">ADD COLUMN<\/span><\/code><\/strong><code> eesnimi_muudatustega <\/code><strong><code><span style=\"color: #000080\">VARCHAR (70)<\/span><\/code><\/strong><code><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li><code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> Inimesed <span style=\"color: #ff6600\"><strong>SET<\/strong><\/span> eesnimi_muudatustega = eesnimi<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> Inimesed <span style=\"color: #ff6600\"><strong>DROP COLUMN<\/strong><\/span> eesnimi<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li><code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> Inimesed <span style=\"color: #ff6600\"><strong>RENAME COLUMN<\/strong><\/span> eesnimi_muudatustega <span style=\"color: #ff6600\"><strong>TO<\/strong><\/span> eesnimi<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ol>\n<p style=\"text-align: justify\"><span style=\"color: #ff0000\">NB! <span style=\"color: #333333\">Kui sa muutsid enne \u00fclesande k\u00e4igus tabeli <em>Inimesed<\/em> nime, pead sa neid SQL lauseid jooksutades kasutama tabeli nime <em>Inimesed<\/em> asemel <em>Inimesed2 <\/em>v\u00f5i siis muutma tabeli nimeks j\u00e4lle <em>Inimesed<\/em>, et sa saaksid ka edasisi n\u00e4iteid l\u00e4bida.\u00a0<\/span><\/span><\/p>\n<p style=\"text-align: justify\">K\u00f5ik need neli sammu on olulised sellep\u00e4rast, et veeru definitsiooni muutmisel ei l\u00e4heks meil tabelis olemasolevad andmed kaotsi. Kui me lihtsalt kustutaks vana veeru ning lisaks uue definitsiooniga veeru asemele, kustuks k\u00f5ik vanas veerus olnud andmed. Teise sammu k\u00e4igus me aga kopeerime andmed vanast veerust ka uude veergu, mist\u00f5ttu vana veeru kustutamisel andmed siiski s\u00e4ilivad uues veerus.<\/p>\n<p style=\"text-align: justify\">Et veeru andmet\u00fc\u00fcpi saab muuta vaid veeru definitsiooni muutes ning veeru definitsiooni muutmine on struktuurimuutustest k\u00f5ige keerulisem, tulekski alati tabelit luues tunnuste andmet\u00fc\u00fcbid hoolikalt l\u00e4bi m\u00f5elda ja paika panna, et hiljem seda keerulist protsessi v\u00e4ltida.<\/p>\n<p style=\"text-align: justify\">Lisaks veeru definitsiooni muutmisele on v\u00f5imalik l\u00e4bi viia ka j\u00e4rgnevaid muudatusi:<\/p>\n<ol style=\"text-align: justify\">\n<li>Veerule algv\u00e4\u00e4rtuse andmine:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #970000\"><strong>ALTER<\/strong> <strong>COLUMN<\/strong> <\/span>&lt;veeru nimi&gt; <\/code><strong><code><span style=\"color: #ff6600\">SET<\/span><span style=\"color: #000080\"> DEFAULT<\/span><\/code><\/strong><code> &lt;vaikev\u00e4\u00e4rtus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li>Veerule antud algv\u00e4\u00e4rtuse kustutamine:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE <\/strong><\/span>&lt;tabeli nimi&gt; <span style=\"color: #970000\"><strong>ALTER COLUMN <\/strong><\/span>&lt;veeru nimi&gt; <span style=\"color: #000080\"><strong><span style=\"color: #ff6600\">DROP<\/span> DEFAULT<\/strong><\/span><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li>Veerule kitsenduse <em>NOT NULL<\/em> lisamine:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt;<span style=\"color: #970000\"> <strong>ALTER COLUMN<\/strong><\/span> &lt;veeru nimi&gt; <\/code><strong><code><span style=\"color: #ff6600\">SET<\/span><\/code><\/strong><code> <span style=\"color: #000080\"><strong>NOT NULL<\/strong><\/span><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<li>Veerult kitsenduse <em>NOT NULL<\/em> kustutamine:<br \/>\n<code><span style=\"color: #970000\"><strong>ALTER TABLE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #970000\"><strong>ALTER COLUMN<\/strong><\/span> &lt;veeru nimi&gt; <\/code><strong><code><span style=\"color: #ff6600\">DROP<\/span><\/code><\/strong><code> <span style=\"color: #000080\"><strong>NOT NULL<\/strong><\/span><span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<div id=\"h5p-35\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-35\" class=\"h5p-iframe\" data-content-id=\"35\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"AT_8_kontroll\u00fclesanne_2\"><\/iframe><\/div>\n<\/div>\n<h2>Kirjete muutmine ning kustutamine<\/h2>\n<p style=\"text-align: justify\">Vahel on vajadus ka vigaseid andmeid muuta v\u00f5i kustutada. Selleks, et muuta olemasolevat kirjet, tuleb kasutada SQL lauset kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #ff6600\"><strong>SET<\/strong><\/span> &lt;veeru nimi&gt; = &lt;uus v\u00e4\u00e4rtus&gt; <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> &lt;tingimus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Selle SQL lause abil otsitakse \u00fcles k\u00f5ik kirjed, mis rahuldavad etteantud tingimust ning seej\u00e4rel muudetakse leitud kirjete nimetatud veeru v\u00e4\u00e4rtused etteantud uueks v\u00e4\u00e4rtuseks. N\u00e4iteks kui me soovime muuta tabelis <em>Inimesed <\/em>k\u00f5igi isikute eesnimeks &#8216;Liisa&#8217;, kelle eesnimeks on hetkel &#8216;Mari&#8217;, peaksime jooksutama SQL lauset:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>UPDATE<\/strong><\/span> Inimesed <\/code><strong><code><span style=\"color: #ff6600\">SET<\/span><\/code><\/strong><code> eesnimi = 'Liisa' <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> eesnimi = 'Mari'<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Kui me aga soovime kustutada tabelis olevat kirjet, saame kasutada SQL lauset kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>DELETE FROM<\/strong><\/span> &lt;tabeli nimi&gt; <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> &lt;tingimus&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Ehk kui me n\u00fc\u00fcd sooviks hoopis kustutada k\u00f5ik isikud tabelist <em>Inimesed<\/em>, kelle eesnimeks on &#8216;Liisa&#8217;, peaksime me jooksutama SQL lauset:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>DELETE FROM<\/strong><\/span> Inimesed <span style=\"color: #000080\"><strong>WHERE<\/strong><\/span> eesnimi = 'Liisa'<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">Kui aga peaks ilmnema vajadus kustutada tabelist k\u00f5ik andmed, saab kasutada SQL lauset kujul:<\/p>\n<ul style=\"text-align: justify\">\n<li><code><span style=\"color: #970000\"><strong>DELETE DROM<\/strong><\/span> &lt;tabeli nimi&gt;<span style=\"color: #ff0000\">;<\/span><\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify\">See SQL lause kustutab tabelist k\u00f5ik kirjed, sest me j\u00e4tsime tingimuse t\u00e4psustamata. Kuna me tingimust ei t\u00e4psustanud, kuuluvad k\u00f5ik tabelis olevad kirjed tulemi hulka ehk need k\u00f5ik kustutatakse.<\/p>\n","protected":false},"author":33,"menu_order":8,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-259","chapter","type-chapter","status-publish","hentry"],"part":3,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/users\/33"}],"version-history":[{"count":23,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/259\/revisions"}],"predecessor-version":[{"id":1379,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/259\/revisions\/1379"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/259\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/media?parent=259"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapter-type?post=259"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/contributor?post=259"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/license?post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}