SQLite Merkkijonofunktiot: REPLACE, SUBSTR, TRIM, ROUND
SQLite on oletusarvoisesti varustettu luettelolla sisäänrakennetuista toiminnoista SQLite kirjasto. Voit myös lisätä joitain muita mukautettuja toimintoja C-kielellä laajentaaksesi ydintoimintoja.
Huomaa, että kaikissa seuraavissa esimerkeissä sinun on suoritettava sqlite3.exe ja avattava yhteys mallitietokantaan juoksevana:
Vaihe 1) Tässä vaiheessa
- Avaa Oma tietokone ja siirry seuraavaan hakemistoon "C:\sqlite" ja sitten
- auki"sqlite3.exe"
Vaihe 2) Avaa tietokanta "TutorialsSampleDB.db" seuraavalla komennolla:
Nyt olet valmis suorittamaan mitä tahansa kysymys ja kokeile mitä tahansa seuraavissa osissa käytettyjä kyselyitä.
Löytää merkkijonon LENGTH SQLite
Merkkijonon pituuden selvittämiseksi käytä PITUUS(X), jossa X on merkkijonoarvo. Jos X on nolla-arvo, pituusfunktio palauttaa nolla-arvon.
Voit myös käyttää pituusfunktiota numeeristen arvojen kanssa saadaksesi numeerisen arvon pituuden.
Esimerkiksi:
Seuraavassa esimerkissä yritämme LENGTH-funktion syntaksia seuraavilla arvoilla:
SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);
Tämä antaa sinulle:
Tulos on seuraava:
- LENGTH('A string') palauttaa 8, joka on merkkijonon "A string" pituus.
- LENGTH(NULL) palauttaa nollan.
- PITUUS(20) palauttaa arvon 2, koska 20 on 2 pituutta.
- PITUUS(20.5) palauttaa 4; Liukuluku "." lasketaan merkiksi, joten sinulla on neljä merkkiä – 3 merkkiä, jotka vastaavat numeroiden pituutta. Plus yksi merkki liukulukulle ".".
Vaihto UPPER- ja LOWER-toiminnoilla
UPPER(X) palauttaa saman x-merkkijonon, mutta se edustaa kaikkia merkkijonomerkkejä isoilla kirjaimilla.
LOWER(X) palauttaa saman x-merkkijonon, mutta se edustaa kaikki merkkijonomerkit pienillä merkeillä.
UPPER ja LOWER palauttavat nolla-arvot, jos välität niille nolla-arvon.
Jos välität numeerisia arvoja kohtaan UPPER tai LOWER, molemmat palauttavat tarkan numeerisen arvon.
Esimerkiksi:
SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);
Tämä antaa sinulle:
Tulos on seuraava:
- UPPER('merkkijono') palauttaa merkkijonon "nauha" isolla kirjaimella "NAUHA".
- LOWER('A STRING') palauttaa merkkijonon "NAUHA"pienellä kirjaimella"nauha".
- UPPER(20), LOWER(20) palauttaa saman luvun, koska niillä ei ole vaikutusta numeroihin.
- UPPER(NULL), LOWER(NULL) palauttaa nollan, koska välitimme niille nolla-arvon.
SQLite SUBSTR-toiminto
SUBSTR-funktio palauttaa tietyn määrän merkkijonoa, alkaen tietystä paikasta. Voit välittää funktiolle kolme operandia, kuten "SUBSTR(X,Y,Z)" seuraavasti:
- X on jäsennettävä merkkijonoliteraali tai merkkijonosarake. Voit antaa kirjaimellisen arvon (staattinen arvo) tai sarakkeen nimen, jolloin arvo luetaan sarakkeen arvoista.
- Y on aloituskohta siitä alkavan merkkijonon vähentämiseksi.
- Z on jäsennettävien merkkien määrä tietystä kohdasta Y alkaen. Tämä numero on valinnainen, voit jättää sen huomiotta, ja tässä tapauksessa SQLite vähentää merkkijonon kohdasta Y ja kertoo merkkijonon lopun.
Esimerkiksi:
Seuraavassa kyselyssä käytämme SUBSTR-funktiota saadaksemme oppilaiden nimistä 4 merkkiä toisesta merkistä alkaen:
SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2) FROM Students;
Tämä antaa sinulle:
- SUBSTR(opiskelijan nimi, 2, 4) alamerkkijono "Opiskelijan nimi” alkaen toisesta merkistä ja palauttaa seuraavat 4 merkkiä.
- Kuitenkin funktiossa SUBSTR(opiskelijan nimi, 2) emme määrittäneet numeroa palautettaville merkeille, siksi SQLite palautti kaikki jäljellä olevat merkit "Opiskelijan nimi” alkaen toisesta paikasta.
Merkkijonon osien vaihtaminen kanssa SQLite REPLACE-toiminto
REPLACE käytetään korvaamaan jokainen toisessa merkkijonossa esiintyvä merkkijono merkkijonolla.
REPLACE(X, Y, Z) – X on syötemerkkijonon literaali tai sarake. Y on merkkijono, joka korvataan merkkijonolla Z. Huomaa, että se korvaa kaikki merkkijonon Y esiintymät Z:lla, ei vain yhtä.
Esimerkiksi:
Seuraavassa kyselyssä korvaamme kaikki merkkijonon esiintymät "xx"merkkijonolla"SQLite"
SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');
Tämä antaa sinulle
- Korvaa-toiminto korvasi kaikki merkkijonot "xx"merkkijonolla"SQLite".
- Tulos tulee siis olemaan "SQLite on erittäin kevyt, SQLite on helppo oppia."
Leikkaa tyhjiä kohtia SQLite TRIM-toiminto
TRIM poista tyhjät välilyönnit merkkijonon alusta tai lopusta. Se ei poista välilyöntejä merkkijonon keskeltä, vain alusta tai lopusta.
Esimerkiksi:
Seuraavassa kyselyssä käytämme TRIM-funktiota poistamaan tyhjät välilyönnit merkkijonon alusta ja lopusta.
Huomaa, että ketjutusoperaattori “||” käytetään lisäämään ylimääräinen ";" merkkijonon loppuun. Osoittaakseen, että tyhjät kohdat poistettiin mustasta ikkunasta.
SELECT TRIM(' SQLite is easy to learn ') || ';';
Tämä antaa sinulle:
- Huomaa, kuinka tyhjät välilyönnit poistettiin merkkijonon alusta ja lopusta ja korvattiin merkillä ' ; ' lopussa.
Absoluuttisten arvojen lukeminen SQLite ABS-toiminto
ABS-funktio palauttaa numeerisen arvon itseisarvon. Absoluuttinen arvo on numeerinen arvo ilman positiivista tai negatiivista etumerkkiä. ABS(X) palauttaa arvon, joka riippuu X:n arvosta seuraavasti:
- X:n itseisarvo, jos X on numeerinen arvo.
- NULL-arvo, jos X on nolla-arvo.
- "0.0" arvo, jos X on merkkijono.
Esimerkiksi:
Seuraavassa kyselyssä yritämme saada ABS-funktion avulla merkkijonon, luvun ja nolla-arvon itseisarvon:
SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);
Tämä antaa sinulle:
Tulokset seuraavasti:
- ABS(-2), ABS(+2) palauttaa arvon 2, koska 2 on absoluuttinen arvo sekä "-2" että "+2".
- ABS('a string') palauttaa arvon 0.0, koska välitit merkkijonoarvon, ei numeerista arvoa.
- ABS(null) palauttaa nollan, koska olet antanut sille nolla-arvon.
Arvojen pyöristys ROUND-toiminnolla sisään SQLite
Desimaaliluvut ovat numeroita, joissa on liukuluku ". siinä esimerkiksi "20.5", "8.65". Liukulukun vasemmalla puolella olevaa osaa kutsutaan kokonaislukuosaksi ja liukulukun oikealla olevaa osaa desimaaliosaksi.
Kokonaisluvut ovat niitä lukuja, joissa ei ole liukulukua. Esimerkiksi "20", "8".
ROUND(X) muuntaa desimaaliarvot tai sarakkeet X vain kokonaislukuiksi. Kokonaisluvun osa, joka on desimaalipilkun vasemmalla puolella oleva osa, palautetaan, ja kaikki desimaalipilkun oikealla puolella olevat numerot poistetaan.
Esimerkiksi:
Seuraavassa kyselyssä yritämme ROUND-funktiota eri vaihtoehdoilla:
SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');
Tämä antaa sinulle:
Tulos seuraavanlainen:
- ROUND(12.4354354) – palauttaa arvon "12", koska et määrittänyt numeroiden määrää. Niin, SQLite poistettu kaikki desimaaliosa.
- ROUND(12.4354354, 2) – palauttaa arvon "12.44", koska olet määrittänyt pyöristettäväksi vain 2 numeroa, jotka ovat kaksi numeroa desimaalipilkun oikealta puolelta.
- ROUND(NULL) – palauttaa nollan, koska olet antanut sille nolla-arvon.
- ROUND('a string') – palauttaa arvon "0.0", koska olet antanut sille merkkijonoarvon.
Lausekkeen tietotyypin etsiminen TYPEOF-funktiolla
Jos haluat selvittää sarakkeen tyypin tai kirjaimellisen arvon, voit tehdä sen funktiolla TYPEOF.
Funktio TYPEOF(X) palauttaa nimestään lausekkeen X tietotyypin. Se palauttaa merkkijonoarvon, joka ilmaisee X:n tietotyypin. Se palauttaa tietotyyppeihin perustuvan arvon, onko se "NULL"-arvo, todellinen, teksti, kokonaisluku jne.
Esimerkiksi:
Seuraavassa kyselyssä yritämme TYPEOF-funktiota erityyppisillä literaaliarvoilla:
SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');
Tämä antaa sinulle:
Palautetut tulokset ovat seuraavat:
- TYYPPI(null) – palauttaa nollan, koska olet antanut sille nolla-arvon.
- TYYPPI(12) – palauttaa kokonaisluvun, koska 12 on kokonaisluku.
- TYYPPI(12.5) – palauttaa REAL, koska 12.5 on reaaliluku.
- TYPEOF('merkkijono') – palauttaa tekstin, koska "merkkijono" on teksti.
Etsitään viimeksi lisätty tietue ko SQLite LAST_INSERT_ROWID
SQLite määrittää kokonaislukuavaimen (Id) kaikkien taulukoiden kaikille riveille. Tätä numeroa käytetään yksilöimään nämä rivit.
Kun LISÄÄT taulukkoon uuden rivin, SQLite antaa rowidille yksilöllisen arvon.
Jos taulukon ensisijainen avain on ilmoitettu vain yhdessä sarakkeessa ja kyseisen sarakkeen tietotyyppi on INTEGER, tätä sarakkeen arvoa käytetään rivinä.
LAST_INSERT_ROWID()-funktio palauttaa viimeksi lisätyn rivin ROW_ID:n missä tahansa tietokannan taulukossa. Huomaa, että se ei vaadi operandia.
Esimerkiksi:
Seuraavassa esimerkissä suoritamme funktion LAST_INSERT_ROWID() seuraavasti:
SELECT LAST_INSERT_ROWID();
Tämä antaa sinulle:
- LAST_INSERT_ROWID() palauttaa arvon 0, koska nykyisen tietokantayhteyden taulukoihin ei ole lisätty rivejä.
Lisätään nyt uusi opiskelija ja suoritetaan funktio LAST_INSERT_ROWID() uudelleen insert-käskyn jälkeen seuraavasti:
INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12'); SELECT LAST_INSERT_ROWID();
Tämä antaa sinulle:
- Kun olemme lisänneet uuden opiskelijan, jonka tunnus on 11, LAST_INSERT_ROWID() palauttaa viimeksi lisätyn rivitunnuksen, joka on 11.
Oman version hankkiminen SQLite kirjasto
Saadaksesi oman version SQLite kirjasto, sinun on kutsuttava SQLITE_VERSION()-funktio.
Esimerkiksi:
Selvitetään mikä on versio SQLite käytämme suorittamalla seuraavan komennon:
SELECT SQLITE_VERSION();
Tämä antaa sinulle:
SQLITE_VERSION() palauttaa 3.9.2:n, joka on versiosta SQLite käytämme.
Käyttäjän määrittämien funktioiden luominen ja käyttäjän määrittämien funktioiden yhdistäminen
Joillekin käyttäjille SQLite ydintoiminnot ovat rajalliset. Heidän on ehkä lisättävä mukautettuja toimintoja mukautettuja tarpeitaan varten.
SQLite ei tue käyttäjän määrittämien funktioiden luomista. Toisin kuin muissa tietokannan hallintajärjestelmissä, et voi luoda käyttäjän määrittämiä toimintoja SQLite suoraan.
Voit kuitenkin luoda funktion käyttämällä ohjelmointikieliä, kuten C#, C, PHP tai C++ ja liitti sen toiminnon ytimeen SQLite toiminnot SQLite itse kirjasto käyttämällä "sqlite3_create_function”-toiminto. Sitten voit käyttää niitä uudelleen tietokannassasi.
Esimerkiksi:
Seuraavassa esimerkissä luomme käyttäjän määrittämän funktion käyttämällä C# ohjelmointikieli ja lisää se siihen SQLite toiminnot:
[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)] public class DoubleValue: SQLiteFunction { public override object Invoke(object[] args) { return args[0] * 2; } }
Tämä koodinpätkä on kirjoitettu C# ohjelmointikieli; se luo C#-funktion käyttämällä C#-koodia.
Toiminnon nimi on "DoubleArvo” se ottaa yhden parametrin ja palauttaa sen arvon kerrottuna kahdella.
Huomaa, että C# lisää tämän funktion automaattisesti SQLite. Kaikki mitä tarvitset on kääntää ja suorittaa tämä koodi. Sitten C# lisää kyseisen funktion samalla nimellä luetteloon SQLite toimintoja. Sitten voit käyttää tätä toimintoa SQLite.
Samalla tavalla ohjelmointikielillä, kuten C#, C, PHP tai C++, voit myös luoda käyttäjän määrittämiä koostefunktioita. Joita käytetään laajentamaan aggregaattitoimintoja SQLite ja käytä niitä mukautettujen koontifunktioiden luomiseen.
Yhteenveto
- SQLite tarjoaa kattavan joukon sisäänrakennettuja toimintoja, jotka tekevät tietokannan taulukoiden ja sarakkeiden käsittelystä helppoa, kuten näimme. Voit käyttää näitä toimintoja sarakkeiden sekä kirjaimellisten arvojen kanssa missä tahansa lausekkeessa SQL-kyselyissäsi.
- Voit myös käyttää pituusfunktiota numeeristen arvojen kanssa saadaksesi numeerisen arvon pituuden.
- UPPER ja LOWER palauttavat nolla-arvot, jos välität niille nolla-arvon.
- SUBSTR-funktio palauttaa tietyn määrän merkkijonoa, alkaen tietystä paikasta.
- REPLACE käytetään korvaamaan jokainen toisessa merkkijonossa esiintyvä merkkijono merkkijonolla.
- TRIM poistaa tyhjät välilyönnit merkkijonon alusta tai lopusta.
- ABS-funktio palauttaa numeerisen arvon itseisarvon.
- ROUND(X) muuntaa desimaaliarvot tai sarakkeet X vain kokonaislukuiksi.
- Funktio TYPEOF(X) palauttaa nimestään lausekkeen X tietotyypin.
- LAST_INSERT_ROWID()-funktio palauttaa viimeksi lisätyn rivin ROW_ID:n missä tahansa tietokannan taulukossa.