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

  1. Nyissa meg a Sajátgépet, és keresse meg a következő könyvtárat:C:\sqlite" és akkor
  2. nyisd ki "sqlite3.exe"

SQLite Húrfüggvények

Step 2) Nyissa meg az adatbázist "TutorialsSampleDB.db” a következő paranccsal:

SQLite Húrfüggvények

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:

Húr LENGTH megkeresése SQLite

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:

Példa a UPPER és LOWER funkciókra SQLite

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:

Példa a SUBSTR függvényre in SQLite

  • 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

Példa a REPLACE funkcióra in SQLite

  • 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:

Példa a TRIM funkcióra SQLite

  • 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:

Példa az ABS funkcióra SQLite

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:

Példa a ROUND funkcióra SQLite

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:

Példa a TYPEOF függvényre SQLite

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:

Példa a LAST_INSERT_ROWID függvényre SQLite

  • 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:

Példa a LAST_INSERT_ROWID függvényre SQLite

  • 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:

Példa a saját verziójának lekérésére SQLite könyvtár

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.