RestApi

Dáta sem, dáta tam.

Nástroje používateľa

Nástoje správy stránok


sql

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);
sql.txt · Posledná úprava: od attilajancik