Golang SQLite primjeri

Golang Sqlite Primjeri



Golang je programski jezik otvorenog koda. Podržava različite vrste alata za baze podataka. SQLite je popularan motor relacijske baze podataka, a Golang ima bazu podataka/SQL paket koji se može koristiti za povezivanje sa SQLite bazom podataka i obavljanje različitih vrsta zadataka baze podataka. Prikazan je način povezivanja sa SQLite bazom podataka i izvođenje različitih vrsta operacija baze podataka kao što su kreiranje tablice, umetanje zapisa u tablicu, čitanje podataka iz tablice, ažuriranje podataka tablice i brisanje zapisa iz tablice. u ovom vodiču koristeći Golang skriptu.

Preduvjeti:

Morate izvršiti sljedeće zadatke prije vježbanja primjera u ovom vodiču:

A. Instalirajte Golang jezik u sustav ako već nije instaliran. Pokrenite sljedeću naredbu da provjerite instaliranu verziju Golanga:







$ go verzija



B. Instalirajte sqlite3 u sustav ako nije prije instaliran. Sqlite3 je instaliran prema zadanim postavkama na Ubuntu 20+. Pokrenite sljedeću naredbu da provjerite instaliranu verziju sqlite3:



$ sqlite3 --verzija





C. Pokrenite sljedeće naredbe za stvaranje mape pod nazivom “golang-sqlite” i idite u tu mapu gdje će biti pohranjene SQLite datoteka baze podataka i Golang datoteka:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Pokrenite sljedeću naredbu za preuzimanje potrebnog Golang paketa za korištenje SQLite s Golangom:



$ go get github.com/mattn/go-sqlite3

Operacije baze podataka koristeći Golang i SQLite

Osnovne operacije baze podataka pomoću SQLite baze podataka i Golang skripte prikazane su u ovom vodiču. Popis zadataka baze podataka koji su obuhvaćeni ovim vodičem spominje se u nastavku:

  1. Stvorite SQLite bazu podataka
  2. Uspostavite SQLite vezu s bazom podataka
  3. Napravite novu tablicu
  4. Umetnite podatke u tablicu
  5. Pročitajte podatke iz tablice
  6. Ažurirajte podatke u tablici
  7. Izbrišite podatke iz tablice

Stvorite SQLite bazu podataka koristeći Golang

Stvorite Golang datoteku sa sljedećom skriptom koja stvara novu SQLite datoteku baze podataka pod nazivom 'test.db'. U skriptu se uvoze četiri modula. Modul “fmt” koristi se za ispis izlaza u terminalu. Modul “log” koristi se za prekid programa kada se pojavi bilo kakva pogreška. Modul “os” koristi se za stvaranje SQLite baze podataka i rješavanje pogreške. Modul “go-sqlite3” koristi se za uspostavljanje veza sa SQLite bazom podataka putem Golanga. Metoda Create() modula “os” ovdje se koristi za stvaranje SQLite baze podataka. Ako je baza podataka uspješno kreirana, na terminalu se ispisuje poruka o uspjehu. U suprotnom, program će biti prekinut. Metoda Close() poziva se za zatvaranje veze s bazom podataka.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'vas'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu SQLite bazu podataka
db , pogriješiti := vas . Stvoriti ( 'test.db' )
//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Ispiši poruku o uspjehu
fmt . Println ( 'Baza podataka je stvorena.' )
}
//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku “db_connect.go”:

$ pokrenite db_connect.go

Pokrenite naredbu “ls” da provjerite je li datoteka baze podataka “test.db” stvorena ili ne:

$ ls

Sljedeći izlaz pokazuje da je poruka o uspjehu 'Baza podataka stvorena' ispisana u izlazu i da je datoteka 'test.db' stvorena na trenutnoj lokaciji:

Povežite se sa SQLite bazom podataka koristeći Golang

Stvorite Golang datoteku sa sljedećom skriptom koja otvara datoteku baze podataka 'test.db' i uspostavi vezu s bazom podataka. Ovdje se uvozi baza podataka/SQL modul Golanga za obavljanje ovog zadatka. Metoda open() ovdje se koristi za uspostavljanje veze s postojećom SQLite bazom podataka. Ako je baza podataka uspješno spojena, na terminalu se ispisuje poruka o uspjehu. U suprotnom, program će biti prekinut.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'baza podataka/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu SQLite bazu podataka
db , pogriješiti := sql . Otvoren ( 'sqlite3' , 'test.db' )
//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Ispiši poruku o uspjehu
fmt . Println ( 'Baza podataka je uspješno povezana.' )
}
//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku “db_connect2.go”:

$ pokrenite db_connect2.go

Sljedeći izlaz pokazuje da je datoteka baze podataka 'test.db' otvorena i uspješno povezana. Poruka o uspjehu, 'Baza podataka je uspješno povezana', ispisuje se u izlazu:

Stvorite tablicu u SQLite bazi podataka koristeći Golang

Stvorite Golang datoteku sa sljedećom skriptom koja stvara tablicu baze podataka pod nazivom 'članovi' unutar datoteke baze podataka 'test.db'. Metoda Exec() ovdje se koristi za izvršavanje upita CREATE TABLE koji stvara tablicu 'članovi' sa šest polja i primarnim ključem. Ako je tablica uspješno kreirana u bazi podataka, ispisuje se poruka o uspjehu. U suprotnom, program će biti prekinut.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'baza podataka/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu sqlite bazu podataka
db , pogriješiti := sql . Otvoren ( 'sqlite3' , 'test.db' )
//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
konst upit niz = `
STVARAJ TABLICU AKO NE POSTOJI BROJ članova (
id INTEGER NOT NULL PRIMARNI KLJUČ,
naziv CHAR(40) NOT NULL,
mtip CHAR(100) NIJE NULL,
e-pošta CHAR(50),
adresa TEXT NOT NULL,
mobilni CHAR(25) NOT NULL);`

_ , pogriješiti := db . Izv ( upit );

ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Ispiši poruku o uspjehu
fmt . Println ( 'Tablica je uspješno kreirana.' )
}

}
//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku “create_table.go”:

$ idi pokreni create_table.go

Sljedeći izlaz pokazuje da je tablica uspješno kreirana u bazi podataka. Poruka o uspjehu, 'Tablica je uspješno kreirana', ispisuje se u terminalu:

Možete se prijaviti na SQLite kako biste provjerili je li tablica stvorena ili ne u bazi podataka.

Pokrenite sljedeću naredbu da pokrenete SQLite s bazom podataka 'test.db':

$ sqlite3 test.db

Pokrenite SQLite naredbu “.tables” iz SQLite naredbenog retka da provjerite nazive tablica baze podataka:

sqlite3 > .tablice

Sljedeći izlaz pokazuje da baza podataka sadrži tablicu 'članovi' koja je stvorena izvršavanjem Golang skripte:

Umetnite zapise u SQLite tablicu koristeći Golang

Više zapisa može se umetnuti u tablicu izvršavanjem INSERT upita više puta ili dodavanjem više vrijednosti u jednom INSERT upitu. Stvorite Golang datoteku sa sljedećom skriptom koja umeće tri zapisa u tablicu 'članovi' datoteke baze podataka 'test.db' pomoću jednog INSERT upita. Metoda Exec() ovdje se koristi za izvršavanje INSERT upita. Ako su zapisi uspješno umetnuti u tablicu, ispisuje se poruka o uspjehu. U suprotnom, program će biti prekinut.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'baza podataka/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu SQLite bazu podataka
db , pogriješiti := sql . Otvoren ( 'sqlite3' , 'test.db' )
//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
konst upit niz = `
INSERT INTO članovi (id, ime, mtype, email, adresa, mobitel)
VALUES(1, 'Nehal Ahmed', 'Srebro', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, 'Abir Chowdhury', 'Gold', 'abir@gmail.com','102, Mirpur 10, Dhaka','01994563423'),
(3, 'Mirza Abbas', 'Srebro', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');`


//Izvrši upit
_ , pogriješiti := db . Izv ( upit );

ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Ispiši poruku o uspjehu
fmt . Println ( 'Zapisi su uspješno umetnuti.' )
}
}

//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku 'insert_table.go':

$ idi pokreni insert_table.go

Sljedeći izlaz pokazuje da su zapisi uspješno umetnuti u tablicu. Poruka o uspjehu, 'Zapisi su uspješno umetnuti', ispisuje se u izlazu:

Možete se prijaviti na SQLite kako biste provjerili jesu li tri zapisa uspješno ili ne umetnuta u tablicu 'članovi'.

Pokrenite sljedeću naredbu da pokrenete SQLite s bazom podataka 'test.db':

$ sqlite3 test.db

Pokrenite sljedeći SELECT upit da biste pročitali sav sadržaj tablice “članovi”:

sqlite3 > ODABIR * OD članova ;

Sljedeći izlaz pokazuje da tablica 'članovi' sadrži tri zapisa koji su umetnuti Golang skriptom:

Pročitajte podatke SQLite tablice koristeći Golang

Stvorite Golang datoteku sa sljedećom skriptom koja čita zapise tablice 'članovi'. Morate definirati varijable u Golangu da biste pohranili vrijednosti koje se vraćaju iz upita SELECT. U ovoj skripti pet polja se dohvaća iz tablice 'članovi' pomoću upita SELECT. Dakle, u skripti je definirano pet varijabli za pohranjivanje vrijednosti pet polja tablice 'members' gdje je vrijednost polja 'mtype' 'Silver'. Metoda Query() ovdje se koristi za izvršavanje SELECT upita. Zatim se petlja 'for' koristi za čitanje skupa rezultata koji je vraćen upitom SELECT. Funkcija printf() koristi se za ispis formatiranih vrijednosti skupa rezultata.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'baza podataka/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu SQLite bazu podataka
db , pogriješiti := sql . Otvoren ( 'sqlite3' , 'test.db' )

//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {

//Deklarirajte varijable za pohranjivanje vrijednosti retka
bio je iskaznica int
bio je Ime niz
bio je mtype niz
bio je adresa niz
bio je mobilni niz
konst upit niz = `SELECT id, ime, mtype, adresa, mobitel
OD članova
WHERE mtype = 'Srebrni';`


//Izvrši upit
redaka , pogriješiti := db . Upit ( upit );

ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {

//Ispiši poruku o uspjehu
fmt . Println ( 'Zapisi svih srebrnih članova:' )
fmt . Println ( 'ISKAZNICA \t Ime \t \t Vrsta člana \t Adresa \t \t Kontakt broj' )
za redaka . Sljedeći () {
redaka . Skenirati ( &iskaznica , &Ime , &mtip , &adresa , &mobilni )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , iskaznica , Ime , mtype , adresa , mobilni )
}
}
}
//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku “select_table.go”:

$ idi pokreni select_table.go

Dva zapisa postoje u tablici “members” koja sadrži “Silver” u polju “mtype”. Sljedeći izlaz prikazuje dva zapisa tablice 'članovi' koje vraća upit SELECT:

Ažurirajte podatke SQLite tablice pomoću Golanga

Stvorite Golang datoteku sa sljedećom skriptom koja mijenja vrijednost mobilnog polja tablice 'članovi' koja sadrži id vrijednost 2. Metoda Exec() ovdje se koristi za izvršavanje upita UPDATE. Ako je zapis uspješno ažuriran u tablici, ispisuje se poruka o uspjehu. U suprotnom, program će biti prekinut.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'baza podataka/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu SQLite bazu podataka
db , pogriješiti := sql . Otvoren ( 'sqlite3' , 'test.db' )
//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
konst upit niz = `
AŽURIRAJ članove SET mobile = '018563452390' WHERE id = 2;`

_ , pogriješiti := db . Izv ( upit );

ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Ispiši poruku o uspjehu
fmt . Println ( 'Zapis je uspješno ažuriran.' )
}
}
//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku 'update_table.go':

$ idi pokreni update_table.go

U tablici 'članovi', drugi redak sadrži id vrijednost 2. Sljedeći izlaz pokazuje da je zapis tablice uspješno ažuriran. Poruka o uspjehu, 'Zapis je uspješno ažuriran', ispisuje se na terminalu:

Možete se prijaviti na SQLite da provjerite je li bilo koji zapis tablice članova ažuriran ili ne.

Pokrenite sljedeću naredbu da pokrenete SQLite s bazom podataka 'test.db':

$ sqlite3 test.db

Pokrenite sljedeći SELECT upit da biste pročitali sav sadržaj tablice “članovi”:

sqlite3 > ODABIR * OD članova ;

Vrijednost mobilnog polja 2 nd zapis tablice članova je “01994563423” prije izvršavanja skripte. Sljedeći izlaz pokazuje da vrijednost mobilnog polja 2 nd zapis tablice članova mijenja se u “018563452390” nakon izvršavanja skripte:

Izbrišite podatke SQLite tablice koristeći Golang

Napravite Golang datoteku sa sljedećom skriptom koja briše 3 rd zapis tablice “members” koja sadrži id vrijednost 3. Metoda Exec() ovdje se koristi za izvršavanje DELETE upita. Ako je zapis uspješno izbrisan iz tablice, ispisuje se poruka o uspjehu. U suprotnom, program će biti prekinut.

paket glavni

//Uvoz potrebnih modula
uvoz (
'fmt'
'log'
'baza podataka/sql'
_ 'github.com/mattn/go-sqlite3'
)

funk glavni () {

//Stvorite novu SQLite bazu podataka
db , pogriješiti := sql . Otvoren ( 'sqlite3' , 'test.db' )
//Provjeri ima li grešaka
ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Definirajte upit za brisanje
konst upit niz = `DELETE FROM members WHERE id = 3;`
//Izvrši upit
_ , pogriješiti := db . Izv ( upit );

ako pogriješiti != nula {
//Dodaj poruku o pogrešci u dnevnik
log . Kobno ( pogriješiti )
} drugo {
//Ispiši poruku o uspjehu
fmt . Println ( 'Zapis je uspješno izbrisan.' )
}
}
//Zatvorite vezu s bazom podataka
db . Zatvoriti ()
}

Pokrenite sljedeću naredbu da biste izvršili datoteku 'delete_table.go':

$ idi pokreni delete_table.go

Sljedeći izlaz pokazuje da je 3 rd zapis tablice “članovi” uspješno je izbrisan. Poruka o uspjehu, 'Zapis je uspješno izbrisan', ispisuje se na terminalu:

Možete se prijaviti na SQLite kako biste provjerili je li bilo koji zapis tablice članova izbrisan ili ne.

Pokrenite sljedeću naredbu da pokrenete SQLite s bazom podataka 'test.db':

$ sqlite3 test.db

Pokrenite sljedeći SELECT upit da biste pročitali sav sadržaj tablice “članovi”:

sqlite3 > ODABIR * OD članova ;

Sljedeći izlaz pokazuje da vrijednost 3 rd zapis tablice članova se briše nakon izvršavanja skripte, a druga dva zapisa se ispisuju u izlazu:

Zaključak

I SQLite i Golang sada su popularni zbog svoje jednostavnosti i laganih značajki. Bilo koja jednostavna aplikacija temeljena na bazi podataka može se jednostavno implementirati pomoću ovih alata. Glavni dio svake aplikacije je implementacija CRUD operacije. Metode implementacije CRUD operacije pomoću Golang skripte i SQLite baze podataka objašnjene su u ovom vodiču pomoću više Golang datoteka. Ako ste novi učenik Go jezika i baze podataka SQLite, ovaj vodič će vam pomoći da ih naučite od osnove.