SQLite Karakterlánc funkciók: REPLACE, SUBSTR, TRIM, ROUND
SQLite alapértelmezés szerint fel van szerelve a beépített funkciók listájával SQLite könyvtár. Az alapfunkciók kiterjesztése érdekében a C nyelv használatával további egyéni funkciókat is hozzáadhat.
Vegye figyelembe, hogy a következő példák mindegyikéhez le kell futtatnia az sqlite3.exe fájlt, és meg kell nyitnia a kapcsolatot a mintaadatbázishoz folyamként:
Step 1) Ebben a lépésben a
- Nyissa meg a Sajátgépet, és keresse meg a következő könyvtárat:C:\sqlite" és akkor
- nyisd ki "sqlite3.exe"
Step 2) Nyissa meg az adatbázist "TutorialsSampleDB.db” a következő paranccsal:
Most készen áll a futtatásra kérdés és próbáljon ki minden, a következő szakaszokban használt lekérdezést.
Húr LENGTH megkeresése SQLite
Egy karakterlánc hosszának meghatározásához használja a LENGTH(X) paramétert, ahol X egy karakterlánc értéke. Ha X null érték, akkor a hossz függvény null értéket ad vissza.
A hossz függvényt számértékekkel is használhatja a numerikus érték hosszának kiszámításához.
Példa:
A következő példában megpróbáljuk a LENGTH függvény szintaxisát a következő értékekkel:
SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);
Ez a következőket adja:
Az eredmény a következő:
- A LENGTH('A string') 8-at ad vissza, ami az „A string” karakterlánc hossza.
- A LENGTH(NULL) nullát ad vissza.
- A LENGTH(20) 2-t ad vissza, mert a 20 2 hosszúságú.
- LENGTH(20.5) 4-et ad vissza; A lebegőpontos "." karakternek számít, tehát négy karaktered lesz – a 3 karakter, amely a számok hossza. Plusz még egy karakter a lebegőpontos „.” számára.
Kis- és nagybetűváltás UPPER és LOWER funkcióval
A UPPER(X) ugyanazt az x karakterláncot adja vissza, de az összes karakterláncot nagybetűvel fogja ábrázolni.
A LOWER(X) ugyanazt az x karakterláncot adja vissza, de az összes karakterláncot kis karakterekkel fogja ábrázolni.
UPPER és LOWER null értékeket ad vissza, ha null értéket ad át nekik.
Ha numerikus értékeket ad át a UPPER vagy LOWER értéknek, mindkettő a pontos számértéket adja vissza.
Példa:
SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);
Ez a következőket adja:
Az eredmény a következő:
- UPPER('a string') a " karakterláncot adja visszahúr" nagybetűs ábrázolással "HÚR".
- A LOWER('A STRING') a " karakterláncot adja visszaHÚR"kisbetűs ábrázolással"húr".
- UPPER(20), LOWER(20) ugyanazt a számot adja vissza, mivel nincs hatással a számokra.
- UPPER(NULL), LOWER(NULL) nullát ad vissza, mert null értéket adtunk át nekik.
SQLite SUBSTR funkció
A SUBSTR függvény egy adott számú karakterláncot ad vissza, egy adott pozíciótól kezdve. Három operandust adhatunk át a függvénynek, így:SUBSTR(X,Y,Z)” a következőképpen:
- X a karakterlánc literál vagy az elemezni kívánt karakterlánc oszlop. Megadhat literális értéket (statikus értéket) vagy oszlopnevet, és ebben az esetben az érték az oszlop értékeiből kerül kiolvasásra.
- Y a kiindulási helyzet a belőle kiinduló karakterlánc kivonásához.
- Z az elemezni kívánt karakterek száma az adott Y pozíciótól kezdve. Ez a szám nem kötelező, figyelmen kívül hagyhatja, és ebben az esetben SQLite kivonja a karakterláncot az Y pozícióból kiindulva, és megmondja a karakterlánc végét.
Példa:
A következő lekérdezésben a SUBSTR függvényt használjuk, hogy a tanulók nevéből a második karaktertől kezdődő 4 karaktert megkapjuk:
SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2) FROM Students;
Ez a következőket adja:
- SUBSTR(tanuló neve, 2, 4) részkarakterlánc a karakterlánc "Tanuló név” a második karaktertől kezdve, és visszaadja a következő 4 karaktert.
- Azonban a funkcióban SUBSTR(tanuló neve, 2) nem adtunk meg számot a visszaadandó karakterekhez, ezért SQLite visszaadta az összes többi karaktert a "Tanuló név” a második pozícióból indulva.
Egy karakterlánc részeinek megváltoztatása -val SQLite REPLACE funkció
A REPLACE egy másik karakterláncon előforduló karakterláncot karakterláncra cserél.
REPLACE(X, Y, Z) – X a bemeneti karakterlánc literálja vagy oszlopa. Y az a karakterlánc, amelyet a Z karakterláncra kell cserélni. Vegye figyelembe, hogy az Y karakterlánc bármely előfordulását lecseréli Z-re, nem csak egyet.
Példa:
A következő lekérdezésben a " karakterlánc összes előfordulását lecseréljükxx"a karakterlánccal"SQLite"
SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');
Ez megadja neked
- A csere funkció lecserélte az összes karakterláncot "xx"a karakterlánccal"SQLite".
- Tehát lesz a kimenet "SQLite nagyon könnyű, SQLite könnyű megtanulni”.
Üres helyek levágása a SQLite TRIM funkció
TRIM távolítsa el az üres szóközöket a karakterlánc elejéről vagy végéről. Nem távolít el szóközt a karakterlánc közepéről, csak az elejétől vagy a végétől.
Példa:
A következő lekérdezésben a TRIM függvényt használjuk az üres szóközök eltávolítására a karakterlánc elejéről és végéről.
Vegye figyelembe, hogy a „||” összefűzési operátor egy extra „;” hozzáadására szolgál a húr végére. Hogy megmutassa, hogy az üres helyeket eltávolították a fekete ablakban.
SELECT TRIM(' SQLite is easy to learn ') || ';';
Ez a következőket adja:
- Figyelje meg, hogyan távolították el az üres szóközöket a karakterlánc elejéről és végéről, helyükre ' ; ' a végén.
Az abszolút értékek olvasása SQLite ABS funkció
Az ABS függvény egy numerikus érték abszolút értékét adja vissza. Az abszolút érték a pozitív vagy negatív előjel nélküli numerikus érték. Az ABS(X) az X értékétől függő értéket ad vissza a következőképpen:
- X abszolút értéke, ha X numerikus érték.
- NULL érték, ha X null érték.
- „0.0” érték, ha X egy karakterlánc.
Példa:
A következő lekérdezésben megpróbáljuk lekérni egy karakterlánc, egy szám és egy null érték abszolút értékét az ABS függvény segítségével:
SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);
Ez a következőket adja:
Az eredmények a következők:
- Az ABS(-2), ABS(+2) 2-t ad vissza, mivel a 2 a „-2” és a „+2” abszolút értéke.
- Az ABS('a string') „0.0”-t ad vissza, mert karakterláncértéket adott át, nem numerikus értéket.
- Az ABS(null) nullát ad vissza, mert null értéket adott át neki.
Értékek kerekítése a ROUND funkcióval SQLite
A tizedes számok „lebegőpontos” számok. rajta például „20.5”, „8.65”. A lebegőponttól balra lévő részt egész résznek, a lebegőponttól jobbra eső részt tizedes résznek nevezzük.
Az egész számok azok a számok, amelyeken nincs lebegőpont. Például „20”, „8”.
A ROUND(X) a decimális értékeket vagy az X oszlopokat csak egész számokká alakítja. A tizedesvesszőtől balra lévő egész szám visszaadásra kerül, és a tizedesvesszőtől jobbra lévő összes számjegy törlődik.
Példa:
A következő lekérdezésben a ROUND függvényt próbáljuk ki különböző opciókkal:
SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');
Ez a következőket adja:
Az eredmény a következő:
- ROUND(12.4354354) – „12” értéket ad vissza, mert nem adtad meg a számjegyek számát. Így, SQLite eltávolította az összes tizedes részt.
- ROUND(12.4354354, 2) – „12.44” értéket ad vissza, mert csak 2 számjegyet adott meg a kerekítéshez, amely a tizedesvesszőtől jobbra lévő két számjegy.
- ROUND(NULL) – nullát ad vissza, mert null értéket adott át neki.
- ROUND('a string') – „0.0” értéket ad vissza, mert karakterláncértéket adott át neki.
A kifejezés adattípusának megkeresése a TYPEOF függvénnyel
Ha egy oszlop vagy literális érték típusát szeretné megtudni, akkor ehhez a TYPEOF függvényt használhatja.
A TYPEOF(X) függvény a nevéből adódóan az X kifejezés adattípusát adja vissza. Egy karakterlánc értéket ad vissza, amely jelzi az X adattípusát. Az adattípusok alapján adja vissza az értéket, függetlenül attól, hogy „NULL” értékről van-e szó, valós, szöveg, egész, … stb.
Példa:
A következő lekérdezésben megpróbáljuk a TYPEOF függvényt különböző típusú literálértékekkel:
SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');
Ez a következőket adja:
A visszaküldött eredmények a következők:
- TYPEOF(null) – nullát ad vissza, mert null értéket adott át neki.
- TYPEOF(12) – egész számot ad vissza, mivel a 12 egy egész szám.
- TYPEOF(12.5) – REAL értéket ad vissza, mivel a 12.5 valós szám.
- TYPEOF('a string') – szöveget ad vissza, mivel a „karakterlánc” egy szöveg.
Az utoljára beillesztett rekord megkeresése a következővel: SQLite LAST_INSERT_ROWID
SQLite egy egész kulcsot (Id) rendel az összes tábla összes sorához. Ez a szám a sorok egyedi azonosítására szolgál.
Amikor egy új sort BESZÉRSZ egy táblázatba, SQLite egyedi értéket rendel a rowidhoz.
Ha a táblának csak egy oszlopban van deklarált elsődleges kulcsa, és az oszlop INTEGER adattípusú, akkor ez az oszlopérték lesz sorazonosító.
A LAST_INSERT_ROWID() függvény az adatbázis bármely táblájában az utolsó beszúrt sor ROW_ID-jét adja vissza. Vegye figyelembe, hogy ehhez nem kell operandus.
Példa:
A következő példában a LAST_INSERT_ROWID() függvényt a következőképpen futtatjuk:
SELECT LAST_INSERT_ROWID();
Ez a következőket adja:
- A LAST_INSERT_ROWID() 0-t ad vissza, mert az aktuális adatbázis-kapcsolatban nincsenek sorok beszúrva egyetlen táblába sem.
Most szúrjunk be egy új tanulót, és futtassuk újra a LAST_INSERT_ROWID() függvényt az insert utasítás után, így:
INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12'); SELECT LAST_INSERT_ROWID();
Ez a következőket adja:
- Miután beszúrtunk egy új tanulót 11-es azonosítóval, a LAST_INSERT_ROWID() az utoljára beillesztett sorazonosítót adja vissza, amely 11.
Az Ön verziójának beszerzése SQLite könyvtár
A saját verziójának beszerzéséhez SQLite könyvtárat, meg kell hívnia az SQLITE_VERSION() függvényt.
Példa:
Nézzük meg, mi a verziója a SQLite a következő parancs futtatásával használjuk:
SELECT SQLITE_VERSION();
Ez a következőket adja:
Az SQLITE_VERSION() a 3.9.2-t adja vissza, amely a SQLite használunk.
Felhasználó által definiált függvények létrehozása és a felhasználó által definiált függvények összesítése
Egyes felhasználók számára a SQLite az alapvető funkciók korlátozottak. Előfordulhat, hogy egyéni szükségleteikhez egyéni funkciókat kell hozzáadniuk.
SQLite nem támogatja a felhasználó által definiált függvények létrehozását. Más adatbázis-kezelő rendszerekkel ellentétben nem hozhat létre felhasználó által definiált függvényeket SQLite közvetlenül.
Azonban létrehozhat függvényt olyan programozási nyelvekkel, mint a C#, C, PHP vagy C++ és a maghoz csatolta azt a funkciót SQLite funkciók a SQLite maga a könyvtár, a „sqlite3_create_function” funkciót. Ezután újra felhasználhatja őket az adatbázisában.
Példa:
A következő példában egy felhasználó által definiált függvényt fogunk létrehozni a használatával C# programozási nyelvet, és add hozzá SQLite funkciók:
[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)] public class DoubleValue: SQLiteFunction { public override object Invoke(object[] args) { return args[0] * 2; } }
Ez a kódrészlet a C# programozási nyelv; egy C# függvényt hoz létre a C# kód segítségével.
A függvény neve a következő leszDoubleÉrték” egy paramétert vesz fel, és annak értékét 2-vel szorozva adja vissza.
Vegye figyelembe, hogy a C# automatikusan hozzáadja ezt a függvényt SQLite. Csak le kell fordítania és futtatnia ezt a kódot. Ezután a C# hozzáadja az azonos nevű függvényt a listához SQLite funkciókat. Ezután használhatja ezt a funkciót SQLite.
Ugyanúgy, mint olyan programozási nyelvek használatával, mint a C#, C, PHP vagy C++, a felhasználó által definiált összesített függvényeket is létrehozhatja. Amelyek az összesített függvények kiterjesztésére szolgálnak SQLite és használja őket egyéni összesítő függvények létrehozására.
Összegzésként
- SQLite a beépített funkciók átfogó készletét kínálja, amelyek megkönnyítik az adatbázis tábláival és oszlopaival való munkát, ahogy láttuk. Ezeket a függvényeket használhatja oszlopokkal, valamint literális értékekkel az SQL-lekérdezések bármely kifejezésében.
- A hossz függvényt számértékekkel is használhatja a numerikus érték hosszának kiszámításához.
- UPPER és LOWER null értékeket ad vissza, ha null értéket ad át nekik.
- A SUBSTR függvény egy adott számú karakterláncot ad vissza, egy adott pozíciótól kezdve.
- A REPLACE egy másik karakterláncon előforduló karakterláncot karakterláncra cserél.
- A TRIM eltávolítja az üres szóközöket a karakterlánc elejéről vagy végéről.
- Az ABS függvény egy numerikus érték abszolút értékét adja vissza.
- A ROUND(X) a decimális értékeket vagy az X oszlopokat csak egész számokká alakítja.
- A TYPEOF(X) függvény a nevéből adódóan az X kifejezés adattípusát adja vissza.
- A LAST_INSERT_ROWID() függvény az adatbázis bármely táblájában az utolsó beszúrt sor ROW_ID-jét adja vissza.