SQLite Karakterlánc függvények: REPLACE, SUBSTR, TRIM, LENGTH
⚡ Okos összefoglaló
SQLite Az olyan karakterláncfüggvények, mint a LENGTH, SUBSTR, REPLACE és TRIM, közvetlenül a lekérdezéseken belül manipulálják a szöveget, míg a numerikus segédfüggvények, mint az ABS és a ROUND, valamint a TYPEOF és a verziósegítők kiterjesztik a SQLite könyvtár végez.

Hogyan állítsam be SQLite és karakterláncfüggvény-lekérdezések futtatása
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 futtatnia kell az sqlite3.exe fájlt, és kapcsolatot kell nyitnia a minta adatbázissal az alábbiak szerint:
Step 1) Ebben a lépésben nyissa meg a Sajátgép ablakot, keresse meg a következő könyvtárat: „C:\sqlite”, majd nyissa meg az „sqlite3.exe” fájlt:
Step 2) Nyissa meg a „TutorialsSampleDB.db” adatbázist 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ő:
- Az UPPER('a string') visszaadja a „karakterlánc” karakterláncot nagybetűs ábrázolásban: „A STRING”.
- A LOWER('A STRING') függvény visszaadja az „A STRING” karakterláncot kisbetűs „a string” formátumban.
- 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 pozíciótól kezdődő, adott számú karakterláncot ad vissza. Három operandust adhatsz át a függvénynek, például így: „SUBSTR(X,Y,Z)” az alábbiak szerint:
- 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ópont az ex-heztract a belőle kiinduló húr.
- 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 lesz extracAz Y pozíciótól kezdődő karakterlánc 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(DiákNév, 2, 4) A „DiákNév” karakterláncot a második karaktertől kezdődően részkarakterláncként kezeli, majd visszaadja a következő 4 karaktert.
- A SUBSTR(StudentName, 2) függvényben azonban nem adtunk meg számot a visszaadandó karaktereknek, ezért SQLite a „StudentName” összes fennmaradó karakterét adta vissza a második pozíciótól kezdve.
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 az „xx” karakterlánc összes előfordulását a következő karakterlánccal fogjuk helyettesíteni: „SQLite"
SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');
Ez megadja neked
- A replace függvény az összes „xx” karakterláncot a „SQLite".
- Tehát a kimenet a következő lesz: „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étrehozhatsz függvényeket programozási nyelvekkel, például C#, C, PHP vagy C++ és a maghoz csatolta azt a funkciót SQLite funkciók a SQLite maga a könyvtár az „sqlite3_create_function” függvénnyel. Ezután újra felhasználhatja őket az adatbázisában.
Példa:
A következő példában létrehozunk egy felhasználó által definiált függvényt C# programozási nyelven, és hozzáadjuk a 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ő leszDoubleA „Value” kifejezés egy paramétert vesz fel, és annak kettővel szorzott értékét 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.













