Golang SQLite -esimerkkejä

Golang Sqlite Esimerkkeja



Golang on avoimen lähdekoodin ohjelmointikieli. Se tukee erilaisia ​​tietokantatyökaluja. SQLite on suosittu relaatiotietokantamoottori, ja Golangilla on tietokanta/SQL-paketti, jota voidaan käyttää yhteyden muodostamiseen SQLite-tietokantaan ja erityyppisten tietokantatehtävien suorittamiseen. Näytetään tapa muodostaa yhteys SQLite-tietokantaan ja suorittaa erilaisia ​​tietokantatoimintoja, kuten taulukon luominen, tietueiden lisääminen taulukkoon, tietojen lukeminen taulukosta, taulukon tietojen päivittäminen ja tietueiden poistaminen taulukosta. tässä opetusohjelmassa Golang-skriptillä.

Edellytykset:

Sinun on suoritettava seuraavat tehtävät ennen kuin harjoittelet tämän opetusohjelman esimerkkejä:

A. Asenna Golang-kieli järjestelmään, jos sitä ei ole asennettu aiemmin. Suorita seuraava komento tarkistaaksesi asennettu Golangin versio:







$ go -versio



B. Asenna sqlite3 järjestelmään, jos sitä ei ole asennettu aiemmin. Sqlite3 on asennettu oletusarvoisesti Ubuntu 20+:lle. Suorita seuraava komento tarkistaaksesi sqlite3:n asennetun version:



$ sqlite3 --versio





C. Luo seuraavat komennot luodaksesi 'golang-sqlite'-nimisen kansion ja siirry kansioon, johon SQLite-tietokantatiedosto ja Golang-tiedosto tallennetaan:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Suorita seuraava komento ladataksesi tarvittava Golang-paketti käyttääksesi SQLitea Golangin kanssa:



$ mene hakemaan github.com/mattn/go-sqlite3

Tietokantatoiminnot Golangilla ja SQLitella

Tässä opetusohjelmassa näytetään perustietokantatoiminnot SQLite-tietokantaa ja Golang-skriptiä käyttäen. Tässä opetusohjelmassa käsiteltyjen tietokantatehtävien luettelo mainitaan seuraavassa:

  1. Luo SQLite-tietokanta
  2. Luo SQLite-tietokantayhteys
  3. Luo uusi taulukko
  4. Lisää tiedot taulukkoon
  5. Lue tiedot taulukosta
  6. Päivitä taulukon tiedot
  7. Poista tiedot taulukosta

Luo SQLite-tietokanta Golangin avulla

Luo Golang-tiedosto seuraavalla komentosarjalla, joka luo uuden SQLite-tietokantatiedoston nimeltä 'test.db'. Skriptiin tuodaan neljä moduulia. 'fmt'-moduulia käytetään tulosteen tulostamiseen terminaalissa. 'Loki'-moduulia käytetään ohjelman keskeyttämiseen, kun jokin virhe ilmenee. 'os'-moduulia käytetään SQLite-tietokannan luomiseen ja virheen käsittelemiseen. Go-sqlite3-moduulia käytetään yhteyksien luomiseen SQLite-tietokantaan Golangin kautta. 'os'-moduulin Create()-menetelmää käytetään tässä luomaan SQLite-tietokanta. Jos tietokanta on luotu onnistuneesti, tulostetaan onnistumisviesti päätteeseen. Muuten ohjelma keskeytyy. Close()-menetelmää kutsutaan sulkemaan tietokantayhteys.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'sinä'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi SQLite-tietokanta
db , err := sinä . Luoda ( 'testi.db' )
//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Tulosta menestysviesti
fmt . Println ( 'Tietokanta on luotu.' )
}
//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'db_connect.go'-tiedosto suorittamalla seuraava komento:

$ go ajaa db_connect.go

Suorita 'ls'-komento tarkistaaksesi, onko 'test.db'-tietokantatiedosto luotu vai ei:

$ ls

Seuraava tuloste näyttää, että onnistumisviesti 'Tietokannan luonti' tulostetaan tulosteeseen ja 'test.db'-tiedosto luodaan nykyiseen sijaintiin:

Yhdistä SQLite-tietokantaan Golangin avulla

Luo Golang-tiedosto seuraavalla komentosarjalla, joka avaa 'test.db'-tietokantatiedoston ja muodosta yhteys tietokantaan. Golangin tietokanta/SQL-moduuli tuodaan tänne tätä tehtävää varten. Open()-menetelmää käytetään tässä muodostamaan yhteys olemassa olevaan SQLite-tietokantaan. Jos tietokanta on yhdistetty onnistuneesti, päätelaitteeseen tulostetaan onnistumisviesti. Muuten ohjelma keskeytyy.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'tietokanta/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi SQLite-tietokanta
db , err := sql . Avata ( 'sqlite3' , 'testi.db' )
//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Tulosta menestysviesti
fmt . Println ( 'Tietokanta on yhdistetty onnistuneesti.' )
}
//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'db_connect2.go'-tiedosto suorittamalla seuraava komento:

$ go ajaa db_connect2.go

Seuraava tulos osoittaa, että 'test.db'-tietokantatiedosto on avattu ja yhdistetty onnistuneesti. Onnistumisviesti 'Tietokanta on yhdistetty onnistuneesti' tulostetaan tulosteeseen:

Luo taulukko SQLite-tietokantaan Golangin avulla

Luo Golang-tiedosto seuraavalla komentosarjalla, joka luo 'members'-nimisen tietokantataulukon 'test.db'-tietokantatiedoston sisään. Exec()-menetelmää käytetään tässä CREATE TABLE -kyselyn suorittamiseen, joka luo 'jäsenet'-taulukon, jossa on kuusi kenttää ja ensisijainen avain. Jos taulukko on luotu onnistuneesti tietokantaan, tulostetaan onnistumisviesti. Muuten ohjelma keskeytyy.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'tietokanta/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi sqlite-tietokanta
db , err := sql . Avata ( 'sqlite3' , 'testi.db' )
//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
konst kysely merkkijono = `
LUO TAULUKO, JOS EI OLE OLEMASSA jäseniä (
id INTEGER NOT NULL PRIMARY KEY,
nimi CHAR(40) NOT NULL,
mtype CHAR(100) EI NULL,
sähköposti CHAR(50),
osoite TEXT NOT NULL,
mobiili CHAR(25) NOT NULL);'.

_ , err := db . Exec ( kysely );

jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Tulosta menestysviesti
fmt . Println ( 'Taulukon luominen onnistui.' )
}

}
//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'create_table.go' -tiedosto suorittamalla seuraava komento:

$ go ajaa create_table.go

Seuraava tulos osoittaa, että taulukko on luotu onnistuneesti tietokantaan. Onnistumisviesti 'Taulukko on luotu onnistuneesti' tulostetaan päätteeseen:

Voit kirjautua sisään SQLiteen tarkistaaksesi, onko taulukko luotu tietokantaan vai ei.

Suorita seuraava komento suorittaaksesi SQLite test.db-tietokannan kanssa:

$ sqlite3 test.db

Suorita '.tables' SQLite-komento SQLite-komentokehotteessa tarkistaaksesi tietokannan taulukoiden nimet:

sqlite3 > .tables

Seuraava tulos osoittaa, että tietokanta sisältää 'jäsenet'-taulukon, joka on luotu suorittamalla Golang-skripti:

Lisää tietueet SQLite-taulukkoon Golangin avulla

Taulukkoon voidaan lisätä useita tietueita suorittamalla INSERT-kysely useita kertoja tai lisäämällä useita arvoja yhteen INSERT-kyselyyn. Luo Golang-tiedosto seuraavalla komentosarjalla, joka lisää kolme tietuetta 'test.db'-tietokantatiedoston 'jäsenet'-taulukkoon yhdellä INSERT-kyselyllä. Exec()-menetelmää käytetään tässä INSERT-kyselyn suorittamiseen. Jos tietueet on lisätty taulukkoon onnistuneesti, tulostetaan onnistumisviesti. Muuten ohjelma keskeytyy.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'tietokanta/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi SQLite-tietokanta
db , err := sql . Avata ( 'sqlite3' , 'testi.db' )
//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
konst kysely merkkijono = `
INSERT INTO jäsenet (id, nimi, mtype, sähköpostiosoite, osoite, matkapuhelin)
ARVOT (1, 'Nehal Ahmed', 'Hopea', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, 'Abir Chowdhury', 'Gold', 'abir@gmail.com','102, Mirpur 10, Dhaka','01994563423'),
(3, 'Mirza Abbas', 'Hopea', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');`


//Suorita kysely
_ , err := db . Exec ( kysely );

jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Tulosta menestysviesti
fmt . Println ( 'Tietueiden lisäys onnistui.' )
}
}

//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'insert_table.go' -tiedosto suorittamalla seuraava komento:

$ go suorita insert_table.go

Seuraava tulos osoittaa, että tietueet on lisätty taulukkoon onnistuneesti. Onnistumisviesti 'Tietuet lisätty onnistuneesti' tulostetaan tulosteeseen:

Voit kirjautua sisään SQLiteen tarkistaaksesi, onko nämä kolme tietuetta lisätty onnistuneesti 'jäsenet' -taulukkoon.

Suorita seuraava komento suorittaaksesi SQLite test.db-tietokannan kanssa:

$ sqlite3 test.db

Suorita seuraava SELECT-kysely lukeaksesi 'jäsenet'-taulukon kaiken sisällön:

sqlite3 > SELECT * FROM jäseniltä ;

Seuraava tulos osoittaa, että 'jäsenet' -taulukko sisältää kolme Golang-skriptillä lisättyä tietuetta:

Lue SQLite-taulukon tiedot Golangilla

Luo Golang-tiedosto seuraavalla komentosarjalla, joka lukee 'jäsenet' -taulukon tietueet. Sinun on määritettävä muuttujat Golangissa tallentaaksesi arvot, jotka palautetaan SELECT-kyselystä. Tässä komentosarjassa viisi kenttää haetaan 'jäsenet'-taulukosta SELECT-kyselyllä. Joten skriptiin on määritetty viisi muuttujaa, jotka tallentavat 'jäsenet' -taulukon viiden kentän arvot, joissa 'mtype'-kentän arvo on 'Silver'. Query()-menetelmää käytetään tässä SELECT-kyselyn suorittamiseen. Seuraavaksi 'for'-silmukkaa käytetään SELECT-kyselyn palauttaman tulosjoukon lukemiseen. Printf()-funktiota käytetään tulosjoukon muotoiltujen arvojen tulostamiseen.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'tietokanta/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi SQLite-tietokanta
db , err := sql . Avata ( 'sqlite3' , 'testi.db' )

//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {

//Ilmoita muuttujat riviarvojen tallentamiseksi
oli id int
oli nimi merkkijono
oli mtype merkkijono
oli osoite merkkijono
oli mobiili merkkijono
konst kysely merkkijono = `VALITSE id, nimi, mtype, osoite, matkapuhelin
FROM jäseniltä
WHERE mtype = 'Hopea';`


//Suorita kysely
rivit , err := db . Kysely ( kysely );

jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {

//Tulosta menestysviesti
fmt . Println ( 'Kaikkien hopeajäsenten tiedot:' )
fmt . Println ( 'ID \t Nimi \t \t Jäsentyyppi \t Osoite \t \t Yhteysnumero' )
varten rivit . Seuraava () {
rivit . Skannata ( &id , &nimi , &mtype , &osoite , &mobiili )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , id , nimi , mtype , osoite , mobiili )
}
}
}
//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'select_table.go'-tiedosto suorittamalla seuraava komento:

$ go suorita select_table.go

'Jäsenet'-taulukossa on kaksi tietuetta, jonka 'mtype'-kentässä on 'Silver'. Seuraava tulos näyttää kaksi 'jäsenet'-taulukon tietuetta, jotka SELECT-kysely palauttaa:

Päivitä SQLite-taulukon tiedot Golangilla

Luo Golang-tiedosto seuraavalla skriptillä, joka muuttaa 'members'-taulukon mobiilikentän arvon, joka sisältää id-arvon 2. Exec()-menetelmää käytetään tässä UPDATE-kyselyn suorittamiseen. Jos tietueen päivitys onnistuu taulukossa, tulostetaan onnistumisviesti. Muuten ohjelma keskeytyy.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'tietokanta/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi SQLite-tietokanta
db , err := sql . Avata ( 'sqlite3' , 'testi.db' )
//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
konst kysely merkkijono = `
PÄIVITYS jäsenet SET mobile = '018563452390' WHERE id = 2;`

_ , err := db . Exec ( kysely );

jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Tulosta menestysviesti
fmt . Println ( 'Tietueen päivitys onnistui.' )
}
}
//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'update_table.go' -tiedosto suorittamalla seuraava komento:

$ go suorita update_table.go

'Jäsenet'-taulukon toisella rivillä on id-arvo 2. Seuraava tulos osoittaa, että taulukon tietue on päivitetty onnistuneesti. Onnistumisviesti 'Tietueen päivitys onnistui' tulostetaan päätteeseen:

Voit kirjautua sisään SQLiteen tarkistaaksesi, onko jäsentaulukon tietueita päivitetty vai ei.

Suorita seuraava komento suorittaaksesi SQLite test.db-tietokannan kanssa:

$ sqlite3 test.db

Suorita seuraava SELECT-kysely lukeaksesi 'jäsenet'-taulukon kaiken sisällön:

sqlite3 > SELECT * FROM jäseniltä ;

Mobiilikentän arvo 2 nd jäsentaulukon tietue on '01994563423' ennen komentosarjan suorittamista. Seuraava tulos osoittaa, että mobiilikentän arvo 2 nd jäsentaulukon tietue muutetaan muotoon '018563452390' komentosarjan suorittamisen jälkeen:

Poista SQLite-taulukon tiedot Golangilla

Luo Golang-tiedosto seuraavalla skriptillä, joka poistaa 3 rd 'members'-taulukon tietue, joka sisältää id-arvon 3. Exec()-menetelmää käytetään tässä DELETE-kyselyn suorittamiseen. Jos tietueen poistaminen taulukosta onnistuu, tulostetaan onnistumisviesti. Muuten ohjelma keskeytyy.

paketti pää

//Tuo tarvittavat moduulit
tuonti (
'fmt'
'Hirsi'
'tietokanta/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pää () {

//Luo uusi SQLite-tietokanta
db , err := sql . Avata ( 'sqlite3' , 'testi.db' )
//Tarkista mahdolliset virheet
jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Määritä poistokysely
konst kysely merkkijono = `POISTA jäsenistä WHERE id = 3;`
//Suorita kysely
_ , err := db . Exec ( kysely );

jos err != nolla {
//Lisää virheilmoitus lokiin
Hirsi . Kohtalokas ( err )
} muu {
//Tulosta menestysviesti
fmt . Println ( 'Tietueen poisto onnistui.' )
}
}
//Sulje tietokantayhteys
db . kiinni ()
}

Suorita 'delete_table.go'-tiedosto suorittamalla seuraava komento:

$ go suorita delete_table.go

Seuraava tulos osoittaa, että 3 rd 'Jäsenet'-taulukon tietue on poistettu onnistuneesti. Onnistumisviesti 'Tietue poistettu onnistuneesti' tulostetaan päätteeseen:

Voit kirjautua sisään SQLiteen tarkistaaksesi, onko jäsentaulukon tietueita poistettu vai ei.

Suorita seuraava komento suorittaaksesi SQLite test.db-tietokannan kanssa:

$ sqlite3 test.db

Suorita seuraava SELECT-kysely lukeaksesi 'jäsenet'-taulukon kaiken sisällön:

sqlite3 > SELECT * FROM jäseniltä ;

Seuraava tulos osoittaa, että 3:n arvo rd jäsentaulukon tietue poistetaan komentosarjan suorittamisen jälkeen ja kaksi muuta tietuetta tulostetaan tulosteeseen:

Johtopäätös

Sekä SQLite että Golang ovat nyt suosittuja yksinkertaisuuden ja kevyiden ominaisuuksiensa vuoksi. Mikä tahansa yksinkertainen tietokantapohjainen sovellus voidaan toteuttaa helposti näiden työkalujen avulla. Suurin osa kaikista sovelluksista on toteuttaa CRUD-toiminto. Menetelmät CRUD-toiminnan toteuttamiseksi Golang-skriptin ja SQLite-tietokannan avulla selitetään tässä opetusohjelmassa käyttämällä useita Golang-tiedostoja. Jos olet uusi Go-kielen ja SQLite-tietokannan oppija, tämä opetusohjelma auttaa sinua oppimaan nämä perusteista.