Skip to content

Cum să scrii interogări SQL de bază — SELECT, FROM, WHERE, ORDER BY

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să scrii interogări SQL de bază. We cover key concepts, practical examples, and best practices.

Cum să scrii interogări SQL de bază folosind clauzele SELECT, FROM, WHERE și ORDER BY pentru a extrage, filtra și sorta date din baze de date relaționale precum MySQL sau PostgreSQL.

Problema

Începătorii în SQL scriu adesea interogări care returnează prea multe date, omit filtrarea sau nu sortează rezultatele corect. Fără o înțelegere clară a ordinii de execuție a clauzelor, interogările devin ineficiente și greu de întreținut.

The Wrong Way

O interogare care extrage toate coloanele din toate rândurile, fără filtrare sau sortare:

SELECT * FROM employees;

Output:

 id |   name   | department | salary | hire_date
----+----------+------------+--------+-----------
  1 | Ana Pop  | IT         |  75000 | 2021-03-15
  2 | Ion Ionescu | HR      |  55000 | 2020-07-01
  3 | Maria Radu  | IT      |  82000 | 2022-01-10
... sute de rânduri

Problema: SELECT * aduce toate coloanele, iar lipsa WHERE și ORDER BY face rezultatul greu de citit și consumă resurse inutile.

The Right Way

Specifică doar coloanele necesare, filtrează cu WHERE și sortează cu ORDER BY:

SELECT name, salary
FROM employees
WHERE department = 'IT'
ORDER BY salary DESC;

Output:

   name    | salary
-----------+--------
 Maria Radu|  82000
 Ana Pop   |  75000

Interogarea returnează doar numele și salariul angajaților din IT, sortați descrescător după salariu.

Step-by-Step Fix

1. Alege coloanele cu SELECT

Listează explicit coloanele de care ai nevoie, nu folosi * în producție:

SELECT first_name, last_name, email

2. Filtrează cu WHERE

Folosește WHERE pentru a limita rândurile returnate:

WHERE department = 'IT' AND salary > 60000

Operatori utili: =, <>, >, <, >=, <=, LIKE, IN, BETWEEN.

3. Sortează cu ORDER BY

Adaugă ORDER BY la sfârșit. Implicit este ASC (crescător):

ORDER BY salary DESC, last_name ASC

4. Limitează rezultatele cu LIMIT

Pentru tabele mari, adaugă LIMIT:

SELECT name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5;

Output:

   name    | salary
-----------+--------
 Maria Radu|  82000
 Ana Pop   |  75000
 ... primele 5

Prevention Tips

  • Nu folosi SELECT * în cod de producție — specifică întotdeauna coloanele
  • Plasează WHERE înainte de ORDER BY și LIMIT la sfârșit
  • Testează interogările cu EXPLAIN pentru a verifica performanța
  • Folosește aliasuri (AS) pentru coloane calculate

Greșeli comune cu SQL de bază

  1. SELECT * în producție — aduce coloane inutile și încetinește interogarea
  2. Filtrare greșită cu NULLWHERE column = NULL nu funcționează; folosește IS NULL
  3. Ordinea greșită a clauzelorORDER BY trebuie să fie ultima înainte de LIMIT
  4. Amintirea greșită a operatorilor= pentru comparație, nu ==
  5. Lipsa indexurilorWHERE pe coloane neindexate duce la full table scan

Exercițiu practic

Scrie o interogare care extrage numele, departamentul și salariul angajaților din departamentul 'HR' cu salariul între 40000 și 60000, sortați alfabetic după nume, limitat la primele 10 rezultate.

Soluție:

SELECT name, department, salary
FROM employees
WHERE department = 'HR'
  AND salary BETWEEN 40000 AND 60000
ORDER BY name ASC
LIMIT 10;

FAQ

### Care este ordinea de execuție a clauzelor SQL?

SQL execută clauzele în această ordine: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. De aceea poți folosi aliasuri în ORDER BY dar nu în WHERE.

Ce diferență este între WHERE și HAVING?

WHERE filtrează rânduri individuale înainte de gruparea (GROUP BY). HAVING filtrează grupuri după agregare.

Pot folosi aliasuri în WHERE?

Nu, pentru că WHERE se execută înainte de SELECT. Aliasurile definite în SELECT sunt disponibile doar în ORDER BY și clauzele ulterioare.

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează nativ cu bazele de date pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro