{"id":22973673,"url":"https://github.com/miroslav-reiter/postgresql","last_synced_at":"2025-08-13T14:33:24.523Z","repository":{"id":266306657,"uuid":"897975626","full_name":"miroslav-reiter/PostgreSQL","owner":"miroslav-reiter","description":"Materiály k online kurzom a školeniam PostgreSQL","archived":false,"fork":false,"pushed_at":"2024-12-10T19:23:30.000Z","size":22684,"stargazers_count":1,"open_issues_count":0,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-10T19:42:45.185Z","etag":null,"topics":["postgresql","postgresql-database","sql"],"latest_commit_sha":null,"homepage":"https://www.vita.sk/online-kurzy-postgresql/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miroslav-reiter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-03T15:11:56.000Z","updated_at":"2024-12-10T19:23:34.000Z","dependencies_parsed_at":"2024-12-10T19:26:44.763Z","dependency_job_id":null,"html_url":"https://github.com/miroslav-reiter/PostgreSQL","commit_stats":null,"previous_names":["miroslav-reiter/postgresql"],"tags_count":0,"template":false,"template_full_name":"miroslav-reiter/Git_Github","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslav-reiter%2FPostgreSQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslav-reiter%2FPostgreSQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslav-reiter%2FPostgreSQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslav-reiter%2FPostgreSQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miroslav-reiter","download_url":"https://codeload.github.com/miroslav-reiter/PostgreSQL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229767245,"owners_count":18121043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["postgresql","postgresql-database","sql"],"created_at":"2024-12-14T23:57:50.832Z","updated_at":"2025-08-13T14:33:24.486Z","avatar_url":"https://github.com/miroslav-reiter.png","language":null,"readme":"# 🐘 Online kurzy PostgreSQL\nMateriály k online kurzom PostgreSQL\n\n01. [**🤖 Zoznam Metapríkazov PostgreSQL**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#zoznam-meta-prikazov)\n02. [**🛠️ Zoznam základných PostgreSQL príkazov**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#zoznam-zakladnych-prikazov-postgresql)\n03. [**👮 Zoznam PostgreSQL DBA príkazov - Používatelia a Práva**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#zoznam-prikazov-dba-pouzivatelia)\n04. [**⭐ Prehľad PostgreSQL privilégia používateľov**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#privilegia-postgresql)\n05. [**🐧 Inštalácia Linux pgAdmin**](https://github.com/miroslav-reiter/PostgreSQL/blob/main/README.md#instalacia-linux-pgadmin)\n\n\u003ca name=\"zoznam-meta-prikazov\"\u003e\u003c/a\u003e  \n## 🤖 Zoznam Metapríkazov PostgreSQL s vysvetleniami\n| N  |   Metapríkaz  |                                    Popis                                   |\n|----|:-------------:|:--------------------------------------------------------------------------:|\n| 1  | **\\l**            | Zobrazenie zoznamu všetkých databáz.                                       |\n| 2  | **\\c [databáza]** | Prepnutie na inú databázu.                                                 |\n| 3  | **\\dt**          | Zobrazenie zoznamu všetkých tabuliek v aktuálnej schéme.                   |\n| 4  | **\\d [tabuľka]** | Zobrazenie štruktúry konkrétnej tabuľky (stĺpce, typy, indexy).            |\n| 5  |**\\dn**          | Zobrazenie zoznamu schém v aktuálnej databáze.                             |\n| 6  | **\\di**          | Zobrazenie zoznamu indexov v aktuálnej schéme.                             |\n| 7  |**\\dv**          | Zobrazenie zoznamu pohľadov (views) v aktuálnej schéme.                    |\n| 8  | **\\du**          | Zobrazenie zoznamu používateľov a ich rolí.                                  |\n| 9  | **\\df**          | Zobrazenie zoznamu funkcií definovaných v databáze.                        |\n| 10 | **\\pset**        | Nastavenie formátovania výstupu (napr. \\pset border 2 pridá orámovanie).   |\n| 11 | **\\q**            | Ukončenie relácie psql (vystúpenie z PostgreSQL interaktívneho terminálu). |\n| 12 | **\\timing**       | Zapnutie alebo vypnutie zobrazovania času vykonávania SQL príkazov.        |\n\nDetailnejšie vysvetlenie:\n1. **\\l** – Tento príkaz vypíše všetky dostupné databázy v rámci inštancie PostgreSQL.  \n1. **\\c [databáza]** – Umožňuje prepnúť sa do inej databázy, ktorú chcete spravovať.    \n1. **\\dt** – Zobrazí všetky tabuľky v aktuálnej schéme (public schéma, ak nie je špecifikované inak).    \n1. **\\d [tabuľka]** – Poskytne detailné informácie o štruktúre tabuľky, ako sú stĺpce, dátové typy, indexy, a ďalšie.    \n1. **\\dn** – Umožňuje získať prehľad o všetkých schémach dostupných v databáze.    \n1. **\\di** – Zobrazuje existujúce indexy, čo je užitočné pri optimalizácii výkonu databázy.  \n1. **\\dv** – Pomocou tohto príkazu získate zoznam definovaných pohľadov (views).  \n1. **\\du** – Tento príkaz zobrazuje všetkých používateľov a ich priradené role.  \n1. **\\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.  \n1. **\\pset** – Upravuje, ako sa údaje zobrazujú, napr. pridanie orámovania tabuliek.  \n1. **\\q** – Rýchle ukončenie relácie psql.  \n1. **\\timing** – Aktivuje zobrazovanie času, ktorý PostgreSQL potrebuje na vykonanie príkazov.  \n\nTieto metapríkazy sú ideálne na navigáciu a rýchle vykonávanie často potrebných akcií v PostgreSQL!  \n\n\u003ca name=\"zoznam-zakladnych-prikazov-postgresql\"\u003e\u003c/a\u003e\n## 🛠️ Zoznam základných PostgreSQL príkazov s vysvetleniami\n\nTu je zoznam základných PostgreSQL príkazov s konkrétnymi vysvetleniami:\n\n**1. 🌟 CREATE DATABASE** – Vytvorenie novej databázy.\n\n```sql\nCREATE DATABASE moja_databaza;\n```\n\nTento príkaz vytvorí novú databázu s názvom `moja_databaza`.\n\n---\n\n**2. 🗑️ DROP DATABASE** – Odstránenie existujúcej databázy.\n\n```sql\nDROP DATABASE moja_databaza;\n```\n\nTento príkaz odstráni databázu s názvom `moja_databaza`.\n\n---\n\n**3. 🏗️ CREATE TABLE** – Vytvorenie novej tabuľky.\n\n```sql\nCREATE TABLE studenti (\n    id SERIAL PRIMARY KEY,\n    meno VARCHAR(50),\n    vek INT\n);\n```\n\nTento príkaz vytvorí tabuľku `studenti` so stĺpcami `id`, `meno` a `vek`.\n\n---\n\n**4. 🧹 DROP TABLE** – Odstránenie tabuľky.\n\n```sql\nDROP TABLE studenti;\n```\n\nTento príkaz odstráni tabuľku `studenti` spolu so všetkými jej údajmi.\n\n---\n\n**5. 🛠️ ALTER TABLE** – Úprava štruktúry tabuľky.\n\n```sql\nALTER TABLE studenti ADD COLUMN email VARCHAR(100);\n```\n\nTento príkaz pridá nový stĺpec `email` do tabuľky `studenti`.\n\n---\n\n**6. ✉️ INSERT INTO** – Vloženie údajov do tabuľky.\n\n```sql\nINSERT INTO studenti (meno, vek) VALUES ('Ján', 22);\n```\n\nTento príkaz pridá nový riadok s údajmi `meno = Ján` a `vek = 22` do tabuľky `studenti`.\n\n---\n\n**7. 🔍 SELECT** – Výber údajov z tabuľky.\n\n```sql\nSELECT * FROM studenti;\n```\n\nTento príkaz vyberie všetky údaje z tabuľky `studenti`.\n\n---\n\n**8. ✏️ UPDATE** – Aktualizácia údajov v tabuľke.\n\n```sql\nUPDATE studenti SET vek = 23 WHERE meno = 'Ján';\n```\n\nTento príkaz aktualizuje vek na `23` pre študenta s menom `Ján`.\n\n---\n\n**9. ❌ DELETE FROM** – Odstránenie údajov z tabuľky.\n\n```sql\nDELETE FROM studenti WHERE meno = 'Ján';\n```\n\nTento príkaz odstráni všetky riadky, kde je `meno = Ján`.\n\n---\n\n**10. 📈 CREATE INDEX** – Vytvorenie indexu pre zrýchlenie vyhľadávania.\n\n```sql\nCREATE INDEX idx_meno ON studenti(meno);\n```\n\nTento príkaz vytvorí index pre stĺpec `meno` v tabuľke `studenti`.\n\n---\n\n**11. 🗑️ DROP INDEX** – Odstránenie indexu.\n\n```sql\nDROP INDEX idx_meno;\n```\n\nTento príkaz odstráni index `idx_meno`.\n\n---\n\n**12. 🔑 GRANT** – Pridelenie prístupových práv.\n\n```sql\nGRANT SELECT ON studenti TO pouzivatel;\n```\n\nTento príkaz pridelí práva na čítanie tabuľky `studenti` používateľovi `pouzivatel`.\n\n---\n\n**13. 🔒 REVOKE** – Odobratie prístupových práv.\n\n```sql\nREVOKE SELECT ON studenti FROM pouzivatel;\n```\n\nTento príkaz odoberie práva na čítanie tabuľky `studenti` používateľovi `pouzivatel`.\n\n---\n\n**14. 🕒 BEGIN** – Začiatok transakcie.\n\n```sql\nBEGIN;\n```\n\nTento príkaz začne transakciu.\n\n---\n\n**15. ✅ COMMIT** – Potvrdenie transakcie.\n\n```sql\nCOMMIT;\n```\n\nTento príkaz uloží zmeny vykonané v transakcii.\n\n---\n\n**16. 🔄 ROLLBACK** – Zrušenie transakcie.\n\n```sql\nROLLBACK;\n```\n\nTento príkaz zruší všetky zmeny vykonané v aktuálnej transakcii.\n\n---\n\n**17. 👤 CREATE USER** – Vytvorenie nového používateľa.\n\n```sql\nCREATE USER novy_pouzivatel WITH PASSWORD 'heslo';\n```\n\nTento príkaz vytvorí nového používateľa `novy_pouzivatel` s heslom `heslo`.\n\n---\n\n**18. 🗑️ DROP USER** – Odstránenie používateľa.\n\n```sql\nDROP USER novy_pouzivatel;\n```\n\nTento príkaz odstráni používateľa `novy_pouzivatel`.\n\n---\n\n**19. 🛠️ EXPLAIN** – Zobrazenie vykonávacieho plánu dopytu.\n\n```sql\nEXPLAIN SELECT * FROM studenti WHERE vek \u003e 20;\n```\n\nTento príkaz zobrazí plán vykonávania dopytu.\n\n---\n\n**20. 🧹 VACUUM** – Vyčistenie databázy.\n\n```sql\nVACUUM;\n```\n\nTento príkaz vyčistí a optimalizuje databázu.\n\n---\n\n**21. 📜 LISTEN** – Čakanie na notifikácie.\n\n```sql\nLISTEN novinky;\n```\n\nTento príkaz nastaví príkaz na čakanie notifikácií s názvom `novinky`.\n\n---\n\n**22. 📢 NOTIFY** – Odoslanie notifikácie.\n\n```sql\nNOTIFY novinky, 'Nový študent bol pridaný!';\n```\n\nTento príkaz odošle notifikáciu s názvom `novinky` a správou `'Nový študent bol pridaný!'`.\n\n\u003ca name=\"zoznam-prikazov-dba-pouzivatelia\u003e\u003c/a\u003e\n## 👮 Zoznam PostgreSQL DBA príkazov - Používatelia a Práva s vysvetleniami\n**1. ✨ CREATE USER** – Vytvorenie nového používateľa.\n\n```sql\nCREATE USER novy_pouzivatel WITH PASSWORD 'silneheslo';\n```\n\nTento príkaz vytvorí nového používateľa s menom `novy_pouzivatel` a heslom `silneheslo`.\n\n---\n\n**2. 🔓 GRANT CONNECT ON DATABASE** – Priradenie prístupu na databázu.\n\n```sql\nGRANT CONNECT ON DATABASE mojadb TO novy_pouzivatel;\n```\n\nTento príkaz umožní používateľovi `novy_pouzivatel` pripojenie k databáze `mojadb`.\n\n---\n\n**3. 🛡️ CREATE ROLE** – Vytvorenie roly s právami.\n\n```sql\nCREATE ROLE junior;\nGRANT SELECT ON ALL TABLES IN SCHEMA public TO junior;\n```\n\nTento príkaz vytvorí rolu `junior`, ktorá má právo čítať všetky tabuľky v schéme `public`.\n\n---\n\n**4. 🛡️ GRANT ROLE** – Priradenie roly používateľovi.\n\n```sql\nGRANT junior TO novy_pouzivatel;\n```\n\nTento príkaz priradí rolu `junior` používateľovi `novy_pouzivatel`.\n\n---\n\n**5. 🚫 REVOKE PRIVILEGES** – Obmedzenie prístupových práv.\n\n```sql\nREVOKE INSERT ON TABLE zamestnanci FROM novy_pouzivatel;\n```\n\nTento príkaz zruší právo vkladať údaje do tabuľky `zamestnanci` pre používateľa `novy_pouzivatel`.\n\n---\n\n**6. 🔑 ALTER OWNER** – Nastavenie vlastníctva tabuľky.\n\n```sql\nALTER TABLE zamestnanci OWNER TO novy_pouzivatel;\n```\n\nTento príkaz prenesie vlastníctvo tabuľky `zamestnanci` na používateľa `novy_pouzivatel`.\n\n---\n\n**7. 🗑️ DROP USER** – Odstránenie používateľa.\n\n```sql\nDROP USER novy_pouzivatel;\n```\n\nTento príkaz odstráni používateľa `novy_pouzivatel`. Predtým musia byť odstránené všetky jeho závislosti.\n\n\u003ca name=\"privilegia-postgresql\"\u003e\u003c/a\u003e\n⭐ Prehľad PostgreSQL privilégia používateľov s vysvetleniami\nKaždé z týchto nastavení má svoje špecifické použitie v rôznych scenároch správy PostgreSQL databáz.\n\n**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.  \n**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.  \n**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.  \n**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.  \n**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.  \n**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.  \n**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.  \n\n![postgresql-privilegia](https://github.com/user-attachments/assets/9827e4e8-59ca-45ac-81a2-32d45636c482)\n\n\u003ca name=\"instalacia-linux-pgadmin\"\u003e\u003c/a\u003e\n## 🐧 Inštalácia Linux pgAdmin\n**1. Importujte GPG kľúč pre úložisko:**  \n```bash\ncurl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo tee /etc/apt/trusted.gpg.d/pgadmin.asc  \ncurl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -  \n```\n\n**2. Pridajte úložisko do vášho systému:**\n```bash\necho \"deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main\" | sudo tee /etc/apt/sources.list.d/pgadmin4.list \u0026\u0026 sudo apt update  \n```\n\n**3. Nainštalujte pgAdmin**\n```bash\nsudo apt install pgadmin4-desktop  \nsudo snap install pgadmin4  \npgadmin4\n```\nsudo apt install pgadmin4-web\nhttp://127.0.0.1/pgadmin4\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiroslav-reiter%2Fpostgresql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiroslav-reiter%2Fpostgresql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiroslav-reiter%2Fpostgresql/lists"}