SQLite Funcții șir: ÎNLOCUIRE, SUBSTR, TRIM, ROUND

SQLite este echipat implicit cu o listă de funcții încorporate în SQLite bibliotecă. De asemenea, puteți adăuga și alte funcții personalizate folosind limbajul C pentru a extinde funcțiile de bază.

Rețineți că, pentru toate exemplele următoare, trebuie să rulați sqlite3.exe și să deschideți o conexiune la baza de date eșantion ca flux:

Pas 1) În această etapă,

  1. Deschideți My Computer și navigați la următorul director „C:\sqlite" și apoi
  2. deschis "sqlite3.exe„:

SQLite Funcții șiruri

Pas 2) Deschide baza de date „TutorialeSampleDB.db” prin următoarea comandă:

SQLite Funcții șiruri

Acum sunteți gata să rulați orice întrebare și încercați orice interogări folosite în secțiunile următoare.

Găsirea LUNGIMEI unui șir în SQLite

Pentru a găsi lungimea unui șir, utilizați LUNGIME (X) unde X este o valoare a șirului. Dacă X este o valoare nulă, funcția de lungime va returna o valoare nulă.

De asemenea, puteți utiliza funcția de lungime cu valori numerice pentru a obține lungimea valorii numerice.

Exemplu:

În următorul exemplu, vom încerca sintaxa funcției LENGTH cu valori după cum urmează:

SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);

Acest lucru vă va oferi:

Găsirea LUNGIMEI unui șir în SQLite

Rezultatul este următorul:

  • LENGTH('A șir') returnează 8, care este lungimea șirului „A șir”.
  • LENGTH(NULL) returnează null.
  • LENGTH(20) returnează 2, deoarece 20 are 2 lungimi.
  • LENGTH(20.5) returnează 4; virgulă flotantă „.” este numărat ca un caracter, deci veți avea patru caractere – cele 3 caractere care sunt lungimea numerelor. Plus încă un caracter pentru virgulă mobilă „.”.

Schimbarea carcasei cu funcția UPPER și LOWER Function

UPPER(X) va returna același șir x, dar va reprezenta toate caracterele șir în caractere majuscule.

LOWER(X) va returna același șir x, dar va reprezenta toate caracterele șir în caractere mici.

UPPER și LOWER returnează valori nule dacă le transmiteți o valoare nulă.

Dacă treceți valori numerice la UPPER sau LOWER, ambele vor returna valoarea numerică exactă.

Exemplu:

SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);

Acest lucru vă va oferi:

Exemplu de funcții UPPER și LOWER în SQLite

Rezultatul este următorul:

  • UPPER('un șir') returnează șirul „un șir” în reprezentare cu majuscule ”O SFOARĂ".
  • LOWER('A STRING') returnează șirul „O SFOARĂ„în reprezentare cu litere mici „un șir".
  • UPPER(20), LOWER(20) returnează același număr, deoarece nu au niciun efect asupra numerelor.
  • UPPER(NULL), LOWER(NULL) returnează null deoarece le-am transmis o valoare nulă.

SQLite Funcția SUBSTR

Funcția SUBSTR returnează un anumit număr de șir, începând de la o anumită poziție. Puteți trece trei operanzi funcției, ca acesta „SUBSTR(X,Y,Z)” după cum urmează:

  • X este literalul șirului sau coloana șirului de analizat. Puteți transmite o valoare literală (valoare statică) sau un nume de coloană, iar în acest caz, valoarea va fi citită din valorile coloanei.
  • Y este poziția de pornire pentru a scădea șirul pornind de la acesta.
  • Z este numărul de caractere de analizat începând de la poziția specifică Y. Acest număr este opțional, îl puteți ignora și, în acest caz, SQLite va scădea șirul începând din poziția Y spune la sfârșitul șirului.

Exemplu:

În următoarea interogare, vom folosi funcția SUBSTR pentru a obține cele 4 caractere începând cu al doilea caracter din numele elevilor:

SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2)
FROM Students;

Acest lucru vă va oferi:

Exemplu de funcție SUBSTR în SQLite

  • SUBSTR(NumeStudent, 2, 4) subșir șirul „Numele studentului” începând de la al doilea caracter și returnează următoarele 4 caractere.
  • Totuși, în funcție SUBSTR(NumeStudent, 2) nu am specificat un număr pentru caracterele de returnat, de aceea SQLite a returnat toate caracterele rămase în „Numele studentului” începând de pe poziţia a doua.

Schimbarea părților unui șir cu SQLite Funcția REPLACE

REPLACE este folosit pentru a înlocui fiecare șir apărut pe alt șir cu un șir.

REPLACE(X, Y, Z) – X este literalul sau coloana șirului de intrare. Y este șirul de înlocuit cu șirul Z. Rețineți că va înlocui orice apariție a șirului Y cu Z, nu doar unul.

Exemplu:

În următoarea interogare, vom înlocui toată apariția șirului „xx„cu șirul „SQLite„:

SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');

Acest lucru vă va oferi

Exemplu de funcție REPLACE în SQLite

  • Funcția de înlocuire a înlocuit toate șirurile „xx„cu șirul „SQLite".
  • Deci rezultatul va fi SQLite este foarte usor, SQLite este ușor de învățat”.

Tăierea spațiilor goale cu SQLite Funcția TRIM

TRIM elimina spațiile goale de la începutul sau de la sfârșitul șirului. Nu va elimina niciun spațiu în mijlocul șirului, doar de la început sau de la sfârșit.

Exemplu:

În următoarea interogare, vom folosi funcția TRIM pentru a elimina spațiile goale de la începutul și sfârșitul șirului.

Rețineți că, operatorul de concatenare „||” este folosit pentru a adăuga un „;” suplimentar până la capătul sforii. Pentru a vă arăta că spațiile goale au fost eliminate în fereastra neagră.

SELECT TRIM('      SQLite is easy to learn        ') || ';';

Acest lucru vă va oferi:

Exemplu de funcție TRIM în SQLite

  • Observați cum au fost eliminate spațiile goale de la început și de la sfârșitul șirului, înlocuite cu ' ; ' la sfârșitul.

Citirea Valorilor Absolute cu SQLite Funcția ABS

Funcția ABS returnează valoarea absolută a unei valori numerice. Valoarea absolută este valoarea numerică fără semn pozitiv sau negativ. ABS(X) returnează o valoare în funcție de valoarea lui X, după cum urmează:

  • Valoarea absolută a lui X dacă X este o valoare numerică.
  • O valoare NULL dacă X este o valoare nulă.
  • Valoarea „0.0” dacă X este un șir.

Exemplu:

În următoarea interogare, vom încerca să obținem valoarea absolută a unui șir, a unui număr și a unei valori nule folosind funcția ABS:

SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);

Acest lucru vă va oferi:

Exemplu de funcție ABS în SQLite

Rezultatele după cum urmează:

  • ABS(-2), ABS(+2) returnează 2, deoarece 2 este valoarea absolută atât pentru „-2” cât și pentru „+2”.
  • ABS('un șir') returnează „0.0” deoarece ați transmis o valoare șir, nu o valoare numerică.
  • ABS(null) returnează null deoarece ați trecut o valoare nulă pentru acesta.

Rotunjirea valorilor cu funcția ROUND în SQLite

Numerele zecimale sunt numere cu virgulă mobilă „.” pe el, de exemplu, „20.5”, „8.65”. Partea din stânga virgulei mobile se numește parte întreagă, iar partea din dreapta virgulei mobile este partea zecimală.

Numerele întregi sunt acele numere fără virgulă mobilă. De exemplu, „20”, „8”.

ROUND(X) convertește valorile zecimale sau coloanele X în numere întregi. Partea întreagă care este partea din stânga virgulei zecimale va fi returnată și toate cifrele din dreapta virgulei zecimale vor fi eliminate.

Exemplu:

În următoarea interogare vom încerca funcția ROUND cu diferite opțiuni:

SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');

Acest lucru vă va oferi:

Exemplu de funcție ROUND în SQLite

Rezultatul după cum urmează:

  • ROUND(12.4354354) – returnează valoarea „12”, deoarece nu ați specificat numărul de cifre. Asa de, SQLite a eliminat toată partea zecimală.
  • ROUND(12.4354354, 2) – returnează valoarea „12.44”, deoarece ați specificat doar 2 cifre pentru rotunjire, care sunt cele două cifre din dreapta punctului zecimal.
  • ROUND(NULL) – returnează nul deoarece i-ați transmis o valoare nulă.
  • ROUND('un șir') – returnează valoarea „0.0” deoarece i-ați transmis o valoare șir.

Găsirea tipului de date al expresiei cu funcția TYPEOF

Dacă doriți să aflați tipul unei coloane sau o valoare literală, puteți utiliza funcția TYPEOF pentru a face asta.

Funcția TYPEOF(X), din numele său, returnează tipul de date al expresiei X. Returnează o valoare șir care indică tipul de date al lui X. Returnează valoarea pe baza tipurilor de date, indiferent dacă este o valoare „NULL”, real, text, întreg, … etc.

Exemplu:

În următoarea interogare vom încerca funcția TYPEOF cu diferite tipuri de valori literale:

SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');

Acest lucru vă va oferi:

Exemplu de funcție TYPEOF în SQLite

Rezultatele returnate sunt următoarele:

  • TYPEOF(null) – returnează null deoarece i-ați transmis o valoare nulă.
  • TYPEOF(12) – returnează un număr întreg, deoarece 12 este un număr întreg.
  • TYPEOF(12.5) – returnează REAL deoarece 12.5 este un număr real.
  • TYPEOF('un șir') – returnează text ca „un șir” este un text.

Găsirea ultimei înregistrări introduse cu SQLite LAST_INSERT_ROWID

SQLite atribuie o cheie întreagă (Id) pentru toate rândurile din toate tabelele. Acest număr este utilizat pentru a identifica în mod unic aceste rânduri.

Când INSEREȚI un nou rând pe un tabel, SQLite va atribui rowid-ului o valoare unică.

Dacă tabelul are o cheie primară declarată doar pe o coloană și acea coloană este de tipul de date INTEGER, atunci această valoare a coloanei va fi folosită ca rowid.

Funcția LAST_INSERT_ROWID() returnează ROW_ID-ul ultimului rând inserat în orice tabel din baza de date. Rețineți că nu necesită niciun operand.

Exemplu:

În exemplul următor vom rula funcția LAST_INSERT_ROWID() după cum urmează:

SELECT LAST_INSERT_ROWID();

Acest lucru vă va oferi:

Exemplu de funcție LAST_INSERT_ROWID în SQLite

  • LAST_INSERT_ROWID() returnează 0 deoarece nu există rânduri inserate în niciun tabel din conexiunea curentă la baza de date.

Acum, să inserăm un nou student și să rulăm funcția LAST_INSERT_ROWID() din nou după instrucțiunea insert, astfel:

INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12');
SELECT LAST_INSERT_ROWID();

Acest lucru vă va oferi:

Exemplu de funcție LAST_INSERT_ROWID în SQLite

  • După ce am inserat un nou student cu id-ul 11, LAST_INSERT_ROWID() va returna ultimul id de rând inserat, care este 11.

Obținerea versiunii dvs SQLite bibliotecă

Pentru a obține versiunea dvs SQLite bibliotecă, trebuie să apelați funcția SQLITE_VERSION().

Exemplu:

Să aflăm care este versiunea SQLite folosim rulând următoarea comandă:

SELECT SQLITE_VERSION();

Acest lucru vă va oferi:

Exemplu pentru a obține versiunea dvs SQLite bibliotecă

SQLITE_VERSION() returnează 3.9.2, care este versiunea SQLite folosim.

Crearea de funcții definite de utilizator și funcții agregate definite de utilizator

Pentru unii utilizatori, SQLite funcțiile de bază sunt limitate. Este posibil să fie nevoie să adauge funcții personalizate pentru nevoile lor personalizate.

SQLite nu acceptă crearea de funcții definite de utilizator. Spre deosebire de alte sisteme de gestionare a bazelor de date, nu puteți crea funcții definite de utilizator în SQLite direct.

Cu toate acestea, puteți crea o funcție folosind limbaje de programare precum C#, C, PHP sau C++ și a atașat acea funcție cu miezul SQLite funcții în SQLite biblioteca în sine, folosind „sqlite3_create_function”funcție. Apoi le puteți reutiliza în baza de date.

Exemplu:

În exemplul următor vom crea o funcție definită de utilizator folosind C# limbaj de programare și adăugați-l la SQLite funcţii:

[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)]
public class DoubleValue: SQLiteFunction
{
    public override object Invoke(object[] args)
    {
        return args[0] * 2;
    }
}

Acest fragment de cod este scris în Limbajul de programare C#; creează o funcție C# folosind codul C#.

Numele funcției va fi „DoubleValoare” ia un parametru și returnează valoarea lui înmulțită cu 2.

Rețineți că C# adaugă automat această funcție la SQLite. Tot ce aveți nevoie este să compilați și să rulați acest cod. Apoi C# va adăuga acea funcție cu același nume la lista de SQLite funcții. Apoi puteți utiliza această funcție în SQLite.

Același mod folosind limbaje de programare precum C#, C, PHP sau C++, puteți crea și funcții agregate definite de utilizator. Care sunt folosite pentru a extinde funcțiile agregate în SQLite și folosiți-le pentru a crea funcții de agregare personalizate.

Rezumat

  • SQLite oferă un set cuprinzător de funcții încorporate care facilitează lucrul cu tabelele și coloanele bazei de date, așa cum am văzut. Puteți utiliza aceste funcții cu coloane, precum și cu valori literale în cadrul oricărei expresii din interogările dvs. SQL.
  • De asemenea, puteți utiliza funcția de lungime cu valori numerice pentru a obține lungimea valorii numerice.
  • UPPER și LOWER returnează valori nule dacă le transmiteți o valoare nulă.
  • Funcția SUBSTR returnează un anumit număr de șir, începând de la o anumită poziție.
  • REPLACE este folosit pentru a înlocui fiecare șir apărut pe alt șir cu un șir.
  • TRIM elimină spațiile goale de la începutul sau de la sfârșitul șirului.
  • Funcția ABS returnează valoarea absolută a unei valori numerice.
  • ROUND(X) convertește valorile zecimale sau coloanele X în numere întregi.
  • Funcția TYPEOF(X), din numele ei, returnează tipul de date al expresiei X.
  • Funcția LAST_INSERT_ROWID() returnează ROW_ID-ul ultimului rând inserat în orice tabel din baza de date.