Lista de funcții șir

Mai multe funcții decât dată și oră - doar tipul String. Care în SQL este dat de tipurile CHAR(n) și VARCHAR(n). Să ne amintim pe cele mai populare dintre ele:

Funcţie Descriere
1 LENGTH(str) Returnează lungimea șirului transmis în octeți
2 CHAR_LENGTH(str) Returnează lungimea șirului transmis în caractere
3 LOCATE(substr,str), Caută un subșir într-un șir similar cu metoda indexOf().
4 LOCATE(substr,str,poz) Caută un subșir într-un șir care începe la poz
5 CONCAT(str1,str2,...) Concatenează mai multe linii
6 SUBSTR(), SUBSTRING() Returnează un subșir dat de un interval de caractere
7 LOWER(str) Convertește un șir în minuscule
8 SUS (str) Convertește un șir în majuscule
9 A INLOCUI() Înlocuiește un subșir într-un șir
10 MECI() Verifică dacă un șir se potrivește cu un model dat
unsprezece TRIM(str) Decupează caracterele goale la începutul și la sfârșitul unui șir
12 LTRIM(str) Decupează caracterele goale la începutul unui șir
13 RTRIM(str) Decupează caracterele goale la sfârșitul unui șir
14 TO_BASE64(str) Convertește un șir în Base64
15 FROM_BASE64(str) Convertește un șir din Base64

Am grupat în mod deliberat funcțiile în grupuri mici pentru a fi mai ușor de înțeles cum să lucrezi cu ele. Mai jos vom lua în considerare câte o funcție din fiecare grup. Puteți găsi o listă completă de funcții pentru lucrul cu șiruri în documentația oficială .

Să convertim șirul

Să ne ocupăm mai întâi de cele mai simple funcții care pur și simplu convertesc un șir într-o formă ușor diferită. De exemplu, convertiți un șir în litere mari și mici. În general, comportamentul lor este similar cu aceleași funcții din limbajul Java.

Așa că voi da doar un tabel cu câteva exemple.

# Cerere Rezultat
1 SELECTARE LUNGIME („text”) 4
2 SELECTARE LUNGIME („Bună ziua”) 12
3 SELECTARE LOWER („Bună”) Buna ziua
4 SELECTARE SUS („Bună ziua”) BUNA ZIUA
5 SELECT SUBSTR („Bună ziua”, 2, 3) riv
6 SELECT SUBSTR („Bună, ce mai faci?”, 8) Ce mai faci?

Funcțiile funcționează conform așteptărilor, la fel ca omologii lor din JDK.

Singura avertizare: în prima linie, rezultatul este 4, nu 8. Chestia este că 1 octet (codare ASCII) este folosit în cererea de codificare a caracterelor latine. Dar dacă lucrați cu date din baza de date, atunci lungimea șirului va depinde de setările de codificare a bazei de date . Veți găsi multe surprize în timp ce lucrați cu baza de date :)

Acțiuni complexe cu șiruri

Ei bine, să ne uităm la lucruri mai complexe atunci când lucrăm cu șiruri. cu ce ai veni...

Să afișăm sarcinile din tabelul de sarcini și, dacă termenul limită a sarcinii a trecut deja, adăugați cuvântul EXPIRAT la descrierea sarcinii!

Sună interesant. Deși nu am învățat încă condiții complexe, așa că haideți să simplificăm puțin sarcina. Să scriem doar o interogare care va afișa o listă de sarcini anterioare, dar asigurați-vă că adăugați cuvântul „EXPIRAT!” la titlu. .

Pentru a face acest lucru, va trebui să folosim funcția CONCAT:

   SELECT CONCAT( 'EXPIRED! ', name) FROM task 
   WHERE deadline < CURDATE() 

Rezultatul acestei interogări va fi:

concat('EXPIRAT! ', nume)
EXPIRAT! Remediați o eroare pe front-end

Recomandare. Dacă trebuie doar să convertiți datele într-o formă ușor diferită, atunci acest lucru se poate face și la nivel de cod Java. Dar dacă doriți să utilizați funcții de șir de pe server SQL (în interiorul WHERE), atunci cu siguranță nu vă puteți descurca fără ele.