Salt la conținutul principal
eLearner.app

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ă

4 lecții

Bazele: citirea datelor dintr-un tabel și filtrarea acestora.

  1. 1.1Introducere în SQLCe este SQL, de ce este utilizat și cum arată o bază de date.~5 min
  2. 1.2SELECTAȚI … FROMCea mai simplă interogare: citirea rândurilor dintr-un tabel.~10 min
  3. 1.3Se filtrează cu UNDERESelectarea numai a rândurilor care îndeplinesc o condiție.~10 min
  4. 1.4Sortare cu ORDER BYPunerea rezultatelor în ordine, crescător sau descendent.~8 min

02 · Modulul 2 — SELECT mai puternic

4 lecții

Limitați, deduplicați, redenumiți și numărați: instrumentele pe care le utilizați în fiecare zi.

  1. 2.1Limitarea cu LIMITReturnarea doar a primelor N rânduri, de exemplu pentru a construi clasamente.~6 min
  2. 2.2Valori unice cu DISTINCTEliminarea duplicatelor din rezultatul unui SELECT.~6 min
  3. 2.3Redenumirea cu ASAcordarea unor nume mai lizibile coloanelor și expresiilor din rezultat.~6 min
  4. 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

4 lecții

Combinarea mai multor tabele și producerea de rapoarte pe grup: inima fiecărei interogări reale.

  1. 3.1Unirea a două mese: INNER JOINCombinarea rândurilor din tabele diferite urmând relațiile lor.~12 min
  2. 3.2Păstrând totul în stânga: LEFT JOINInclusiv rândurile care nu au nicio potrivire în celălalt tabel.~10 min
  3. 3.3Gruparea cu GROUP BYCalcularea unui agregat per grup, de exemplu per departament.~10 min
  4. 3.4Grupuri de filtrare: HAVINGPăstrând doar grupurile care îndeplinesc o condiție în ansamblu.~8 min

04 · Modulul 4 — SQL practic

4 lecții

Instrumentele care fac diferența în munca reală: liste, intervale, NULL-uri și logica condiționată.

  1. 4.1Liste și intervale: IN și BETWEENFiltre compacte pentru „una dintre acestea” și „între A și B”.~8 min
  2. 4.2Manipularea NULL-urilor: IS NULL și COALESCERecunoașterea și gestionarea valorilor lipsă fără surprize.~10 min
  3. 4.3Logica condițională: CASE WHENTransformarea valorilor în categorii direct în SELECT.~10 min
  4. 4.4O interogare în alta: subinterogăriFolosind rezultatul unui SELECT în interiorul altui SELECT.~12 min

05 · Modulul 5 — JOIN-uri avansate

4 lecții

Multi-table JOIN, self-joins, OUTER, CROSS și operații de set: combinarea datelor ca un profesionist.

  1. 5.1JOIN pe trei sau mai multe meseParcurgerea unui lanț de relații: comenzi → clienți → produse, într-o singură interogare.~12 min
  2. 5.2Self-JOIN: o masă cu sineIerarhii și relații interne: citirea unui tabel cu două roluri (copil și părinte).~10 min
  3. 5.3OUTER JOIN: găsirea „lacunelor”Folosind LEFT/RIGHT/FULL OUTER JOIN pentru a găsi rânduri fără potrivire.~10 min
  4. 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

4 lecții

Transformați și manipulați datele cu funcțiile native PostgreSQL: șiruri, date, numere, conversii de tip.

  1. 6.1Funcții șiruriJOS, SUS, LUNGIME, concatenare, SUBSTRING, TRIM, REPLACE, LIKE și ILIKE.~12 min
  2. 6.2Funcții de dată și de timpEXTRACT, DATE_TRUNC, intervale și diferențe de date.~12 min
  3. 6.3Funcții numericeROUND, TAVAN, POTEA, ABS, MOD și diviziune întreg vs zecimal.~10 min
  4. 6.4CAST și conversii de tipConversia între tipuri cu `::type` și `CAST(... AS ...)`.~10 min

07 · Modulul 7 — Analiză avansată

4 lecții

Interogări în mai mulți pași (CTE), clasamente și totaluri generale (funcții ferestre), ierarhii nelimitate (CU RECURSIV).

  1. 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
  2. 7.2Funcții ferestre: clasamente și calcule pe grupROW_NUMBER, RANK, DENSE_RANK cu OVER(PARTITION BY …) pentru clasamentele în grup.~14 min
  3. 7.3LAG, LEAD și totaluri curenteCompararea fiecărui rând cu cel precedent/următorul și calculul sumelor cumulate.~12 min
  4. 7.4CTE recursive: ierarhii de profunzime arbitrarăCU RECURSIV pentru parcurgerea ierarhiilor precum categoriile.~14 min

08 · Modulul 8 — Scrierea și modificarea datelor

4 lecții

INSERT, UPDATE, DELETE, CREATE TABLE cu constrângeri, tranzacții: închiderea buclei cu scrieri.

  1. 8.1Inserarea datelor: INSERTClauza INSERT, RETURNING cu un singur și mai multe rânduri, alegerea explicită a coloanelor.~10 min
  2. 8.2Actualizare și ștergere: UPDATE și DELETESchimbări selective cu UNDE și de ce un UNDE uitat este un dezastru.~10 min
  3. 8.3Crearea de tabele și constrângeri: DDLCREATE TABLE with PRIMARY KEY, NOT NULL, UNIQUE, FORIGN KEY, CHECK și DEFAULT.~12 min
  4. 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

4 lecții

Crearea și modificarea tabelelor, constrângeri avansate, tipuri complexe și vizualizări.

  1. 9.1Tipuri de date avansate și ENUMTipuri numerice, TEXT vs VARCHAR, BOOLEAN, UUID și ENUM personalizate.~10 min
  2. 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
  3. 9.3Schimbarea structurii: ALTER TABLEAdăugarea, modificarea și eliminarea coloanelor sau constrângerilor din tabelele existente.~10 min
  4. 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

4 lecții

Arta de a face interogări rapide: indexuri, planuri de execuție și optimizare a bazei de date.

  1. 10.1Indici și B-TreesCreați indexuri pentru a accelera dramatic interogările de căutare pe tabele mari.~15 min
  2. 10.2EXPLICAȚI și ANALIZAȚIÎnvață să citești planurile de execuție a bazei de date pentru a diagnostica blocajele.~15 min
  3. 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
  4. 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ță

4 lecții

Gestionați în siguranță modificările concurente ale datelor: tranzacții ACID, blocări și niveluri de izolare.

  1. 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
  2. 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
  3. 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
  4. 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

4 lecții

Automatizați logica de afaceri în interiorul bazei de date: scrieți funcții reutilizabile și reacționați la evenimente cu declanșatoare.

  1. 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
  2. 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
  3. 12.3Introducere în declanșatoareDefiniți funcții speciale care pot inspecta instantaneu înregistrarea de Ieșire (VECHE) sau INTRAR (NOU).~15 min
  4. 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

4 lecții

Analiză avansată a datelor fără rânduri restrânse: descoperiți OVER(), PARTITION BY și funcții analitice.

  1. 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
  2. 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
  3. 13.3Clasamente: ROW_NUMBER, RANK și DENSE_RANKAtribuiți numere de rând și ranguri succesive rezultatelor, gestionând corect legăturile.~15 min
  4. 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)

3 lecții

Simplificați interogările uriașe cu Common Table Expressions și navigați în copaci de date nelimitate cu CTE-uri recursive.

  1. 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
  2. 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
  3. 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

2 lecții

Folosiți puterea relațională combinată cu suport flexibil pentru documente prin JSON și JSONB fără a utiliza baze de date externe.

  1. 15.1Integrare JSON și JSONBStocați documente complexe într-o coloană și interogați câmpurile acestora cu operatori săgeți.~15 min
  2. 15.2Funcții de agregare JSONGenerați fișiere JSON sau matrice de obiecte în mod nativ în SQL folosind json_build_object() și json_agg().~15 min