Cum să scrii interogări SQL de bază — SELECT, FROM, WHERE, ORDER BY
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 deORDER BYșiLIMITla sfârșit - Testează interogările cu
EXPLAINpentru a verifica performanța - Folosește aliasuri (
AS) pentru coloane calculate
Greșeli comune cu SQL de bază
SELECT *în producție — aduce coloane inutile și încetinește interogarea- Filtrare greșită cu
NULL—WHERE column = NULLnu funcționează; foloseșteIS NULL - Ordinea greșită a clauzelor —
ORDER BYtrebuie să fie ultima înainte deLIMIT - Amintirea greșită a operatorilor —
=pentru comparație, nu== - Lipsa indexurilor —
WHEREpe 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
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