SQLite Stringifunktsioonid: REPLACE, SUBSTR, TRIM, ROUND
SQLite on vaikimisi varustatud sisseehitatud funktsioonide loendiga SQLite raamatukogu. Põhifunktsioonide laiendamiseks saate C-keele abil lisada ka muid kohandatud funktsioone.
Pange tähele, et kõigi järgmiste näidete puhul peate käivitama faili sqlite3.exe ja avama ühenduse näidisandmebaasiga voolavana:
Step 1) Selles sammus
- Avage Minu arvuti ja liikuge järgmisse kataloogi "C:\sqlite" ja siis
- avatud"sqlite3.exe"
Step 2) Ava andmebaas "TutorialsSampleDB.db” järgmise käsuga:
Nüüd olete valmis jooksma mis tahes päringu ja proovige järgmistes jaotistes kasutatud päringuid.
Stringi LENGTH leidmine SQLite
Stringi pikkuse leidmiseks kasutage PIKKUS(X), kus X on stringi väärtus. Kui X on nullväärtus, tagastab pikkusfunktsioon nullväärtuse.
Arvväärtuse pikkuse saamiseks võite kasutada ka pikkusfunktsiooni arvväärtustega.
Näide:
Järgmises näites proovime funktsiooni LENGTH süntaksit järgmiste väärtustega:
SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);
See annab teile:
Tulemus on järgmine:
- LENGTH('string') tagastab 8, mis on stringi "A string" pikkus.
- LENGTH(NULL) tagastab nulli.
- LENGTH(20) tagastab 2, sest 20 on 2 pikkust.
- PIKKUS(20.5) tagastab 4; Ujukoma "." loetakse tähemärgiks, seega on teil neli märki – 3 tähemärki, mis vastavad numbrite pikkusele. Pluss veel üks märk ujukoma "." jaoks.
Suurtähtede vahetamine funktsiooniga UPPER ja LOWER
UPPER(X) tagastab sama x-stringi, kuid see tähistab kõiki stringi märke suurtähtedega.
LOWER(X) tagastab sama x-stringi, kuid see esindab kõiki stringi märke väikeste märkidena.
UPPER ja LOWER tagastavad nullväärtused, kui edastate neile nullväärtuse.
Kui edastate arvväärtused UPPER või LOWER, tagastavad mõlemad täpse arvulise väärtuse.
Näide:
SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);
See annab teile:
Tulemus on järgmine:
- UPPER('string') tagastab stringi "string" suure algustähega "STRING".
- LOWER('A STRING') tagastab stringi "STRING"väikeste tähtedega"string".
- UPPER(20), LOWER(20) tagastab sama arvu, kuna need ei mõjuta numbreid.
- UPPER(NULL), LOWER(NULL) tagastab nulli, kuna andsime neile nullväärtuse.
SQLite SUBSTR Funktsioon
Funktsioon SUBSTR tagastab kindla arvu stringi, alustades kindlast positsioonist. Funktsioonile saate edastada kolm operandi, näiteks "SUBSTR(X,Y,Z)” järgmiselt:
- X on stringi literaal või sõelutav stringi veerg. Saate edastada literaalse väärtuse (staatiline väärtus) või veeru nime ja sel juhul loetakse väärtus veeru väärtustest.
- Y on lähteasend sellest algava stringi lahutamiseks.
- Z on sõelumiseks vajalike märkide arv alates konkreetsest kohast Y. See arv on valikuline, võite seda ignoreerida ja sel juhul SQLite lahutab stringi alates positsioonist Y ütleb stringi lõppu.
Näide:
Järgmises päringus kasutame funktsiooni SUBSTR, et saada õpilaste nimedest 4 märki alates teisest märgist:
SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2) FROM Students;
See annab teile:
- SUBSTR(õpilase nimi, 2, 4) alamstring string "Õpilase Nimi” alustades teisest märgist, ja tagastada järgmised 4 märki.
- Funktsioonis aga SUBSTR(õpilase nimi, 2) me ei määranud tagastatavate märkide jaoks numbrit, sellepärast SQLite tagastas kõik ülejäänud tähemärgid "Õpilase Nimi” alustades teisest positsioonist.
Stringi osade muutmine koos SQLite REPLACE Funktsioon
REPLACE kasutatakse iga teise stringi stringi asendamiseks stringiga.
REPLACE(X, Y, Z) – X on sisendstringi literaal või veerg. Y on string, mis tuleb asendada stringiga Z. Pange tähele, et see asendab kõik stringi Y esinemised Z-ga, mitte ainult ühe.
Näide:
Järgmises päringus asendame kõik stringi "xx" stringiga "SQLite"
SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');
See annab teile
- Asendamisfunktsioon asendas kõik stringid "xx" stringiga "SQLite".
- Nii et väljund saab olema "SQLite on väga kerge, SQLite on lihtne õppida."
Tühjade kohtade kärpimine SQLite TRIM-funktsioon
TRIM eemaldage tühjad tühikud stringi algusest või lõpust. See ei eemalda tühikuid stringi keskelt, vaid ainult algusest või lõpust.
Näide:
Järgmises päringus kasutame stringi algusest ja lõpust tühikute eemaldamiseks funktsiooni TRIM.
Pange tähele, et konkatenatsioonioperaator “||” kasutatakse täiendava ";" lisamiseks stringi lõpuni. Et näidata teile, et mustast aknast eemaldati tühjad kohad.
SELECT TRIM(' SQLite is easy to learn ') || ';';
See annab teile:
- Pange tähele, kuidas stringi algusest ja lõpust eemaldati tühikud, mis asendati sõnaga ' ; ' lõpus.
Absoluutväärtuste lugemine koos SQLite ABS funktsioon
Funktsioon ABS tagastab arvväärtuse absoluutväärtuse. Absoluutväärtus on arvuline väärtus ilma positiivse või negatiivse märgita. ABS(X) tagastab väärtuse, mis sõltub X väärtusest järgmiselt:
- X absoluutväärtus, kui X on arvväärtus.
- NULL väärtus, kui X on nullväärtus.
- Väärtus "0.0", kui X on string.
Näide:
Järgmises päringus proovime saada ABS-funktsiooni abil stringi, arvu ja nullväärtuse absoluutväärtust:
SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);
See annab teile:
Tulemused järgmised:
- ABS(-2), ABS(+2) tagastab 2, kuna 2 on absoluutväärtus nii "-2" kui ka "+2" jaoks.
- ABS('string') tagastab väärtuse 0.0, kuna edastasite stringi väärtuse, mitte numbrilise väärtuse.
- ABS(null) tagastab nulli, kuna andsite sellele nullväärtuse.
Väärtuste ümardamine funktsiooniga ROUND sisse SQLite
Kümnendarvud on ujukomaga "." sellel näiteks "20.5", "8.65". Ujukoma vasakpoolset osa nimetatakse täisarvuliseks osaks ja ujukoma parempoolset osa on kümnendosa.
Täisarvud on need arvud, millel pole ujukoma. Näiteks "20", "8".
ROUND(X) teisendab kümnendväärtused või veerud X ainult täisarvudeks. Tagatakse täisarvuline osa, mis on koma vasakpoolne osa, ja kõik koma paremal olevad numbrid eemaldatakse.
Näide:
Järgmises päringus proovime funktsiooni ROUND erinevate võimalustega:
SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');
See annab teile:
Tulemus selline:
- ROUND(12.4354354) – tagastab väärtuse "12", kuna te ei määranud numbrite arvu. Niisiis, SQLite eemaldati kõik kümnendkohad.
- ROUND(12.4354354, 2) – tagastab väärtuse "12.44", kuna määrasite ümardamiseks ainult 2 numbrit, mis on kaks numbrit koma paremalt.
- ROUND(NULL) – tagastab nulli, kuna andsite sellele nullväärtuse.
- ROUND('string') – tagastab väärtuse "0.0", kuna andsite sellele stringi väärtuse.
Avaldise andmetüübi leidmine funktsiooni TYPEOF abil
Kui soovite teada saada veeru tüüpi või literaalset väärtust, saate selleks kasutada funktsiooni TYPEOF.
Funktsioon TYPEOF(X) tagastab oma nime järgi avaldise X andmetüübi. See tagastab stringi väärtuse, mis näitab X andmetüüpi. Ta tagastab andmetüüpidel põhineva väärtuse, olenemata sellest, kas see on NULL väärtus, reaalne, tekst, täisarv, … jne.
Näide:
Järgmises päringus proovime funktsiooni TYPEOF erinevat tüüpi literaalväärtustega:
SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');
See annab teile:
Tagastatud tulemused on järgmised:
- TYPEOF(null) – tagastab nulli, kuna andsite sellele nullväärtuse.
- TYPEOF(12) – tagastab täisarvu, kuna 12 on täisarv.
- TYPEOF(12.5) – tagastab REAL, kuna 12.5 on reaalarv.
- TYPEOF('string') – tagastab teksti, kuna "string" on tekst.
Viimati sisestatud kirje leidmine rakendusega SQLite LAST_INSERT_ROWID
SQLite määrab kõikide tabelite kõikidele ridadele täisarvu võtme (Id). Seda numbrit kasutatakse nende ridade ainulaadseks tuvastamiseks.
Kui LISATE tabelisse uue rea, SQLite määrab rowidile kordumatu väärtuse.
Kui tabelis on primaarvõti deklareeritud ainult ühes veerus ja see veerg on andmetüübiga INTEGER, kasutatakse seda veeru väärtust kui rida.
Funktsioon LAST_INSERT_ROWID() tagastab andmebaasi mis tahes tabelis viimati sisestatud rea ROW_ID. Pange tähele, et see ei võta operandi.
Näide:
Järgmises näites käivitame funktsiooni LAST_INSERT_ROWID() järgmiselt:
SELECT LAST_INSERT_ROWID();
See annab teile:
- LAST_INSERT_ROWID() tagastab 0, kuna praeguses andmebaasiühenduses pole ühtegi tabelisse lisatud rida.
Nüüd sisestame uue õpilase ja käivitame pärast insert-lauset uuesti funktsiooni LAST_INSERT_ROWID() järgmiselt:
INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12'); SELECT LAST_INSERT_ROWID();
See annab teile:
- Pärast seda, kui oleme sisestanud uue õpilase ID-ga 11, tagastab LAST_INSERT_ROWID() viimati lisatud rea ID, mis on 11.
Teie versiooni hankimine SQLite raamatukogu
Oma versiooni hankimiseks SQLite raamatukogu, peate kutsuma funktsiooni SQLITE_VERSION().
Näide:
Uurime välja, mis on selle versioon SQLite kasutame, käivitades järgmise käsu:
SELECT SQLITE_VERSION();
See annab teile:
SQLITE_VERSION() tagastab 3.9.2, mis on selle versioon SQLite me kasutame.
Kasutaja määratud funktsioonide loomine ja kasutaja määratud funktsioonide koondamine
Mõne kasutaja jaoks on SQLite põhifunktsioonid on piiratud. Võimalik, et nad peavad oma kohandatud vajaduste jaoks lisama kohandatud funktsioone.
SQLite ei toeta kasutaja määratud funktsioonide loomist. Erinevalt teistest andmebaasihaldussüsteemidest ei saa te luua kasutaja määratud funktsioone SQLite otse.
Siiski saate luua funktsiooni, kasutades programmeerimiskeeli nagu C#, C, PHP või C++ ja kinnitas selle funktsiooni südamikuga SQLite funktsioonid SQLite raamatukogu ise, kasutades "sqlite3_create_function” funktsioon. Seejärel saate neid oma andmebaasis uuesti kasutada.
Näide:
Järgmises näites loome kasutaja määratud funktsiooni kasutades C# programmeerimiskeel ja lisage see SQLite funktsioonid:
[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)] public class DoubleValue: SQLiteFunction { public override object Invoke(object[] args) { return args[0] * 2; } }
See koodilõik on kirjutatud C# programmeerimiskeel; see loob C#-koodi kasutades funktsiooni C#.
Funktsiooni nimi on "DoubleVäärtus” võtab see ühe parameetri ja tagastab selle väärtuse, mis on korrutatud 2-ga.
Pange tähele, et C# lisab selle funktsiooni automaatselt SQLite. Kõik, mida vajate, on selle koodi kompileerimine ja käivitamine. Seejärel lisab C# selle sama nimega funktsiooni loendisse SQLite funktsioonid. Seejärel saate seda funktsiooni kasutada SQLite.
Samamoodi kasutades programmeerimiskeeli nagu C#, C, PHP või C++, saate luua ka kasutaja määratud koondfunktsioone. Mida kasutatakse koondfunktsioonide laiendamiseks SQLite ja kasutage neid kohandatud koondfunktsioonide loomiseks.
kokkuvõte
- SQLite pakub terviklikku sisseehitatud funktsioonide komplekti, mis muudavad andmebaasi tabelite ja veergudega töötamise lihtsaks, nagu nägime. Saate neid funktsioone kasutada nii veergude kui ka literaalsete väärtustega mis tahes avaldises oma SQL-päringutes.
- Arvväärtuse pikkuse saamiseks võite kasutada ka pikkusfunktsiooni arvväärtustega.
- UPPER ja LOWER tagastavad nullväärtused, kui edastate neile nullväärtuse.
- Funktsioon SUBSTR tagastab kindla arvu stringi, alustades kindlast positsioonist.
- REPLACE kasutatakse iga teise stringi stringi asendamiseks stringiga.
- TRIM eemaldab tühjad tühikud stringi algusest või lõpust.
- Funktsioon ABS tagastab arvväärtuse absoluutväärtuse.
- ROUND(X) teisendab kümnendväärtused või veerud X ainult täisarvudeks.
- Funktsioon TYPEOF(X) tagastab oma nime järgi avaldise X andmetüübi.
- Funktsioon LAST_INSERT_ROWID() tagastab andmebaasi mis tahes tabelis viimati sisestatud rea ROW_ID.