Ce face Operatori aritmetici
Operatorii +, -, * și / funcționează ca la matematică. / dă mereu un rezultat cu zecimale (7/2 = 3.5000), iar DIV dă doar partea întreagă (7 DIV 2 = 3).
%, MOD și funcția MOD() dau restul împărțirii; semnul rezultatului este semnul primului număr. Împărțirea la zero dă NULL, cu un avertisment. Minusul unar (-x) schimbă semnul.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Numerele (sau coloanele numerice) din calcul. |
Ce returnează
Rezultatul calculului; NULL dacă un operand este NULL.
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(30),
pret DECIMAL(10,2),
stoc INT,
reducere INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 3499.90, 4, NULL),
(2, 'Mouse', 79.50, 25, 10),
(3, 'Birou', 899.00, 0, 15),
(4, 'Scaun', 649.99, 7, NULL),
(5, 'Monitor', 1199.00, 3, 5);
Exemplul 1: Toți operatorii
SELECT 7 + 2 AS adunare, 7 - 2 AS scadere, 7 * 2 AS inmultire,
7 / 2 AS impartire, 7 DIV 2 AS div_intreg, 7 % 3 AS rest,
MOD(-7, 3) AS rest_negativ, -(-5) AS minus_unar;
Rezultat
+---------+---------+-----------+-----------+------------+------+--------------+------------+
| adunare | scadere | inmultire | impartire | div_intreg | rest | rest_negativ | minus_unar |
+---------+---------+-----------+-----------+------------+------+--------------+------------+
| 9 | 5 | 14 | 3.5000 | 3 | 1 | -1 | 5 |
+---------+---------+-----------+-----------+------------+------+--------------+------------+
Exemplul 2: Calcule pe coloane: valoarea stocului
SELECT nume, pret, stoc, pret * stoc AS valoare_stoc
FROM produse
ORDER BY valoare_stoc DESC;
Rezultat
+---------+---------+------+--------------+
| nume | pret | stoc | valoare_stoc |
+---------+---------+------+--------------+
| Laptop | 3499.90 | 4 | 13999.60 |
| Scaun | 649.99 | 7 | 4549.93 |
| Monitor | 1199.00 | 3 | 3597.00 |
| Mouse | 79.50 | 25 | 1987.50 |
| Birou | 899.00 | 0 | 0.00 |
+---------+---------+------+--------------+
Exemplul 3: Împărțirea la zero
SELECT 10 / 0 AS rezultat;
Rezultat
+----------+
| rezultat |
+----------+
| NULL |
+----------+
Warning (Code 1365): Division by 0
Greșeli frecvente
- Folosești
/când ai nevoie de un număr întreg (pagini, loturi). FoloseșteDIVsauCEIL(a / b). - Aduni o coloană care conține
NULL:pret + reduceredevineNULL. FoloseșteCOALESCE(reducere, 0).
Comenzi înrudite
ROUND(): Rotunjește un număr la un număr de zecimale (sau la zeci, sute, cu valori negative).CEIL(): Rotunjește în sus, la cel mai mic număr întreg mai mare sau egal.COALESCE / IFNULL: Înlocuiește NULL cu o valoare implicită: returnează prima valoare care nu este NULL.