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.