Curs interactiv
Curs SQL
Învață SQL de la zero, în engleză, cu un adevărat Postgres care rulează în browser.
01 · Modulul 1 — SELECTARE de bază
Bazele: citirea datelor dintr-un tabel și filtrarea acestora.
- 1.1Introducere în SQLCe este SQL, de ce este utilizat și cum arată o bază de date.~5 min
- 1.2SELECTAȚI … FROMCea mai simplă interogare: citirea rândurilor dintr-un tabel.~10 min
- 1.3Se filtrează cu UNDERESelectarea numai a rândurilor care îndeplinesc o condiție.~10 min
- 1.4Sortare cu ORDER BYPunerea rezultatelor în ordine, crescător sau descendent.~8 min
02 · Modulul 2 — SELECT mai puternic
Limitați, deduplicați, redenumiți și numărați: instrumentele pe care le utilizați în fiecare zi.
- 2.1Limitarea cu LIMITReturnarea doar a primelor N rânduri, de exemplu pentru a construi clasamente.~6 min
- 2.2Valori unice cu DISTINCTEliminarea duplicatelor din rezultatul unui SELECT.~6 min
- 2.3Redenumirea cu ASAcordarea unor nume mai lizibile coloanelor și expresiilor din rezultat.~6 min
- 2.4Numărarea și rezumatul: COUNT, AVG, MAXFuncții agregate: obținerea unui singur număr din mai multe rânduri.~8 min
03 · Modulul 3 — JOIN și GROUP BY
Combinarea mai multor tabele și producerea de rapoarte pe grup: inima fiecărei interogări reale.
- 3.1Unirea a două mese: INNER JOINCombinarea rândurilor din tabele diferite urmând relațiile lor.~12 min
- 3.2Păstrând totul în stânga: LEFT JOINInclusiv rândurile care nu au nicio potrivire în celălalt tabel.~10 min
- 3.3Gruparea cu GROUP BYCalcularea unui agregat per grup, de exemplu per departament.~10 min
- 3.4Grupuri de filtrare: HAVINGPăstrând doar grupurile care îndeplinesc o condiție în ansamblu.~8 min
04 · Modulul 4 — SQL practic
Instrumentele care fac diferența în munca reală: liste, intervale, NULL-uri și logica condiționată.
- 4.1Liste și intervale: IN și BETWEENFiltre compacte pentru „una dintre acestea” și „între A și B”.~8 min
- 4.2Manipularea NULL-urilor: IS NULL și COALESCERecunoașterea și gestionarea valorilor lipsă fără surprize.~10 min
- 4.3Logica condițională: CASE WHENTransformarea valorilor în categorii direct în SELECT.~10 min
- 4.4O interogare în alta: subinterogăriFolosind rezultatul unui SELECT în interiorul altui SELECT.~12 min
05 · Modulul 5 — JOIN-uri avansate
Multi-table JOIN, self-joins, OUTER, CROSS și operații de set: combinarea datelor ca un profesionist.
- 5.1JOIN pe trei sau mai multe meseParcurgerea unui lanț de relații: comenzi → clienți → produse, într-o singură interogare.~12 min
- 5.2Self-JOIN: o masă cu sineIerarhii și relații interne: citirea unui tabel cu două roluri (copil și părinte).~10 min
- 5.3OUTER JOIN: găsirea „lacunelor”Folosind LEFT/RIGHT/FULL OUTER JOIN pentru a găsi rânduri fără potrivire.~10 min
- 5.4UNIRE, INTERSECT, EXCEPTĂ (și CROSS JOIN)Combinarea rezultatelor ca mulțimi: unire, intersecție, diferență și produs cartezian.~12 min
06 · Modulul 6 — Funcții încorporate
Transformați și manipulați datele cu funcțiile native PostgreSQL: șiruri, date, numere, conversii de tip.
- 6.1Funcții șiruriJOS, SUS, LUNGIME, concatenare, SUBSTRING, TRIM, REPLACE, LIKE și ILIKE.~12 min
- 6.2Funcții de dată și de timpEXTRACT, DATE_TRUNC, intervale și diferențe de date.~12 min
- 6.3Funcții numericeROUND, TAVAN, POTEA, ABS, MOD și diviziune întreg vs zecimal.~10 min
- 6.4CAST și conversii de tipConversia între tipuri cu `::type` și `CAST(... AS ...)`.~10 min
07 · Modulul 7 — Analiză avansată
Interogări în mai mulți pași (CTE), clasamente și totaluri generale (funcții ferestre), ierarhii nelimitate (CU RECURSIV).
- 7.1CTE: interogări în mai mulți pași cu WITHÎmpărțirea unei interogări complexe în pași denumiți pentru lizibilitate și reutilizare.~12 min
- 7.2Funcții ferestre: clasamente și calcule pe grupROW_NUMBER, RANK, DENSE_RANK cu OVER(PARTITION BY …) pentru clasamentele în grup.~14 min
- 7.3LAG, LEAD și totaluri curenteCompararea fiecărui rând cu cel precedent/următorul și calculul sumelor cumulate.~12 min
- 7.4CTE recursive: ierarhii de profunzime arbitrarăCU RECURSIV pentru parcurgerea ierarhiilor precum categoriile.~14 min
08 · Modulul 8 — Scrierea și modificarea datelor
INSERT, UPDATE, DELETE, CREATE TABLE cu constrângeri, tranzacții: închiderea buclei cu scrieri.
- 8.1Inserarea datelor: INSERTClauza INSERT, RETURNING cu un singur și mai multe rânduri, alegerea explicită a coloanelor.~10 min
- 8.2Actualizare și ștergere: UPDATE și DELETESchimbări selective cu UNDE și de ce un UNDE uitat este un dezastru.~10 min
- 8.3Crearea de tabele și constrângeri: DDLCREATE TABLE with PRIMARY KEY, NOT NULL, UNIQUE, FORIGN KEY, CHECK și DEFAULT.~12 min
- 8.4Tranzacții: totul sau nimicBEGIN, COMMIT, ROLLBACK: faceți atomic un grup de operații.~10 min
09 · Modulul 9 — Structuri de date și DDL
Crearea și modificarea tabelelor, constrângeri avansate, tipuri complexe și vizualizări.
- 9.1Tipuri de date avansate și ENUMTipuri numerice, TEXT vs VARCHAR, BOOLEAN, UUID și ENUM personalizate.~10 min
- 9.2Constrângeri multiple și la nivel de tabelConstrângeri compuse UNIQUE și PRIMARY KEY, CHECK avansate și chei externe (ON DELETE CASCADE).~12 min
- 9.3Schimbarea structurii: ALTER TABLEAdăugarea, modificarea și eliminarea coloanelor sau constrângerilor din tabelele existente.~10 min
- 9.4Vizualizări și abstracție de dateCrearea de VIEW-uri pentru a simplifica interogările complexe și VIEW-uri MATERIALIZATE pentru performanță.~12 min
10 · Optimizare și indici
Arta de a face interogări rapide: indexuri, planuri de execuție și optimizare a bazei de date.
- 10.1Indici și B-TreesCreați indexuri pentru a accelera dramatic interogările de căutare pe tabele mari.~15 min
- 10.2EXPLICAȚI și ANALIZAȚIÎnvață să citești planurile de execuție a bazei de date pentru a diagnostica blocajele.~15 min
- 10.3Indici compuși și parțialiUtilizați indici pe mai multe coloane simultan sau numai pe o anumită porțiune de date.~12 min
- 10.4Problema N+1Infama problemă de performanță ORM și metodele SQL native pentru a o depăși într-o singură interogare.~12 min
11 · Tranzacții și concurență
Gestionați în siguranță modificările concurente ale datelor: tranzacții ACID, blocări și niveluri de izolare.
- 11.1Tranzacții cu ACID (BEGIN/COMMIT)Păstrați datele în concordanță cu BEGIN, COMMIT și ROLLBACK, grupând interogările într-un singur bloc invizibil pentru alții.~15 min
- 11.2Condiții de cursăScenarii Edge: ce se întâmplă când doi angajați ai bazei de date paralele acționează pe același coș de utilizator.~10 min
- 11.3Blocare și SELECTARE PENTRU ACTUALIZAREBlocați activ rândurile în timpul citirilor, forțând alte fire mutante să aștepte rândul lor.~15 min
- 11.4Niveluri de izolareÎmpingeți-vă la limite prin implementarea Serializable sau treceți la Read Committed pentru performanțe nesigure, dar rapide.~12 min
12 · Funcții și declanșatoare
Automatizați logica de afaceri în interiorul bazei de date: scrieți funcții reutilizabile și reacționați la evenimente cu declanșatoare.
- 12.1UDF-uri și SQL de bazăCreați-vă propriile funcții definite de utilizator pentru a încapsula calcule complexe și a le reutiliza ca macrocomenzi în fiecare interogare.~15 min
- 12.2Logica avansata cu PL/pgSQLOferă funcțiilor tale superputeri: variabile, ramuri if-else și bucle în stil procedural pur în interiorul bazei de date.~15 min
- 12.3Introducere în declanșatoareDefiniți funcții speciale care pot inspecta instantaneu înregistrarea de Ieșire (VECHE) sau INTRAR (NOU).~15 min
- 12.4Declanșatoare practice și auditAutomatizați siguranța: actualizați automat data „updated_at” și arhivați magic rândurile șterse pentru conformitate.~12 min
13 · Funcții ferestre
Analiză avansată a datelor fără rânduri restrânse: descoperiți OVER(), PARTITION BY și funcții analitice.
- 13.1Introducere și clauza OVERRulați calcule agregate (cum ar fi SUM sau AVG) păstrând în același timp rândurile individuale originale.~15 min
- 13.2Gruparea cu PARTITION BYCreați grupări logice (ferestre) în interiorul datelor pe care să aplicați funcții, fără a utiliza GROUP BY.~15 min
- 13.3Clasamente: ROW_NUMBER, RANK și DENSE_RANKAtribuiți numere de rând și ranguri succesive rezultatelor, gestionând corect legăturile.~15 min
- 13.4Schimbări: LAG și LEADAccesați valorile din rândul anterior sau următor direct din rândul curent pentru a calcula delte și variații.~12 min
14 · CTE și interogări ierarhice (CU)
Simplificați interogările uriașe cu Common Table Expressions și navigați în copaci de date nelimitate cu CTE-uri recursive.
- 14.1Introducere în CTE (CU)Înlocuiți subinterogările imbricate care nu pot fi citite cu un format procedural curat, declarând „tabele virtuale” temporare.~12 min
- 14.2CTE-uri multiple și înlănțuiteÎmblanzi complexitatea prin împărțirea procesării în mai mulți pași secvențiali într-o singură instrucțiune WITH.~15 min
- 14.3CTE recursive: date în formă de arboreNavigați fără limite în ierarhiile managerului și categoriile părinte-copil apelând CTE de la sine.~18 min
15 · PostgreSQL JSON și NoSQL
Folosiți puterea relațională combinată cu suport flexibil pentru documente prin JSON și JSONB fără a utiliza baze de date externe.