Zhrnutie na Základy informatiky a webového vývoja

Základy Informatiky a Webového Vývoja: Kompletný Rozbor

Úvod

Tento materiál predstavuje základné pojmy databáz a SQL pre študenta, ktorý sa učí samostatne. Pokryjeme: čo je SQL, základné príkazy (SELECT, INSERT, UPDATE, DELETE), pripravené príkazy (prepare) a bezpečnosť, dátové typy a kľúče, návrh tabuliek a JOINy. Všetko vysvetlené jednoduchými príkladmi a praktickými poznámkami.

Čo je SQL a prečo ho použiť

SQL (Structured Query Language) je jazyk na komunikáciu s relačnými databázami. Používame ho na ukladanie, načítanie, úpravu a mazanie dát.

Definícia: SQL je štandardizovaný dotazovací jazyk slúžiaci na prácu s relačnými databázami.

Základné typy príkazov

  • SELECT — čítanie údajov
  • INSERT — vloženie nového záznamu
  • UPDATE — zmena existujúceho záznamu
  • DELETE — vymazanie záznamu

Príklady

  • SELECT: SELECT meno, email FROM pouzivatelia; — zobrazí stĺpce meno a email z tabuľky pouzivatelia.
  • INSERT: INSERT INTO pouzivatelia (meno, email) VALUES ('Ján', '[email protected]'); — vloží nového používateľa.
  • UPDATE: UPDATE pouzivatelia SET meno = 'Peter' WHERE id = 1; — zmení meno používateľa s id 1.
  • DELETE: DELETE FROM pouzivatelia WHERE id = 2; — vymaže používateľa s id 2.

Pozor: Pri UPDATE a DELETE vždy používajte WHERE, inak ovplyvníte alebo vymažete všetky riadky v tabuľke.

Pripravené príkazy (prepare) a bezpečnosť

Príkaz prepare (príprava dotazu) zabezpečuje, že SQL príkaz je bezpečný a chráni pred SQL injection — útokmi, kde útočník vloží škodlivý kód do dotazu.

  • Ako to funguje: pripravíme dotaz s parametrami (placeholdermi) a potom tieto parametre bezpečne nahradíme hodnotami.

Praktický príklad v PHP (zjednodušené):

<?php $db = new PDO("mysql:host=localhost;dbname=skola_db", "root", ""); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $meno = $_POST['meno']; $sprava = $_POST['sprava']; $stmt = $db->prepare( "INSERT INTO spravy (meno, sprava) VALUES (:meno, :sprava)" ); $stmt->execute([':meno' => $meno, ':sprava' => $sprava]); } $stmt = $db->prepare("SELECT * FROM spravy ORDER BY cas ASC"); $stmt->execute(); $spravy = $stmt->fetchAll(); ?>

Tento vzor ukazuje bezpečné vloženie používateľských údajov pomocou placeholderov :meno a :sprava.

Dátové typy v databázach

Prehľad hlavných typov a ich použitia (príklady sú pre relačné DB ako MySQL):

KategóriaTypPoužitie
ČíselnéINTcelé čísla, napr. vek alebo id
FLOATdesatinné hodnoty, napr. váha
DECIMALpresné desatinné čísla, napr. peniaze
TextovéVARCHAR(n)krátke až stredne dlhé texty, napr. meno, email
TEXTdlhé texty, napr. popis
CHAR(n)pevná dĺžka textu, napr. skratky
Dátum/časDATElen dátum, napr. 2024-01-15
TIMElen čas, napr. 08:30:00
DATETIMEdátum a čas dokopy
OstatnéBOOLEANtrue / false
ENUMvýber z vopred definovaných hodnôt

Definícia: VARCHAR je textový typ s premennou dĺžkou, pri vytváraní treba určiť maximálny počet znakov.

Typy kľúčov

  • PRIMARY KEY — jednoznačne identifikuje riadok, musí byť unikátny a NOT NULL.
  • FOREIGN KEY — odkaz na primárny kľúč inej tabuľky, používa sa na referenčnú integritu.
  • UNIQUE — zaručuje, že hodnoty v stĺpci sa neopakujú (napr. email).

Návrh databázy a číselníkové tabuľky

Príklad so žiakmi:

  • Hlavná tabuľka: ziaci (uchová základné údaje)
  • Číselníky: triedy, mesta, statusy (obsahujú len zoznam možností)

Výhody číselníkov:

  • Menší rozmer dát pri opakovaných hodnotách
  • Jednoduchá zmena textu (upravíme v číselníku, prejaví sa všade)
  • Zabezpečenie konzistencie hodnôt

Príklad DDL (len ukážka): CREATE TABLE triedy ( id INT PRIMARY KEY, nazov VARCHAR(10) );

CREATE TABLE mesta ( id INT PRIMARY KEY, nazov VARCHAR(50) );

CREATE TABLE statusy ( id INT PRIMARY KEY, nazov VARCHAR(20) );

CREATE TABLE ziaci ( id INT PRIMARY KEY, meno VARCHAR(50), priezvisko VARCHAR(50), trieda_id INT, mesto_id INT, status_id INT );

Definícia: Číselníková tabuľka (lookup table) obsahuje vopred def

Zaregistruj sa pre celé zhrnutie
KartičkyTest znalostíZhrnutiePodcastMyšlienková mapa
Začni zadarmo

Už máš účet? Prihlásiť sa

Databázy a SQL - základy

Klíčová slova: Programovacia architektúra - vestavěné systémy, Počítačová architektúra, Programovacia architektúra - jazyky C a nízka úroveň, Programovacia architektúra - jazyky a úrovne, Programovacia architektúra - softvér a vývoj, Programovacia architektúra - databázy a SQL, Programovacia architektúra - numerické nástroje a MATLAB, Programovacia architektúra - webové aplikácie a PHP, Programovacia architektúra - webové rozhranie a MVC

Klíčové pojmy: SQL slúži na prácu s relačnými databázami, SELECT číta dáta, INSERT vloží, UPDATE zmení, DELETE vymaže, Vždy používať WHERE pri UPDATE a DELETE, Prepared statements (prepare) chránia proti SQL injection, VARCHAR, TEXT, INT, DECIMAL, DATETIME sú bežné dátové typy, PRIMARY KEY, FOREIGN KEY, UNIQUE definujú integritu dát, Číselníkové tabuľky znižujú redundanciu a uľahčujú zmenu, LEFT JOIN zobrazí všetky riadky z hlavnej tabuľky aj bez zodpovedajúcej hodnoty, Indexovať stĺpce používané v WHERE a JOIN zlepšuje výkon, Normalizovať tabuľky pre konzistenciu dát

## Úvod Tento materiál predstavuje základné pojmy databáz a SQL pre študenta, ktorý sa učí samostatne. Pokryjeme: čo je SQL, základné príkazy (SELECT, INSERT, UPDATE, DELETE), pripravené príkazy (prepare) a bezpečnosť, dátové typy a kľúče, návrh tabuliek a JOINy. Všetko vysvetlené jednoduchými príkladmi a praktickými poznámkami. ## Čo je SQL a prečo ho použiť SQL (Structured Query Language) je jazyk na komunikáciu s relačnými databázami. Používame ho na ukladanie, načítanie, úpravu a mazanie dát. > Definícia: SQL je štandardizovaný dotazovací jazyk slúžiaci na prácu s relačnými databázami. ### Základné typy príkazov - SELECT — čítanie údajov - INSERT — vloženie nového záznamu - UPDATE — zmena existujúceho záznamu - DELETE — vymazanie záznamu ### Príklady - SELECT: SELECT meno, email FROM pouzivatelia; — zobrazí stĺpce meno a email z tabuľky pouzivatelia. - INSERT: INSERT INTO pouzivatelia (meno, email) VALUES ('Ján', '[email protected]'); — vloží nového používateľa. - UPDATE: UPDATE pouzivatelia SET meno = 'Peter' WHERE id = 1; — zmení meno používateľa s id 1. - DELETE: DELETE FROM pouzivatelia WHERE id = 2; — vymaže používateľa s id 2. > Pozor: Pri UPDATE a DELETE vždy používajte WHERE, inak ovplyvníte alebo vymažete všetky riadky v tabuľke. ## Pripravené príkazy (prepare) a bezpečnosť Príkaz prepare (príprava dotazu) zabezpečuje, že SQL príkaz je bezpečný a chráni pred SQL injection — útokmi, kde útočník vloží škodlivý kód do dotazu. - Ako to funguje: pripravíme dotaz s parametrami (placeholdermi) a potom tieto parametre bezpečne nahradíme hodnotami. Praktický príklad v PHP (zjednodušené): <?php $db = new PDO("mysql:host=localhost;dbname=skola_db", "root", ""); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $meno = $_POST['meno']; $sprava = $_POST['sprava']; $stmt = $db->prepare( "INSERT INTO spravy (meno, sprava) VALUES (:meno, :sprava)" ); $stmt->execute([':meno' => $meno, ':sprava' => $sprava]); } $stmt = $db->prepare("SELECT * FROM spravy ORDER BY cas ASC"); $stmt->execute(); $spravy = $stmt->fetchAll(); ?> Tento vzor ukazuje bezpečné vloženie používateľských údajov pomocou placeholderov :meno a :sprava. ## Dátové typy v databázach Prehľad hlavných typov a ich použitia (príklady sú pre relačné DB ako MySQL): | Kategória | Typ | Použitie | |---|---:|---| | Číselné | INT | celé čísla, napr. vek alebo id | | | FLOAT | desatinné hodnoty, napr. váha | | | DECIMAL | presné desatinné čísla, napr. peniaze | | Textové | VARCHAR(n) | krátke až stredne dlhé texty, napr. meno, email | | | TEXT | dlhé texty, napr. popis | | | CHAR(n) | pevná dĺžka textu, napr. skratky | | Dátum/čas | DATE | len dátum, napr. 2024-01-15 | | | TIME | len čas, napr. 08:30:00 | | | DATETIME | dátum a čas dokopy | | Ostatné | BOOLEAN | true / false | | | ENUM | výber z vopred definovaných hodnôt | > Definícia: VARCHAR je textový typ s premennou dĺžkou, pri vytváraní treba určiť maximálny počet znakov. ## Typy kľúčov - PRIMARY KEY — jednoznačne identifikuje riadok, musí byť unikátny a NOT NULL. - FOREIGN KEY — odkaz na primárny kľúč inej tabuľky, používa sa na referenčnú integritu. - UNIQUE — zaručuje, že hodnoty v stĺpci sa neopakujú (napr. email). ## Návrh databázy a číselníkové tabuľky Príklad so žiakmi: - Hlavná tabuľka: ziaci (uchová základné údaje) - Číselníky: triedy, mesta, statusy (obsahujú len zoznam možností) Výhody číselníkov: - Menší rozmer dát pri opakovaných hodnotách - Jednoduchá zmena textu (upravíme v číselníku, prejaví sa všade) - Zabezpečenie konzistencie hodnôt Príklad DDL (len ukážka): CREATE TABLE triedy ( id INT PRIMARY KEY, nazov VARCHAR(10) ); CREATE TABLE mesta ( id INT PRIMARY KEY, nazov VARCHAR(50) ); CREATE TABLE statusy ( id INT PRIMARY KEY, nazov VARCHAR(20) ); CREATE TABLE ziaci ( id INT PRIMARY KEY, meno VARCHAR(50), priezvisko VARCHAR(50), trieda_id INT, mesto_id INT, status_id INT ); > Definícia: Číselníková tabuľka (lookup table) obsahuje vopred def