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.
GO TO FULL VERSION