6122 afișări Candale Silviu (silviu) 16.01.2019 www.pbinfo.ro
Etichete: nicio etichetă

În MySQL, expresiile sunt alcătuite din operatori, date constante, valori din coloane și funcții. Tipurile de date și tipurile de coloane au fost descrise în articolul Tipuri de date. Articolul curent descrie operatorii și funcțiile MySQL.

Operatori MySQL

Operatorii MySQL pot fi: aritmetici, relaționali, logici și pe biți.

Operatori aritmetici

  • + (adunare)
  • - (scădere)
  • * (înmulțire)
  • / (împărțire). Împărțirea la zero are rezultatul NULL.
mysql> select (10+5)*4;
+----------+
| (10+5)*4 |
+----------+
|       60 |
+----------+
1 row in set (0.00 sec)

mysql>

Operatori relaționali

Rezultatul operatorilor relaționali este 1 (TRUE), 0 (FALSE) sau NULL. Pot fi comparate atât date de tip numeric, cât și date de tip șir de caractere sau dată calendaristică.

Operatori relaționali MySQL sunt:

  • = (egalitate)
  • != sau <> (neegalitate)
  • < (mai mic)
  • <= (mai mic sau egal)
  • > (mai mare)
  • >= (mai mare sau egal)
  • <=> (egalitate. Acceptă ca operanzi valori NULL)
  • IS NULL (verifică dacă o valoare este NULL)
  • IS NOT NULL (verifică dacă o valoare este NULL)
  • expresie BETWEEN min AND max (verifică dacă valoarea expresiei este din intervalul [min,max]).
mysql> select 'Gigel' between 'gelu' and 'grigore';
+--------------------------------------+
| 'Gigel' between 'gelu' and 'grigore' |
+--------------------------------------+
|                                    1 |
+--------------------------------------+
1 row in set (0.05 sec)

mysql>

Compararea șirurilor de caractere se face case sensitive sau nu, după cum expresia este un șir binar (BLOB) sau nu.

  • expresie IN (val1, val2,...,valn) (verifică dacă expresie are valoarea în lista de valori situate între paranteze)

mysql> select 5 in (0,4,3,7,5,9);
+--------------------+
| 5 in (0,4,3,7,5,9) |
+--------------------+
|                  1 |
+--------------------+
1 row in set (0.00 sec)

mysql>

Operația este foarte rapidă dacă valorile sunt constante și ordonate, caz în care se folosește căutarea binară.

  • expresie NOT IN (val1, val2,...,valn) (verifică dacă expresie nu are valoarea în lista de valori situate între paranteze)
  • sir1 LIKE sir2 – verifică dacă sir1 se potrivește cu modelul șir2. sir2 poate conține caractere de înlocuire:
    • % – oricâte caractere, eventual 0
    • _ – exact un caracter
mysql> select "mat" like "m_t";
+------------------+
| "mat" like "m_t" |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)

mysql> select "mat" like "%at%";
+-------------------+
| "mat" like "%at%" |
+-------------------+
|                 1 |
+-------------------+
1 row in set (0.00 sec)

mysql>

Operatori logici

  • ! sau NOT – negare
  • || sau OR – disjuncție
  • && sau AND – conjuncție

Funcții MySQL

MySQL dispune de un număr mare de funcții predefinite. La apelul unei funcții MySQL, argumentele se trec între paranteze rotunde, separate prin virgule. Între numele funcției și paranteza deschisă nu se pune spațiu.

În continuare, prezentăm o (foarte mică) parte din funcțiile MySQL.

Funcții pentru șiruri de caractere

  • CONCAT(sir1, sir2, ...) – returnează șirul obținut prin concatenarea argumentelor.
  • LENGTH(sir) – returnează lungimea șirului transmis ca argument.
  • LOWER(sir) – returnează șirul obținut prin convertirea argumentului la litere mici.
  • UPPER(sir) – returnează șirul obținut prin convertirea argumentului la litere mari.
  • LTRIM(sir) – returnează șirul obținut prin eliminarea spațiilor inițiale din argument.
  • RTRIM(sir) – returnează șirul obținut prin eliminarea spațiilor finale din argument.
  • TRIM(sir) – returnează șirul obținut prin eliminarea spațiilor inițiale și finale din argument.

Funcții numerice

  • ABS(x) – calculează valoarea absolută a argumentului.
  • FLOOR(x) – calculează partea întreagă a argumentului.
  • MOD(a,b) – calculează restul împărțirii lui a la b.
  • RAND() – returnează un număr aleator din intervalul [0,1).
  • ROUND(x) – returnează valoarea lui x rotunjită la cel mai apropiat întreg.
  • ROUND(x,n) – returnează valoarea lui x rotunjită la un număr cu n zecimale.

Funcții de tip dată și oră

  • CURDATE() – data curentă, în format 'AAAA-LL-ZZ'.
  • CURTIME() – ora curentă, în format 'hh:mm:ss'.
  • NOW() – data și ora curentă, în format 'AAAA-LL-ZZ hh:mm:ss'.

6122 afișări Candale Silviu (silviu) 16.01.2019 www.pbinfo.ro