https://github.com/miroslav-reiter/postgresql
Materiály k online kurzom a školeniam PostgreSQL
https://github.com/miroslav-reiter/postgresql
postgresql postgresql-database sql
Last synced: about 2 months ago
JSON representation
Materiály k online kurzom a školeniam PostgreSQL
- Host: GitHub
- URL: https://github.com/miroslav-reiter/postgresql
- Owner: miroslav-reiter
- Created: 2024-12-03T15:11:56.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-12-10T19:23:30.000Z (10 months ago)
- Last Synced: 2024-12-10T19:42:45.185Z (10 months ago)
- Topics: postgresql, postgresql-database, sql
- Homepage: https://www.vita.sk/online-kurzy-postgresql/
- Size: 21.6 MB
- Stars: 1
- Watchers: 1
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🐘 Online kurzy PostgreSQL
Materiály k online kurzom PostgreSQL01. [**🤖 Zoznam Metapríkazov PostgreSQL**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#zoznam-meta-prikazov)
02. [**🛠️ Zoznam základných PostgreSQL príkazov**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#zoznam-zakladnych-prikazov-postgresql)
03. [**👮 Zoznam PostgreSQL DBA príkazov - Používatelia a Práva**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#zoznam-prikazov-dba-pouzivatelia)
04. [**⭐ Prehľad PostgreSQL privilégia používateľov**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#privilegia-postgresql)
05. [**🐧 Inštalácia Linux pgAdmin**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#instalacia-linux-pgadmin)
## 🤖 Zoznam Metapríkazov PostgreSQL s vysvetleniami
| N | Metapríkaz | Popis |
|----|:-------------:|:--------------------------------------------------------------------------:|
| 1 | **\l** | Zobrazenie zoznamu všetkých databáz. |
| 2 | **\c [databáza]** | Prepnutie na inú databázu. |
| 3 | **\dt** | Zobrazenie zoznamu všetkých tabuliek v aktuálnej schéme. |
| 4 | **\d [tabuľka]** | Zobrazenie štruktúry konkrétnej tabuľky (stĺpce, typy, indexy). |
| 5 |**\dn** | Zobrazenie zoznamu schém v aktuálnej databáze. |
| 6 | **\di** | Zobrazenie zoznamu indexov v aktuálnej schéme. |
| 7 |**\dv** | Zobrazenie zoznamu pohľadov (views) v aktuálnej schéme. |
| 8 | **\du** | Zobrazenie zoznamu používateľov a ich rolí. |
| 9 | **\df** | Zobrazenie zoznamu funkcií definovaných v databáze. |
| 10 | **\pset** | Nastavenie formátovania výstupu (napr. \pset border 2 pridá orámovanie). |
| 11 | **\q** | Ukončenie relácie psql (vystúpenie z PostgreSQL interaktívneho terminálu). |
| 12 | **\timing** | Zapnutie alebo vypnutie zobrazovania času vykonávania SQL príkazov. |Detailnejšie vysvetlenie:
1. **\l** – Tento príkaz vypíše všetky dostupné databázy v rámci inštancie PostgreSQL.
1. **\c [databáza]** – Umožňuje prepnúť sa do inej databázy, ktorú chcete spravovať.
1. **\dt** – Zobrazí všetky tabuľky v aktuálnej schéme (public schéma, ak nie je špecifikované inak).
1. **\d [tabuľka]** – Poskytne detailné informácie o štruktúre tabuľky, ako sú stĺpce, dátové typy, indexy, a ďalšie.
1. **\dn** – Umožňuje získať prehľad o všetkých schémach dostupných v databáze.
1. **\di** – Zobrazuje existujúce indexy, čo je užitočné pri optimalizácii výkonu databázy.
1. **\dv** – Pomocou tohto príkazu získate zoznam definovaných pohľadov (views).
1. **\du** – Tento príkaz zobrazuje všetkých používateľov a ich priradené role.
1. **\df** – Slúži na zoznam všetkých funkcií uložených v databáze, či už systémových alebo používateľských.
1. **\pset** – Upravuje, ako sa údaje zobrazujú, napr. pridanie orámovania tabuliek.
1. **\q** – Rýchle ukončenie relácie psql.
1. **\timing** – Aktivuje zobrazovanie času, ktorý PostgreSQL potrebuje na vykonanie príkazov.Tieto metapríkazy sú ideálne na navigáciu a rýchle vykonávanie často potrebných akcií v PostgreSQL!
## 🛠️ Zoznam základných PostgreSQL príkazov s vysvetleniamiTu je zoznam základných PostgreSQL príkazov s konkrétnymi vysvetleniami:
**1. 🌟 CREATE DATABASE** – Vytvorenie novej databázy.
```sql
CREATE DATABASE moja_databaza;
```Tento príkaz vytvorí novú databázu s názvom `moja_databaza`.
---
**2. 🗑️ DROP DATABASE** – Odstránenie existujúcej databázy.
```sql
DROP DATABASE moja_databaza;
```Tento príkaz odstráni databázu s názvom `moja_databaza`.
---
**3. 🏗️ CREATE TABLE** – Vytvorenie novej tabuľky.
```sql
CREATE TABLE studenti (
id SERIAL PRIMARY KEY,
meno VARCHAR(50),
vek INT
);
```Tento príkaz vytvorí tabuľku `studenti` so stĺpcami `id`, `meno` a `vek`.
---
**4. 🧹 DROP TABLE** – Odstránenie tabuľky.
```sql
DROP TABLE studenti;
```Tento príkaz odstráni tabuľku `studenti` spolu so všetkými jej údajmi.
---
**5. 🛠️ ALTER TABLE** – Úprava štruktúry tabuľky.
```sql
ALTER TABLE studenti ADD COLUMN email VARCHAR(100);
```Tento príkaz pridá nový stĺpec `email` do tabuľky `studenti`.
---
**6. ✉️ INSERT INTO** – Vloženie údajov do tabuľky.
```sql
INSERT INTO studenti (meno, vek) VALUES ('Ján', 22);
```Tento príkaz pridá nový riadok s údajmi `meno = Ján` a `vek = 22` do tabuľky `studenti`.
---
**7. 🔍 SELECT** – Výber údajov z tabuľky.
```sql
SELECT * FROM studenti;
```Tento príkaz vyberie všetky údaje z tabuľky `studenti`.
---
**8. ✏️ UPDATE** – Aktualizácia údajov v tabuľke.
```sql
UPDATE studenti SET vek = 23 WHERE meno = 'Ján';
```Tento príkaz aktualizuje vek na `23` pre študenta s menom `Ján`.
---
**9. ❌ DELETE FROM** – Odstránenie údajov z tabuľky.
```sql
DELETE FROM studenti WHERE meno = 'Ján';
```Tento príkaz odstráni všetky riadky, kde je `meno = Ján`.
---
**10. 📈 CREATE INDEX** – Vytvorenie indexu pre zrýchlenie vyhľadávania.
```sql
CREATE INDEX idx_meno ON studenti(meno);
```Tento príkaz vytvorí index pre stĺpec `meno` v tabuľke `studenti`.
---
**11. 🗑️ DROP INDEX** – Odstránenie indexu.
```sql
DROP INDEX idx_meno;
```Tento príkaz odstráni index `idx_meno`.
---
**12. 🔑 GRANT** – Pridelenie prístupových práv.
```sql
GRANT SELECT ON studenti TO pouzivatel;
```Tento príkaz pridelí práva na čítanie tabuľky `studenti` používateľovi `pouzivatel`.
---
**13. 🔒 REVOKE** – Odobratie prístupových práv.
```sql
REVOKE SELECT ON studenti FROM pouzivatel;
```Tento príkaz odoberie práva na čítanie tabuľky `studenti` používateľovi `pouzivatel`.
---
**14. 🕒 BEGIN** – Začiatok transakcie.
```sql
BEGIN;
```Tento príkaz začne transakciu.
---
**15. ✅ COMMIT** – Potvrdenie transakcie.
```sql
COMMIT;
```Tento príkaz uloží zmeny vykonané v transakcii.
---
**16. 🔄 ROLLBACK** – Zrušenie transakcie.
```sql
ROLLBACK;
```Tento príkaz zruší všetky zmeny vykonané v aktuálnej transakcii.
---
**17. 👤 CREATE USER** – Vytvorenie nového používateľa.
```sql
CREATE USER novy_pouzivatel WITH PASSWORD 'heslo';
```Tento príkaz vytvorí nového používateľa `novy_pouzivatel` s heslom `heslo`.
---
**18. 🗑️ DROP USER** – Odstránenie používateľa.
```sql
DROP USER novy_pouzivatel;
```Tento príkaz odstráni používateľa `novy_pouzivatel`.
---
**19. 🛠️ EXPLAIN** – Zobrazenie vykonávacieho plánu dopytu.
```sql
EXPLAIN SELECT * FROM studenti WHERE vek > 20;
```Tento príkaz zobrazí plán vykonávania dopytu.
---
**20. 🧹 VACUUM** – Vyčistenie databázy.
```sql
VACUUM;
```Tento príkaz vyčistí a optimalizuje databázu.
---
**21. 📜 LISTEN** – Čakanie na notifikácie.
```sql
LISTEN novinky;
```Tento príkaz nastaví príkaz na čakanie notifikácií s názvom `novinky`.
---
**22. 📢 NOTIFY** – Odoslanie notifikácie.
```sql
NOTIFY novinky, 'Nový študent bol pridaný!';
```Tento príkaz odošle notifikáciu s názvom `novinky` a správou `'Nový študent bol pridaný!'`.
⭐ Prehľad PostgreSQL privilégia používateľov s vysvetleniami
Každé z týchto nastavení má svoje špecifické použitie v rôznych scenároch správy PostgreSQL databáz.**1. Can login?:** Povolenie na prihlásenie používateľa. Ak je toto začiarknuté, účet sa môže použiť na prihlásenie do databázy. Ak nie je začiarknuté, používateľ môže byť len rola na delegovanie práv.
**2. Superuser?:** Superužívateľ má neobmedzené privilégiá v databáze PostgreSQL, čo znamená, že môže robiť akékoľvek operácie vrátane vytvárania databáz, manipulácie so všetkými tabuľkami a vykonávania akcií bez obmedzenia práv.
**3. Create roles?:** Toto oprávnenie umožňuje danému používateľovi vytvárať nové role alebo upravovať existujúce role. Ak to nie je začiarknuté, používateľ nemá možnosť meniť roly.
**4. Create databases?:** Umožňuje používateľovi vytvárať nové databázy. Toto je dôležité oprávnenie pre administrátorov alebo vývojárov, ktorí potrebujú vytvoriť nové prostredia na prácu.
**5. Inherit rights from the parent roles?:** Ak je začiarknuté, táto rola alebo používateľ bude automaticky dediť všetky práva, ktoré má nadradená rola. Ak nie je začiarknuté, dedenie nie je možné a práva musia byť udelené explicitne.
**6. Can initiate streaming replication and backups?:** Umožňuje používateľovi spustiť streaming replication (replikácia dát v reálnom čase medzi dvoma PostgreSQL servermi) alebo vykonávať zálohovacie procesy. Toto oprávnenie sa zvyčajne udeľuje správcom servera.
**7. Bypass RLS? (Row-Level Security):** Ak je začiarknuté, používateľ môže obísť Row-Level Security pravidlá. Toto oprávnenie je citlivé, pretože RLS zabezpečuje, aby používatelia mali prístup len k určitým riadkom v tabuľkách, podľa definovaných politík. Toto oprávnenie umožňuje používateľovi ignorovať tieto pravidlá a vidieť všetky dáta.
## 🐧 Inštalácia Linux pgAdmin
**1. Importujte GPG kľúč pre úložisko:**
```bash
curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo tee /etc/apt/trusted.gpg.d/pgadmin.asc
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
```**2. Pridajte úložisko do vášho systému:**
```bash
echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list && sudo apt update
```**3. Nainštalujte pgAdmin**
```bash
sudo apt install pgadmin4-desktop
sudo snap install pgadmin4
pgadmin4
```
sudo apt install pgadmin4-web
http://127.0.0.1/pgadmin4