SELECT în MySQL

Citirea datelor Toate versiunile MySQL și MariaDB

Citește date dintr-un tabel. Este comanda SQL folosită cel mai des.

Sintaxă
SELECT coloana1, coloana2 FROM tabel;

Ce face SELECT

SELECT alege ce coloane vrei să vezi, iar FROM spune din ce tabel. Rezultatul este tot un tabel, cu rândurile găsite.

Cu SELECT * primești toate coloanele. Poți afișa și valori calculate, de exemplu pret * stoc. Clauzele WHERE, ORDER BY și LIMIT se adaugă după FROM, în această ordine.

Parametri

Parametru Descriere
coloana1, coloana2 Coloanele afișate, separate prin virgulă, sau * pentru toate.
tabel Tabelul din care citești.

Ce returnează

Un set de rânduri (posibil gol).

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE produse (
  id INT PRIMARY KEY,
  nume VARCHAR(50) NOT NULL,
  categorie VARCHAR(30),
  pret INT,
  stoc INT
);

INSERT INTO produse VALUES
  (1, 'Laptop', 'Electronice', 3500, 4),
  (2, 'Mouse', 'Electronice', 80, 25),
  (3, 'Birou', 'Mobilier', 900, 0),
  (4, 'Scaun', 'Mobilier', 650, 7),
  (5, 'Monitor', 'Electronice', 1200, 3);

Exemplul 1: Toate coloanele

SELECT * FROM produse;

Rezultat

+----+---------+-------------+------+------+
| id | nume    | categorie   | pret | stoc |
+----+---------+-------------+------+------+
|  1 | Laptop  | Electronice | 3500 |    4 |
|  2 | Mouse   | Electronice |   80 |   25 |
|  3 | Birou   | Mobilier    |  900 |    0 |
|  4 | Scaun   | Mobilier    |  650 |    7 |
|  5 | Monitor | Electronice | 1200 |    3 |
+----+---------+-------------+------+------+

Exemplul 2: Doar anumite coloane

SELECT nume, pret FROM produse;

Rezultat

+---------+------+
| nume    | pret |
+---------+------+
| Laptop  | 3500 |
| Mouse   |   80 |
| Birou   |  900 |
| Scaun   |  650 |
| Monitor | 1200 |
+---------+------+

Exemplul 3: Coloane calculate

Valoarea stocului pentru fiecare produs: prețul înmulțit cu numărul de bucăți.

SELECT nume, pret * stoc FROM produse;

Rezultat

+---------+-------------+
| nume    | pret * stoc |
+---------+-------------+
| Laptop  |       14000 |
| Mouse   |        2000 |
| Birou   |           0 |
| Scaun   |        4550 |
| Monitor |        3600 |
+---------+-------------+

Greșeli frecvente

  • Folosești SELECT * în aplicații. Citești coloane de care nu ai nevoie, iar codul se poate strica atunci când tabelul primește coloane noi. Scrie explicit coloanele.
  • Pui virgulă după ultima coloană: SELECT nume, pret, FROM produse dă eroare de sintaxă.

Comenzi înrudite

  • WHERE: Filtrează rândurile: păstrează doar rândurile care îndeplinesc o condiție.
  • ORDER BY: Ordonează rezultatele crescător (ASC) sau descrescător (DESC) după una sau mai multe coloane.
  • AS (alias): Dă un nume nou (alias) unei coloane sau unui tabel în rezultatul interogării.