Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

Vnos in posodabljanje podatkov s SQL

  Spoznali bomo, kako lahko preko SQL stavkov v MySql bazo dodajamo nove podatke oz. kako podatke posodobimo.
 
 
1
 
 

Za namen lekcije bomo uporabili spletno aplikacijo phpMyAdmin.

Osnove uporabe te aplikacije si lahko ogledate v lekciji:



Priporočam pa tudi ogled lekcije, ki prikazuje pridobivanje podatkov iz podatkovne baze:

 

 
 
2
 
 

Kot primer za posodabljanje bomo uporabili tabelo uporabniki, kot je bila opisana v lekciji



IdPriimekImeNaslovMesto
1 Novak Janez Pot za krajem 10 Kranj
2 Rozman Peter Celovška c. 23 Ljubljana
3 Benedik Maja Zaloška c. 20 Maribor
 
 
3
 
 

Podatke dodajamo v bazo z SQL stavkom INSERT.

Sintaksa za uporabo je naslednja:
INSERT into ime_tabele VALUES('vrednost1', 'vrednost2', ...)

Za naš primer bi bil SQL stavek naslednji:
INSERT into uporabniki VALUES(0,'Borut','Lisjak','Ljubljanska 17','Kranj')

Kot vrednost za prvo polje Id smo vpisali vrednost 0. Ker ima v bazi to polje nastavljeno lastnost Autoincrement, bo dejansko vrednost v bazi številka, ki je za eno večja od trenutne največje vrednost polja Id v bazi.


 
 
4
 
 

Obstaja tudi razširjena sintaksa v obliki:

INSERT into ime_tabele(polje1,polje2, ...) VALUES('vrednost1', 'vrednost2', ...)

Za naše primer bi torej bilo:
INSERT into uporabniki(Id,Priimek,Ime,Naslov,Mesto) VALUES(0,'Borut','Lisjak','Ljubljanska 17','Kranj')

Priporočam, da se navadite uporabljati daljšo sintakso, saj bo v primeru sprememb v strukturi baze SQL stavek še vedno deloval pravilno, kar pa za prvi primer ne velja.

 
 
5
 
 

Za posodabljanje podatkov pa uporabljamo ukaz UPDATE.

Sintaksa za uporabo je naslednja:
UPDATE ime_tabele SET polje1='vrednost1', polje2='vrednost2', ... WHERE pogoj

Ker želimo običajno spreminjati točno določen zapis, moramo dodati pogoj WHERE, kjer določimo, kateri zapis želimo spreminjati.

Za naš primer bi bil tako SQL stavek za posodabljanje:
UPDATE uporabniki set Ime='Gorazd', Priimek='Premrl' WHERE Ime='Borut' AND Priimek='Lisjak'

Pri tem ni nujno, da uporabite vsa polja, ampak samo tista, ki jih želite spremeniti.

 
 
6
 
 

Prikazana je bila najbolj osnovna uporaba ukazov INSERT in UPDATE, ki zadoščata za večino enostavnih spletnih aplikacij.

Obstajajo pa tudi bolj kompleksni primeri uporabe, kjer lahko postavljamo bolj kompleksne pogoje ter kombiniramo podatke iz več tabel, kar pa pride na vrsto v eni od prihodnjih lekcij.

Za razne nejasnosti oz. drugo pomoč pa povprašajte na forumu.

 
 
Komentiraj
 
 
 
 
 
13.9.2012, 0:42
Pri tej vaji mi ni jasno, zakaj za:
INSERT into uporabniki VALUES(0,'Borut','Lisjak','Ljubljanska 17','Kranj')

Id naraste na 5?
Saj z vidika končnega izgleda je vseeno, ali uporabim INSERT ročno ali pa preko funkcije 'Vstavi' v tabeli?

Ko sem v prejšnji vaji na http://zmaga.com/content.php?id=2480 kreiral tabelo, sam za Janeza, Petra in Majo po vrsti nastavil Id na 1, 2 in3. Torej bi moralo biti za Boruta 4...

AutoIncrement sem vklopil za Id. Tudi po tej logiki bi četrta oseba morala dobiti 4.
In ko sem prvič pisal ukaz, je Borut tudi dobil 4. Potlej sem vnos pobrisal, ponovil enak ukaz, sedaj pa ima Borut 5???




changed: skike (13.9.2012, 0:44)
 
 
 
 
13.9.2012, 1:05
Pa UPDATE ni deloval.

changed: skike (13.9.2012, 1:05)
 
 
 
 
13.9.2012, 19:24
Ja, seveda. Vsakič, ko dodaš novo vrstico, se števec poveča. Ni važno, če ti potem to vrstico izbrišeš. Na novo vstavljena vrstica bo imela id za 1 večji od zadnje vstavljene vrstice.
 
 
 
 
13.9.2012, 19:57
To pa lahko resetiraš z naslednjo komando: "ALTER TABLE x AUTO_INCREMENT y", kjer x predstavlja ime tabele (v tvojem primeru uporabniki), y pa številko na katero se števec resetira (verjetno je to št. 1).
 
 
 
 
13.9.2012, 20:44
Hvala, razumem.
UPDATE pa 'ni deloval' zato, ker sem pri vnašanju (Vstavi) v okence 'priimek' vpisal ime, v okence 'ime' pa priimek.


changed: skike (13.9.2012, 20:45)
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!