Archív Inet.sk Pôvodný autor: Libor Bešenyi
10. 08. 2006 o 00:00 7786x

Budovanie informačných systémov I. – Letmé pohladenie SQL 1

V tejto časti sa naučíme základné operácie s databázami, vytváranie tabuliek a ich napĺňanie údajmi.
Budovanie informačných systémov I. – Letmé pohladenie SQL 1

V tejto časti sa naučíme základné operácie s databázami, vytváranie tabuliek a ich napĺňanie údajmi.

Príloha k článku

SQL syntax

Uvažoval som, či nebudem pokračovať v teórii databáz, ale rozhodol som sa, že to radšej podám postupne „za chodu“. Predošlá časť bola pomerne teoretická, tak sa pozrime na veci z praktickej stránky.

 

Rozprávali sme sa o nejakých tabuľkách a vzťahoch. Aby sme vytvorili tabuľku, potrebujeme najprv vytvoriť databázu. Každý databázový systém môže obsahovať niekoľko databáz a databáza je vlastne množina tabuliek (a iných, zatiaľ pre nás nepotrebných objektov).

 

Obrázok 1 Štruktúra databázového systému

 

Ak chceme pristupovať ku jednotlivým dátam (tie obsahujú tabuľky), musíme začať „od konca“. Teda postupne „rozbaľovať“ schému z obrázka (podobne ako pri integrovaní).

 

Databázový systém sme už nainštalovali v jednej z predošlých častí, teraz si vytvorme databázu. Spusťme si konzolový režim na MySQL, ktorým sme už skúšali úspešnosť inštalácie (C:\MySQL\bin\MySQL.exe). Privíta nás obrazovka v ktorej sa budeme postupne učiť pracovať s programom. Keď budeme neskôr programovať aplikáciu, bude nesmierne dôležité ovládať tieto príkazy a v druhej časti zistíme, že návrh databázy na tejto úrovni je 75% celého programu. Takže privíta nás nasledujúci text v okne:

 

Welcom to the MySQL monitor.  Commandsend with ; or \g.

Your MySQL connection id is 1 to server version: 3.23.54-nt

 

Type ‘help;’ or ‘\h’ for help. Tyoe ‘\c’ to clear the buffer.

 

mysql>_

Základné príkazy

Operácie s databázami

Tak, po spustení konzoly sa nachádzame v „zelenej“ úrovní. Tu máme prehľad nad databázami a tak si môžeme vyskúšať príkaz show databases; (všimnime si, že príkaz sa končí bodkočiarkou, jedná sa o takzvaný oddeľovač príkazu – ten neraz budeme písať na viacej riadkov a MySQL čaká na tento znak, aby vedelo, kedy má začať príkaz vyhodnocovať).

 

Z názvu (show databases) je zrejmé, že sa bude jednať o vypísanie „žltých“ databáz. Implicitne má MySQL v3 dve: mysql a test. Testovacia databáza je prázdna a prvá menovaná je systémová, tak ju nebudeme ani mazať a zatiaľ si ju ani všímať.

 

Aby sme mohli pracovať v databáze, musíme si ju buď vytvoriť, alebo vstúpiť už do existujúcej. Na vytvorenie databázy použijeme príkaz create database [názov]; (napríklad create table test2;). Ak si znova dáme vypísať databázy, vidíme, že tam pribudla nová s názvom, ktorý sme jej pridelili.

 

V prípade, že chceme vymazať nejakú databázu, použijeme príkaz drop database [názov]. Pozor, vymažeme celý obsah! Ak sa v databáze nachádzajú tabuľky a v nich nejaké dáta, vymaže sa všetko. Takto vymažme jednu z nepotrebných databáz (napríklad drop database test;)

 

Pozor: Všimnite si, že jazyk je veľmi podobný s angličtinou (ako takmer všetky ostatné „IT jazyky“) textu a tak nezabúdajte na počty. Ak chceme výpis databáz, jedná sa o množné číslo „databases“ a v prípade mazania, mažeme jednu – konkrétnu a tak použijeme „database“. Možno je to smiešne, ale veľa začiatočníkov si to nevšimne a pri „rýchlopise“ naťuká zlý príkaz.

 

Ešte sme si nepovedali, ako vyberieme konkrétnu databázu, aby sme vedeli práve v nej vytvárať a pracovať s tabuľkami. Na to slúži príkaz use [názov].

 

Pozor: Pri každom vstupe do konzoly musíme vstupovať aj do databázy, ak s ňou chceme pracovať!

 

Obrázok 2 Základné operácii s databázami

Operácie s tabuľkami

Keď sme si už vybrali databázu, teraz v nej môžeme analogicky pracovať s tabuľkami. Vypisovať ich, vytvárať, mazať a ešte aj upravovať. Najjednoduchší príkaz je výpis tabuliek a to: show tables;. Ak je databáza prázdna, vypíše sa o tom informácia.

 

Vytvorenie tabuľky už je komplikovanejšia záležitosť. Tu musíme mať jasnú predstavu o tom, ako tabuľka vyzerá (teda po analýze z predchádzajúcich častí), pretože pri vytvorení tabuľky definujeme aj jej parametre:

 

CREATE TABLE [názov tabuľky] (

  [názov stĺpca] [dátový typ],

  [názov stĺpca] [dátový typ],

  …

);

 

Zoznam dátových typov sa nachádza v tabuľke dole a každý si ho dokáže nájsť v manuáli pre konkrétny databázový systém. My budeme najčastejšie používať celé číslo (int), desatine číslo (float), reťazec (varchar) a časový typ (datetime).

 

Dátový typ

Typ

Popis

Decimal

Čísla

Číslo (-1038 až 1038)

Float

Desatiné číslo <-1,79x10308 až 1,79x10308>

Double

Desatiné číslo s dvojnásobnou presnosťou

Real

Desatiné číslo <-3,40x1038 až 3,40x1038>

Money

Nepodporuje MySQL v3 – jedná sa o peňažný typ, ktorý má pevne stanovený počet desatiných miest (dve, štiry apod.) s gigantickým intervalom

Smallmoney

Nepodporuje MySQL v3 – jedná sa o peňažný typ, ktorý má pevne stanovený počet desatiných miest (dve, štiry apod.) s gigantickým intervalom

Bit

Celé čísla

Boolovský výraz => 0 alebo 1: pravda / nepravda

Int

Obrovské celé číslo <-231 až 231)

Smallint

Číslo <-215 až 215)

Tinyint

Jednobajtové číslo <0 až 255>

Char(dĺžka)

Znaky

Uloženie reťazca pevnej dĺžky

Nchar(dĺžka)

Uloženie reťazca pevnej dĺžky v národnej sade

Varchar(dĺžka)

Uloženie reťazca premenlivej dĺžky (0..max)

Nvarchar(dĺžka)

Uloženie reťazca premenlivej dĺžky (0..max) v národnej sade

Datetime

Dátumovo – časové

 

Timestamp

 

Tabuľka 1 Zoznam a popis dátových typov

 

Niečo sme si ale spomínali o primárnych kľúčoch. Ak chcem tabuľku, ktorá by obsahovala takýto kľúč, môžeme ako posledný riadok uviesť primary key (názov stĺpca). Taktiež by bolo vhodné zabezpečiť inkrementáciu (zvyšovanie o jedna) číselného indexu, o ktorom sme tiež už rozprávali. MySQL to zabezpečuje príkazom za definíciou dátového typu príkazom auto_increment.

 

Nesmieme ešte zabúdať na prázdnu hodnotu a lá null. Ak by sme vytvorili aplikáciu v ktorej by program rátal napríklad priemer vložených peňazí z nejakej tabuľky a tá tabuľka by slúžila na celkový pohyb rôznych operácii (nielen vloženia, ale aj vybrania, informovaní sa apod. v prípade, ak napríklad banka sleduje jednotlivých zákazníkov a vedie si evidenciu operácii, ktoré mu poskytla), mohol by program vydávať nekorektné hodnoty, ak by neexistovala hodnota null.

 

Jedná sa totiž o to, že null nie je nula, ale „prázdno“. Ak sa do takejto tabuľky vloží riadok, pričom sa nejednalo o pohyb peňazí a tam my zadáme nulu (veď sa ani nevložilo ani nevybralo) v prípade priemeru by to mohlo znamenať katastrofu, lebo ak sa robí priemer z čísel 10 a 2 je to 6. Ak by to bolo z čísel 10, 2 a 0, už to činí 4. Preto vznikla tzv. „prázdna“ hodnota null, ktorá sa vyskytuje tam, kde nebola hodnota pridaná. Null môže byť aj na miestach, kde sa očakáva číslo, reťazec – proste všade. Null je bez typový.

 

Ak nechceme, aby hodnoty v stĺpcoch byť  vyplnené, zadáme za dátovým typom not null (tzv. mandatory pole). Takto dostávame trošku komplikovanejšiu štruktúru príkazu create table:

 

CREATE TABLE  [príkazy][názov databázy].[názov tabuľky] (

  [názov stĺpca 1] [dátový typ] [príkazy],

  [názov stĺpca 2] [dátový typ] [príkazy],

  …,

  PRIMARY KEY (názov konkrétneho stĺpca)

);

 

Všimnime si, že sme ešte pridali aj prefix k názvu tabuľky separovaný bodkou. Je to dobré na to nezabúdať. Síce na začiatku sme definovali príkazom use, že chceme pracovať s touto databázou, ale písať to, je dobrý zvyk pri väčších projektoch a iných databázových systémoch.

 

Taktiež pribudli nejaké príkazy pred názvom tabuľky, tie slúžia napríklad na overenie, či už tabuľka v databáze neexistuje a v prípade existencie, ju nedovolia potom vytvoriť (if not exists), teda aplikácia nezhavaruje – o tom všetkom neskôr.

 

Na vloženie údajov do tabuľky slúži príkaz insert into s parametrami kde definujeme do ktorých stĺpcov chceme pridať riadok a potom ich hodnoty v tvare:

 

INSERT INTO [názov tabuľky]

  ([názov stĺpca 1],[názov stĺpca 2]…)

VALUES

  (“[hodnota stĺpca 1]”,”[hodnota stĺpca 2]”, …);

 

No a poďme sa troška pohrať s tým, čo sme sa už dozvedeli. Vytvoríme si tabuľku „retazec“ s dvoma stĺpcami „a“ a „b“ dátových typov reťazec, pričom jeden bude môcť obsahovať prázdne hodnoty a druhý nie:

 

CREATE TABLE  retazec (

  a VARCHAR(20),

  b VARCHAR(20) NOT NULL

);

 

Dátový typ varchar je reťazec, ako bolo spomínané, pričom v zátvorke definujeme jeho maximálnu dĺžku. Teraz vložíme do tabuľky jeden riadok – „kuko“ do stĺpca „a“, „migrific“ do stĺpca „b“:

 

INSERT INTO retazec

  (a, b)

VALUES

  (“kuko”, “migrific”);

 

Ešte sme si nespomínali príkaz na výpis obsahu tabuliek. Bolo to zámerné, pretože sa jedná o „kapitolu samú“. Zatiaľ si vystačíme s najjednoduchšou formou výpisu – výpisu celého obsahu, ktorý má tvar:

 

SELECT

  *

FROM [názov tabuľky];

 

Tak a teda pokračujeme v príklade. Keď sme vložili riadok do tabuľky, vypíšme si jej obsah:

 

SELECT * FROM retazec;

 

Vidíme, že tabuľka už obsahuje nejaké dáta. Teraz sa pozrime na to, čo znamená null. Skúsme vložiť prázdne hodnoty. Tak isto, ako null nie je nula pri číslach, nie je ani “prázdnym znakom“ pri reťazcoch:

 

INSERT INTO retazec

  (a, b)

VALUES

  (“”, “”);

 

Pri výpise vidíme, že pribudol ďalší riadok – prázdny pre obe hodnoty. Teraz pridajme hodnotu „a“ a stĺpec „b“ nechajme prázdny:

 

INSERT INTO retazec

  (a)

VALUES

  (“”);

 

Ako vidíme, má to rovnaký efekt. Stĺpec „b“ sme síce nevyplnili, ale databázový systém vie, že „b“ nesmie byť prázdne (null) a tak automaticky doplnil prázdny znak. Ak ale vyskúšame doplniť len hodnotu do stĺpca „b“, pričom stĺpec „a“ môže byť prázdny, po výpise vidíme, že obsahuje hodnotu NULL:

 

INSERT INTO retazec

  (b)

VALUES

  (“nieco”);

 

Celý príklad môžeme vidieť na tomto obrázku:

Obrázok 3 Príklad práce s tabuľkou a hodnotami null

Zhrnutie príkazov

CREATE TABLE [názov]

Vytvorenie databázy.

 

CREATE TABLE [príkazy] [názov databázy].[názov tabuľky] (

  [názov stĺpca 1] [dátový typ] [príkazy],

  [názov stĺpca 2] [dátový typ] [príkazy],

  …,

  PRIMARY KEY (názov konkrétneho stĺpca)

)

Vytvorenie tabuľky. Príkaz za názvom môže byt (if not exists) a tak sa tabuľka vytvorí akk, ak už neexistuje. Názov databázy nie je povinný, ale používať ho ako prefix je dobrý zvyk. Príkazy pri definícii dátových typov taktiež nie sú povinné a môžu byt napríklad not null či auto_increment, pri ktorých nastavuje, že stĺpec nemôže obsahovať prázdne hodnoty (nezadané) a automatické pripočítavanie o jedna v prípade indexu.

 

DROP DATABASE [názov]

Vymazanie databázy.

 

INSERT INTO [názov tabuľky]

  ([názov stĺpca 1],[názov stĺpca 2]…)

VALUES

  ([hodnota stĺpca 1],[hodnota stĺpca 2]…)

Vloženie riadka do tabuľky pre presne definované stĺpce.

 

SELECT

  *

FROM [názov tabuľky];

Vypísanie celého obsahu tabuľky.

 

SHOW DATABASES

Vypísanie zoznamu databáz.

 

SHOW TABLES

Vypísanie zoznamu tabuliek v aktuálnej databáze.

 

USE [názov]

Vstúpenie do konkrétnej databázy (nastaviť aktuálny index).

 

 

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies