Vloženie dát do tabuľky

Keďže už máme vytvorenú databázu, ktorá obsahuje aspoň jednu tabuľku, môžeme začať vkladať dáta (ukladať do databázy). Príkazom CREATE TABLE sme vytvorili tabuľku a určili jej štruktúru, čiže počet a typ stĺpcov, takže by sme mali vedieť, čo môžeme vkladať (aký typ a veľkosť dát). Dáta do databázy (do tabuľky) sa vkladajú pomocou príkazu INSERT INTO (vlož do), za ktorým nasleduje názov tabuľky, do ktorej chceme vložiť dáta. Ďalej nasleduje slovo VALUES (hodnoty), za ktorým sú v okrúhlych zátvorkách čiarkami oddelené hodnoty, ktoré chceme vložiť. Počet týchto hodnôt by sa mal rovnať počtu stĺpcov, ktoré má tabuľka, takže v našom prípade to budú tri hodnoty. Textové (stringové) hodnoty by mali byť v zátvorkách, číselné nemusia.

 

Do našej tabuľky si vložíme prvý záznam (record), čiže riadok s poradovým číslom 1 (hodnota prvého stĺpca) a s ľubovoľným menom, napríklad Charlie Harper. Aby sme nemuseli zakaždým používať príkaz USE, môžete sa prepnúť priamo do tejto tabuľky cez ľavé menu v phpMyAdmin - najprv do našej databázy, potom do našej tabuľky a v nej kliknite na sekciu SQL. To značí, že sa SQL príkazy budú priamo vykonávať nad databázou/tabuľkou, v ktorej sme, takže príkaz USE nebude potrebný. Kód by mal vyzerať nasledovne:


INSERT INTO users VALUES (1,'Charlie','Harper');


Po vykonaní tohto príkazu dostaneme úspešnú hlášku, tentoraz však nedostaneme informáciu o nulových dátach, ale dostaneme hlášku 1 row inserted, čo nám hovorí, že sme vložili úspešne jeden riadok do tabuľky. Aby ste sa presvedčili, že sme dáta úspešne vložili, kliknite na sekciu browse nad danou tabuľkou a v strednej časti uvidíte, že dáta sa skutočne nachádzajú v tabuľke. Milé nie? :)

 

Týmto príkazom sme vložili jeden riadok do tabuľky, niekedy je však nutné vkladať viac záznamov (riadkov) naraz. Ak chceme napríklad pridať naraz dva riadky, môžeme iba tento príkaz vložiť do jednej query za sebou dvakrát s rôznymi hodnotami. Je to však možné aj priamo v jednom príkaze INSERT INTO a to tak, že jednotlivé záznamy (okrúhle zátvorky s hodnotami) medzi sebou oddelíme čiarkou. Týmto spôsobom môžeme ľubovoľne za sebou vložiť viacero riadkov naraz. Príkaz by mohol vyzerať asi takto:


INSERT INTO users VALUES 
(2,'Miro','Satan'),
(3,'Zdeno','Chara');


Po tomto príkaze dostaneme úspešnú hlášku o vložení dvoch riadkov, výsledok si môžete skontrolovať v prehľade tabuľky (sekcia browse z horného menu). Možno ste sa zamysleli nad tým, že takýto systém práce s dátami je strašne pracný a zdĺhavý a zbytočne komplikovaný. V Exceli si viete dáta do tabuľky vkladať rýchlo a jednoducho, iba sa prepínate šípkami medzi bunkami a vpíšete hodnoty aké chcete. Tu má každý stĺpec predpísanú formu dát, aké môžete vložiť a ešte k tomu musíte dáta vkladať cez takýto zložitý príkaz, kde jednotlivé hodnoty (ktorých býva v jednej tabuľke oveľa viac) musíte vypisovať po jednom do príkazu. Nateraz je to pravda a máte pravdu, s porovnaním s Excelom je tento systém zložitejší. Ale hneď v ďalšom semestri pochopíte, že to tak musí byť a že to je celé navrhnuté správne, pretože tieto príkazy nebudete takmer nikdy písať ručne, ale budete ich vkladať do kódu (napr. PHP) a tam sa tieto príkazy budú vykonávať automaticky. Ale o tom neskôr...

 

Poďme ale pokračovať s príkazom INSERT. Na začiatku tejto prednášky sme si povedali, že v zátvorke by sme mali mať počet vkladaných hodnôt rovný počtu stĺpcov tabuľky. Mali by sme mať, ale nie je to nutné. Za názvom tabuľky, do ktorej vkladáme, môžeme totižto vypísať zoznam stĺpcov, do ktorých vkladáme hodnotu. Náš predchádzajúci príkaz by mal úplne korektne vyzerať takto:


INSERT INTO users (id,user_name ,user_surname) VALUES (1,'Charlie','Harper');


Možno sa vám to zdá zbytočné, načo vypisovať všetky názvy stĺpcov, keď vieme, že sú tam a ešte v prípade vysokého počtu stĺcpov tabuľky to je aj dosť pracné a zaberá to miesto v kóde (v query). Zadali sme hodnoty pre všetky stĺpce, takže musí byť jasné, že do ktorých stĺpcov vkladáme dáta.

 

Je dobré však dodržiavať tento zvyk, pretože je to korektné, prehľadné a dáva to najavo, do ktorých stĺpcov vkladáme hodnoty. Pri vkladaní dát totižto nemusíme vkladať všetky dáta, resp. hodnoty všetkých stĺpcov. Tým, že za názvom tabuľky, do ktorej vkladáme dáta, vymenujeme len istý počet stĺpcov, hodnoty za slovom VALUES budú následne priradené k vymenovaným stĺpcom. Okrem toho nemusí byť dodržané poradie názvov stĺpcov, ale môžu byť prehodené. Tým pádom môžeme do našej tabuľky vložiť záznam, ktorý bude obsahovať napríklad iba hodnotu stĺpca id a user_name a takisto môžeme poradie pri vložení vymeniť, mohlo by to vyzerať asi takto:


INSERT INTO users (id,user_name) VALUES (4,'Laco');
INSERT INTO users (user_name,id) VALUES ('Fero',5);


Po vykonaní tejto query sa vložia dva nové záznamy, obidva však nemajú vyplnenú hodnotu v stĺpci user_surname. Keď si skontrolujete vykonanie query v prehľade dát tabuľky (browse), uvidíte v danom stĺpci hodnotu NULL. Táto hodnota značí nič (prázdno,nula) – nevyplnenú hodnotu. Prečo je to tam, si vysvetlíme o pár prednášok neskôr a podrobne si to preberieme... Len by som pripomenul, že je dobré doržiavať poradie stĺpcov, aby v tom bol poriadok, takže možnosť prehodiť poradie sme si ukázali, nemusíme sa jej ale držať.

Máte nejakú otázku alebo Vám niečo nie je jasné? Napíšte nám na info@zacni-programovat.sk a poradíme!

Ťažko sa vám učí samému?

Máte problémy s niektorými časťami alebo sa neviete učiť sám? Využite našu možnosť individuálnej asistencie:

  • samostatný prístup
  • vysvetlenie nejasností prebraného učiva
  • úlohy a cvičenia navyše
  • všetko z pohodlia domova cez mail a skype

Pre viac info kliknite tu

Kľúčové slová prednášky

sql insertvlozenie dattabulka insertvlozenie riadka do tabulkyvlozenie dat do tabulkypridanie zaznamu v sqlinsert intoinsert values

IT ftip

Život by bol jednoduchší, keby sme k nemu mali zdrojový kód.