Primeri Golang SQLite

Primeri Golang Sqlite



Golang je odprtokodni programski jezik. Podpira različne vrste orodij za baze podatkov. SQLite je priljubljen mehanizem relacijske baze podatkov in Golang ima paket baze podatkov/SQL, ki se lahko uporablja za povezavo z bazo podatkov SQLite in izvajanje različnih vrst nalog baze podatkov. Prikazan je način povezovanja z bazo podatkov SQLite in izvajanje različnih vrst operacij baze podatkov, kot so ustvarjanje tabele, vstavljanje zapisov v tabelo, branje podatkov iz tabele, posodabljanje podatkov tabele in brisanje zapisov iz tabele. v tej vadnici z uporabo skripta Golang.

Predpogoji:

Pred vadbo primerov v tej vadnici morate opraviti naslednje naloge:

A. Namestite jezik Golang v sistem, če še ni nameščen. Zaženite naslednji ukaz, da preverite nameščeno različico Golanga:







različica $ go



B. Namestite sqlite3 v sistem, če še ni bil nameščen. Sqlite3 je privzeto nameščen v Ubuntu 20+. Zaženite naslednji ukaz, da preverite nameščeno različico sqlite3:



$ sqlite3 --različica





C. Zaženite naslednje ukaze, da ustvarite mapo z imenom »golang-sqlite« in pojdite v to mapo, kjer bosta shranjeni datoteka zbirke podatkov SQLite in datoteka Golang:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Zaženite naslednji ukaz za prenos potrebnega paketa Golang za uporabo SQLite z Golangom:



$ pojdite na github.com/mattn/go-sqlite3

Operacije baze podatkov z uporabo Golanga in SQLite

V tej vadnici so prikazane osnovne operacije baze podatkov z uporabo baze podatkov SQLite in skripta Golang. Seznam nalog baze podatkov, ki so zajete v tej vadnici, je omenjen v nadaljevanju:

  1. Ustvarite bazo podatkov SQLite
  2. Vzpostavite povezavo z bazo podatkov SQLite
  3. Ustvarite novo tabelo
  4. Vstavite podatke v tabelo
  5. Preberite podatke iz tabele
  6. Posodobite podatke tabele
  7. Izbrišite podatke iz tabele

Ustvarite bazo podatkov SQLite z uporabo Golanga

Ustvarite datoteko Golang z naslednjim skriptom, ki ustvari novo datoteko baze podatkov SQLite z imenom »test.db«. V skript so uvoženi štirje moduli. Modul “fmt” se uporablja za tiskanje izhoda v terminalu. Modul “log” se uporablja za prekinitev programa, ko se pojavi kakršna koli napaka. Modul “os” se uporablja za ustvarjanje baze podatkov SQLite in obravnavanje napake. Modul »go-sqlite3« se uporablja za vzpostavljanje povezav z bazo podatkov SQLite prek Golanga. Metoda Create() modula “os” se tukaj uporablja za ustvarjanje baze podatkov SQLite. Če je baza podatkov uspešno ustvarjena, se v terminalu natisne sporočilo o uspehu. V nasprotnem primeru bo program prekinjen. Metoda Close() se kliče za zapiranje povezave z bazo podatkov.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'ti'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov SQLite
db , napaka := ti . Ustvari ( 'test.db' )
//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Natisnite sporočilo o uspehu
fmt . Println ( 'Baza podatkov je ustvarjena.' )
}
//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »db_connect.go«:

$ pojdi zaženi db_connect.go

Zaženite ukaz “ls”, da preverite, ali je datoteka baze podatkov “test.db” ustvarjena ali ne:

$ ls

Naslednji izhod kaže, da je sporočilo o uspehu »Baza podatkov je ustvarjena« natisnjeno v izhodu in da je datoteka »test.db« ustvarjena na trenutni lokaciji:

Povežite se z zbirko podatkov SQLite z uporabo Golanga

Ustvarite datoteko Golang z naslednjim skriptom, ki odpre datoteko baze podatkov »test.db« in vzpostavi povezavo z bazo podatkov. Tukaj je uvožen modul zbirke podatkov/SQL Golanga za opravljanje te naloge. Metoda open() se tukaj uporablja za vzpostavitev povezave z obstoječo bazo podatkov SQLite. Če je povezava z zbirko podatkov uspešna, se v terminalu natisne sporočilo o uspehu. V nasprotnem primeru bo program prekinjen.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'baza podatkov/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov SQLite
db , napaka := sql . Odprto ( 'sqlite3' , 'test.db' )
//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Natisnite sporočilo o uspehu
fmt . Println ( 'Baza podatkov je uspešno povezana.' )
}
//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »db_connect2.go«:

$ pojdi zaženi db_connect2.go

Naslednji izhod kaže, da je datoteka baze podatkov »test.db« odprta in uspešno povezana. Sporočilo o uspehu »Baza podatkov je uspešno povezana« je natisnjeno v izhodu:

Ustvarite tabelo v zbirki podatkov SQLite z uporabo Golanga

Ustvarite datoteko Golang z naslednjim skriptom, ki ustvari tabelo baze podatkov z imenom »člani« znotraj datoteke baze podatkov »test.db«. Metoda Exec() se tukaj uporablja za izvedbo poizvedbe CREATE TABLE, ki ustvari tabelo »člani« s šestimi polji in primarnim ključem. Če je tabela v bazi podatkov uspešno ustvarjena, se natisne sporočilo o uspehu. V nasprotnem primeru bo program prekinjen.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'baza podatkov/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov sqlite
db , napaka := sql . Odprto ( 'sqlite3' , 'test.db' )
//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
konst poizvedbo vrvica = `
USTVARI TABELO, ČE NE OBSTAJA članov (
id INTEGER NOT NULL PRIMARNI KLJUČ,
ime CHAR(40) NOT NULL,
mtype CHAR(100) NOT NULL,
e-pošta CHAR(50),
naslov TEXT NOT NULL,
mobile CHAR(25) NOT NULL);`

_ , napaka := db . Izv ( poizvedbo );

če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Natisnite sporočilo o uspehu
fmt . Println ( 'Tabela je uspešno ustvarjena.' )
}

}
//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »create_table.go«:

$ pojdi zaženi create_table.go

Naslednji izhod kaže, da je tabela uspešno ustvarjena v bazi podatkov. Sporočilo o uspehu »Tabela je uspešno ustvarjena« se natisne v terminalu:

Lahko se prijavite v SQLite in preverite, ali je tabela ustvarjena v bazi podatkov ali ne.

Zaženite naslednji ukaz za zagon SQLite z bazo podatkov »test.db«:

$ sqlite3 test.db

Zaženite ukaz SQLite “.tables” iz ukaznega poziva SQLite, da preverite imena tabel baze podatkov:

sqlite3 > .tables

Naslednji izhod kaže, da baza podatkov vsebuje tabelo »člani«, ki je ustvarjena z izvajanjem skripta Golang:

Vstavite zapise v tabelo SQLite z uporabo Golanga

Več zapisov je mogoče vstaviti v tabelo z večkratno izvedbo poizvedbe INSERT ali z dodajanjem več vrednosti v eno samo poizvedbo INSERT. Ustvarite datoteko Golang z naslednjim skriptom, ki vstavi tri zapise v tabelo »člani« datoteke baze podatkov »test.db« z uporabo ene same poizvedbe INSERT. Metoda Exec() se tukaj uporablja za izvedbo poizvedbe INSERT. Če so zapisi uspešno vstavljeni v tabelo, se natisne sporočilo o uspehu. V nasprotnem primeru bo program prekinjen.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'baza podatkov/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov SQLite
db , napaka := sql . Odprto ( 'sqlite3' , 'test.db' )
//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
konst poizvedbo vrvica = `
VSTAVI V člane (id, ime, mtype, e-pošta, naslov, mobilni telefon)
VREDNOSTI(1, 'Nehal Ahmed', 'Srebrna', 'nehal@gmail.com','36, Dhanmondi 2, Daka','01844657342'),
(2, 'Abir Chowdhury', 'Gold', 'abir@gmail.com','102, Mirpur 10, Daka','01994563423'),
(3, 'Mirza Abbas', 'Srebrni', 'abbas@gmail.com','12, Jigatala, Daka','01640006710');`


//Izvedi poizvedbo
_ , napaka := db . Izv ( poizvedbo );

če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Natisnite sporočilo o uspehu
fmt . Println ( 'Zapisi so uspešno vstavljeni.' )
}
}

//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »insert_table.go«:

$ pojdi zaženi insert_table.go

Naslednji izhod kaže, da so zapisi uspešno vstavljeni v tabelo. Sporočilo o uspehu »Zapisi so uspešno vstavljeni« je natisnjeno v izhodu:

Lahko se prijavite v SQLite in preverite, ali so trije zapisi uspešno vstavljeni v tabelo »člani«.

Zaženite naslednji ukaz za zagon SQLite z bazo podatkov »test.db«:

$ sqlite3 test.db

Zaženite naslednjo poizvedbo SELECT, da preberete vso vsebino tabele »člani«:

sqlite3 > IZBERI * OD članov ;

Naslednji izhod kaže, da tabela »člani« vsebuje tri zapise, ki jih vstavi skript Golang:

Preberite podatke tabele SQLite z uporabo Golanga

Ustvarite datoteko Golang z naslednjim skriptom, ki bere zapise tabele »člani«. V Golangu morate definirati spremenljivke, da shranite vrednosti, ki jih vrne poizvedba SELECT. V tem skriptu je s poizvedbo SELECT iz tabele »člani« pridobljenih pet polj. V skriptu je torej definiranih pet spremenljivk za shranjevanje vrednosti petih polj tabele »člani«, kjer je vrednost polja »mtype« »Silver«. Metoda Query() se tukaj uporablja za izvedbo poizvedbe SELECT. Nato se zanka »za« uporabi za branje nabora rezultatov, ki jih vrne poizvedba SELECT. Funkcija printf() se uporablja za tiskanje oblikovanih vrednosti nabora rezultatov.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'baza podatkov/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov SQLite
db , napaka := sql . Odprto ( 'sqlite3' , 'test.db' )

//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {

//Deklariraj spremenljivke za shranjevanje vrednosti vrstice
je bil id int
je bil ime vrvica
je bil mtype vrvica
je bil naslov vrvica
je bil mobilni vrvica
konst poizvedbo vrvica = `IZBERITE id, ime, mtype, naslov, mobilni telefon
OD članov
WHERE mtype = 'Srebrna';`


//Izvedi poizvedbo
vrstice , napaka := db . Poizvedba ( poizvedbo );

če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {

//Natisnite sporočilo o uspehu
fmt . Println ( 'Zapisi vseh srebrnih članov:' )
fmt . Println ( 'ID \t Ime \t \t Vrsta člana \t Naslov \t \t Kontaktna številka' )
za vrstice . Naslednji () {
vrstice . Skeniraj ( &id , &ime , &mtype , &naslov , &mobilno )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , id , ime , mtype , naslov , mobilni )
}
}
}
//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »select_table.go«:

$ pojdi zaženi select_table.go

V tabeli »člani« obstajata dva zapisa, ki vsebuje »Srebro« v polju »mtype«. Naslednji izhod prikazuje dva zapisa tabele »člani«, ki ju vrne poizvedba SELECT:

Posodobite podatke tabele SQLite z uporabo Golanga

Ustvarite datoteko Golang z naslednjim skriptom, ki spremeni vrednost mobilnega polja tabele »člani«, ki vsebuje vrednost id 2. Metoda Exec() se tukaj uporablja za izvedbo poizvedbe UPDATE. Če je zapis v tabeli uspešno posodobljen, se natisne sporočilo o uspehu. V nasprotnem primeru bo program prekinjen.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'baza podatkov/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov SQLite
db , napaka := sql . Odprto ( 'sqlite3' , 'test.db' )
//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
konst poizvedbo vrvica = `
POSODOBITE člane SET mobile = '018563452390' WHERE id = 2;`

_ , napaka := db . Izv ( poizvedbo );

če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Natisnite sporočilo o uspehu
fmt . Println ( 'Zapis je uspešno posodobljen.' )
}
}
//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »update_table.go«:

$ pojdi zaženi update_table.go

V tabeli »člani« druga vrstica vsebuje vrednost id 2. Naslednji izhod kaže, da je bil zapis tabele uspešno posodobljen. Sporočilo o uspehu »Zapis je uspešno posodobljen« se natisne v terminalu:

Lahko se prijavite v SQLite in preverite, ali je kateri koli zapis tabele članov posodobljen ali ne.

Zaženite naslednji ukaz za zagon SQLite z bazo podatkov »test.db«:

$ sqlite3 test.db

Zaženite naslednjo poizvedbo SELECT, da preberete vso vsebino tabele »člani«:

sqlite3 > IZBERI * OD članov ;

Vrednost mobilnega polja 2 nd zapis tabele članov je '01994563423' pred izvedbo skripta. Naslednji rezultat kaže, da je vrednost mobilnega polja 2 nd zapis tabele članov se po izvedbi skripta spremeni v »018563452390«:

Izbrišite podatke tabele SQLite z uporabo Golanga

Ustvarite datoteko Golang z naslednjim skriptom, ki izbriše datoteko 3 rd zapis tabele »člani«, ki vsebuje vrednost id 3. Metoda Exec() se tukaj uporablja za izvedbo poizvedbe DELETE. Če je zapis uspešno izbrisan iz tabele, se natisne sporočilo o uspehu. V nasprotnem primeru bo program prekinjen.

paket glavni

//Uvoz potrebnih modulov
uvoz (
'fmt'
'dnevnik'
'baza podatkov/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Ustvarite novo bazo podatkov SQLite
db , napaka := sql . Odprto ( 'sqlite3' , 'test.db' )
//Preveri morebitne napake
če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Določite poizvedbo za brisanje
konst poizvedbo vrvica = `DELETE FROM members WHERE id = 3;`
//Izvedi poizvedbo
_ , napaka := db . Izv ( poizvedbo );

če napaka != nič {
//Dodaj sporočilo o napaki v dnevnik
dnevnik . Usodno ( napaka )
} drugače {
//Natisnite sporočilo o uspehu
fmt . Println ( 'Zapis je bil uspešno izbrisan.' )
}
}
//Zaprite povezavo z bazo podatkov
db . Zapri ()
}

Zaženite naslednji ukaz za izvedbo datoteke »delete_table.go«:

$ pojdi zaženi delete_table.go

Naslednji rezultat kaže, da je 3 rd zapis tabele »člani« je uspešno izbrisan. Sporočilo o uspehu »Zapis je uspešno izbrisan« se natisne v terminalu:

Lahko se prijavite v SQLite in preverite, ali je kateri koli zapis tabele članov izbrisan ali ne.

Zaženite naslednji ukaz za zagon SQLite z bazo podatkov »test.db«:

$ sqlite3 test.db

Zaženite naslednjo poizvedbo SELECT, da preberete vso vsebino tabele »člani«:

sqlite3 > IZBERI * OD članov ;

Naslednji izhod kaže, da je vrednost 3 rd zapis tabele članov se izbriše po izvedbi skripta, druga dva zapisa pa se natisneta v izhodu:

Zaključek

Tako SQLite kot Golang sta zdaj priljubljena zaradi svoje preprostosti in lahkih funkcij. Vsako preprosto aplikacijo, ki temelji na bazi podatkov, je mogoče preprosto implementirati s temi orodji. Glavni del vsake aplikacije je izvajanje operacije CRUD. Metode izvajanja operacije CRUD z uporabo skripta Golang in baze podatkov SQLite so razložene v tej vadnici z uporabo več datotek Golang. Če ste novinec v jeziku Go in bazi podatkov SQLite, vam bo ta vadnica pomagala, da se ju naučite od osnove.