SQL
SQL je jazyk určený pre obsluhu databázových nástrojov. Pomocou neho sa vytvárajú a obsluhujú jednotlivé databáze v ňom. Každá databáza pre svoje využitie obsluhuje jednotlivé tabuľky a vzťahy medzi nimi. Každá tabuľka má typovo definované stĺpce a premenlivý obsah riadkov. Riadky sa obsluhujú vrámci CRUD (Create, Read, Update, Delete) funkcií. Tieto funkcie majú štandardizovanú formu zápisu, zhodnú pre väčšinu DB nástrojov. Napríklad pre vloženie (Create) je to INSEERT, pre získanie (Read) je to SELECT, pre aktualizáciu (Update) je to UPDATE a pre výmaz (Delete) je to DELETE.
Príklady na prácu s databázou a dátami
-- vytvorenie tabuľky: CREATE TABLE Users (id INT PRIMARY KEY, name VARCHAR(50), position VARCHAR(50)); -- úprava tabuľky: ALTER TABLE Users ADD age INT; -- zmazanie tabuľky DROP TABLE Users; -- vloženie riadku: INSERT INTO Users (id, name, position) VALUES (1, 'John Doe', 'Programmer'); -- získanie údajov: SELECT name, position FROM Users; -- úprava údajov: UPDATE Users SET position = 'Senior programmer' WHERE id = 1; -- zmazanie riadku: DELETE FROM Users WHERE id = 1;
Bežné DB nástroje
- MySQL, MariaDB - jednoduchý a spoľahlivý DB stroj pre Apache servery
- PostgreSQL - komplexný DB stroj vhodný pre Ktor
- SQLite - lokálna DB stroj pre všetky platformy
- a mnoho ďalších
PostgreSQL
PostgreSQL je databázový systém s otvoreným zdrojovým kódom, ktorý je objektovo-relačný.
PostgresqlOrg - domovská stránka
W3schoolsCom - PostgreSQL Tutorial, aj s popisom inštalácie pre Windows
Použitie tejto databáze je možné aj bez práce v Terminále (shell) a to napríklad dvoma nástrojmi:
PostgresApp - inštalácia PostgreSQL pre Mac
DBeaverIo - nástroj na správu databáz: DBeaver Community
Po inštalácii PostgresApp je možné aj manuálne z terminálu spustiť DB stroj:
clear;"/Applications/Postgres.app/Contents/Versions/18/bin/psql" -p5433 "attilajancik" <code> === Inštalácia pomocou Homebrew === <code bash> brew update brew doctor brew install postgresql@18 # This formula has created a default database cluster with: initdb --locale=en_US.UTF-8 -E UTF-8 /opt/homebrew/var/postgresql@18 # add to path: echo 'export PATH="/opt/homebrew/opt/postgresql@18/bin:$PATH"' >> ~/.zshrc # restart terminal # if next command returned error psql -h localhost -U postgres # then generate a superuser: createuser -s postgres # and next run sql console: psql -h localhost -U postgres # ---- # next commands for homebrew: brew services start postgresql@18 brew services stop postgresql@18 # Or, if you don't want/need a background service you can just run: LC_ALL="en_US.UTF-8" /opt/homebrew/opt/postgresql@18/bin/postgres -D /opt/homebrew/var/postgresql@18 # ---- # UNINSTALL: brew uninstall postgresql@18 # When uninstalling, some dead symlinks are left behind so you may want to run: brew cleanup --prune-prefix # ---- # For compilers to find postgresql@18 you may need to set: export LDFLAGS="-L/opt/homebrew/opt/postgresql@18/lib" export CPPFLAGS="-I/opt/homebrew/opt/postgresql@18/include"
Základné povely v konzole PostgrSQL
Získanie informácií
| Príkaz | Popis |
| `\l` | vypíše zoznam všetkých databáz |
| `\c názov_db` | pripojí sa k databáze |
| `\dt` | vypíše tabuľky aktuálnej databázy |
| `\di` | vypíše indexy |
| `\dv` | vypíše pohľady (views) |
| `\df` | vypíše funkcie |
| `\dn` | vypíše schémy |
| `\d názov_tabuľky` | detailný opis tabuľky |
Práca s SQL súbormi
| Príkaz | Popis |
| `\i súbor.sql` | vykoná SQL skript zo súboru |
| `\o súbor.txt` | presmeruje výstup do súboru |
| `\q` | ukončí psql |
Nastavenie a pomoc
| Príkaz | Popis |
| `\?` | pomocník pre psql |
| `\h` | pomocník pre SQL príkazy (napr. `\h SELECT`) |
| `\encoding` | zobrazí alebo nastaví kódovanie |
| `\timing` | zapne/vypne meranie času vykonania dotazov |
Užitočné rozšírené príkazy
| Príkaz | Popis |
| `\x` | prepne rozšírený (prettified) výpis výsledkov |
| `\watch 2` | opakuje dotaz každé 2 sekundy |
Príklad vytvorenia tabuľky a vloženie záznamov
DROP TABLE IF EXISTS users; CREATE TABLE users(id SERIAL PRIMARY KEY, name VARCHAR(50), position VARCHAR(50), age INT); INSERT INTO users (name, position, age) VALUES ('Fredy', 'chief', 35); INSERT INTO users (name, position, age) VALUES ('John', 'staff', 19);
