A karakterlánc-függvények listája

Több funkció, mint dátum és idő – csak a String típus. Amit SQL-ben CHAR(n) és VARCHAR(n) típusok adnak meg. Idézzük fel közülük a legnépszerűbbeket:

Funkció Leírás
1 LENGTH(str) Az átadott karakterlánc hosszát adja vissza bájtban
2 CHAR_LENGTH(str) Az átadott karakterlánc hosszát adja vissza karakterben
3 LOCATE(substr,str), Az indexOf() metódushoz hasonló részkarakterláncot keres
4 LOCATE(substr,str,poz) Egy részkarakterláncot keres egy pozícióban kezdődő karakterláncban
5 CONCAT(str1;str2,...) Több sort összefűz
6 SUBSTR(), SUBSTR() Egy karaktertartomány által megadott részkarakterláncot ad vissza
7 LOWER(str) A karakterláncot kisbetűssé alakítja
8 FELSŐ (szt) A karakterláncot nagybetűssé alakítja
9 REPLACE() Lecseréli a karakterláncban lévő részkarakterláncot
10 MÉRKŐZÉS() Ellenőrzi, hogy egy karakterlánc megfelel-e egy adott mintának
tizenegy TRIM(str) Levágja az üres karaktereket a karakterlánc elején és végén
12 LTRIM(str) Levágja az üres karaktereket a karakterlánc elején
13 RTRIM(str) Levágja az üres karaktereket a karakterlánc végén
14 TO_BASE64(str) A karakterláncot Base64-re konvertálja
15 FROM_BASE64(str) Egy karakterláncot konvertál a Base64-ből

Szándékosan kis csoportokba csoportosítottam a funkciókat, hogy könnyebb legyen megérteni, hogyan kell velük dolgozni. Az alábbiakban minden csoportból egy-egy funkciót veszünk figyelembe. A karakterláncokkal való munkavégzéshez szükséges függvények teljes listája a hivatalos dokumentációban található .

Konvertáljuk a karakterláncot

Először foglalkozzunk a legegyszerűbb függvényekkel, amelyek egyszerűen egy karakterláncot egy kicsit más formává alakítanak át. Például konvertáljon egy karakterláncot nagy- és kisbetűvé. Általánosságban elmondható, hogy viselkedésük hasonló a Java nyelv ugyanazon függvényeihez.

Ezért adok egy táblázatot néhány példával.

# Kérés Eredmény
1 SELECT LENGTH ("szöveg") 4
2 SELECT LENGTH ("Hello") 12
3 SELECT LOWER ("Hello") Helló
4 FELSŐ KIVÁLASZTÁSA ("Helló") HELLÓ
5 SELECT SUBSTR ('Hello', 2, 3) riv
6 SELECT SUBSTR ('Szia, hogy vagy?', 8) Hogy vagy?

A funkciók az elvárásoknak megfelelően működnek, akárcsak a JDK-ból származó megfelelőik.

Az egyetlen figyelmeztetés: az első sorban az eredmény 4, nem 8. A lényeg az, hogy a kérésben 1 bájt (ASCII kódolás) szerepel a latin karakterek kódolására. De ha az adatbázisból származó adatokkal dolgozik, akkor a karakterlánc hossza az adatbázis kódolási beállításaitól függ . Az adatbázissal való munka során sok meglepetést találsz :)

Összetett műveletek karakterláncokkal

Nos, nézzünk bonyolultabb dolgokat a húrokkal való munka során. Ti mit találnátok ki...

A feladattáblázatból jelenítsünk meg feladatokat, és ha már lejárt a feladat határideje, akkor a feladatleíráshoz adjuk hozzá a LEJÁRT szót!

Érdekesen hangzik. Bár a bonyolult feltételeket még nem tanultuk meg, azért egyszerűsítsük egy kicsit a feladatot. Csak írjunk egy lekérdezést, amely megjeleníti a múltbeli feladatok listáját, de ügyeljen arra, hogy a címben szerepeljen az „EXPIRED!” szó. .

Ehhez a CONCAT függvényt kell használnunk:

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

A lekérdezés eredménye a következő lesz:

concat('LEJÁRT!', név)
LEJÁRT! Javítson ki egy hibát a kezelőfelületen

Ajánlást. Ha csak egy kicsit más formába kell konvertálnia az adatokat, akkor ezt Java kódszinten is megteheti. De ha SQL szerveroldali karakterlánc-függvényeket szeretne használni (a WHERE-en belül), akkor ezek nélkül biztosan nem megy.