Golang SQLite piemēri

Golang Sqlite Piemeri



Golang ir atvērtā koda programmēšanas valoda. Tā atbalsta dažāda veida datu bāzes rīkus. SQLite ir populārs relāciju datu bāzes dzinējs, un Golang ir datu bāzes/SQL pakotne, ko var izmantot, lai izveidotu savienojumu ar SQLite datu bāzi un veiktu dažāda veida datu bāzes uzdevumus. Tiek parādīts veids, kā izveidot savienojumu ar SQLite datu bāzi un veikt dažāda veida datu bāzes darbības, piemēram, tabulas izveidošanu, ierakstu ievietošanu tabulā, datu nolasīšanu no tabulas, tabulas datu atjaunināšanu un ierakstu dzēšanu no tabulas. šajā apmācībā, izmantojot Golang skriptu.

Priekšnosacījumi:

Pirms praktizēt šīs apmācības piemērus, jums ir jāizpilda šādi uzdevumi:

A. Instalējiet Golang valodu sistēmā, ja tā iepriekš nav instalēta. Palaidiet šo komandu, lai pārbaudītu instalēto Golang versiju:







$ go versija



B. Instalējiet sqlite3 sistēmā, ja tas iepriekš nav instalēts. Sqlite3 pēc noklusējuma ir instalēts Ubuntu 20+. Palaidiet šo komandu, lai pārbaudītu instalēto sqlite3 versiju:



$ sqlite3 -- versija





C. Palaidiet tālāk norādītās komandas, lai izveidotu mapi ar nosaukumu “golang-sqlite”, un dodieties uz šo mapi, kurā tiks saglabāts SQLite datu bāzes fails un Golang fails:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Palaidiet šo komandu, lai lejupielādētu nepieciešamo Golang pakotni, lai izmantotu SQLite ar Golang:



$ go, iegūstiet github.com/mattn/go-sqlite3

Datu bāzes operācijas, izmantojot Golang un SQLite

Šajā apmācībā ir parādītas pamata datu bāzes darbības, izmantojot SQLite datu bāzi un Golang skriptu. Šajā apmācībā aplūkoto datu bāzes uzdevumu saraksts ir minēts tālāk:

  1. Izveidojiet SQLite datu bāzi
  2. Izveidojiet SQLite datu bāzes savienojumu
  3. Izveidojiet jaunu tabulu
  4. Ievietojiet datus tabulā
  5. Izlasiet datus no tabulas
  6. Atjauniniet tabulas datus
  7. Dzēsiet datus no tabulas

Izveidojiet SQLite datu bāzi, izmantojot Golang

Izveidojiet Golang failu ar šādu skriptu, kas izveido jaunu SQLite datu bāzes failu ar nosaukumu “test.db”. Skriptā tiek importēti četri moduļi. “Fmt” modulis tiek izmantots, lai izdrukātu izvadi terminālī. “Žurnāla” modulis tiek izmantots, lai pārtrauktu programmu, kad parādās kāda kļūda. Modulis “os” tiek izmantots, lai izveidotu SQLite datubāzi un apstrādātu kļūdu. Modulis “go-sqlite3” tiek izmantots, lai izveidotu savienojumus ar SQLite datu bāzi, izmantojot Golang. Šeit tiek izmantota moduļa “os” metode Create(), lai izveidotu SQLite datu bāzi. Ja datubāze ir veiksmīgi izveidota, terminālī tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā programma tiks pārtraukta. Metode Close () tiek izsaukta, lai aizvērtu datu bāzes savienojumu.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'tu'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu SQLite datu bāzi
db , kļūda := tu . Izveidot ( 'test.db' )
//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Datu bāze ir izveidota.' )
}
//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “db_connect.go”:

$ go palaist db_connect.go

Palaidiet komandu “ls”, lai pārbaudītu, vai datu bāzes fails “test.db” ir izveidots.

$ ls

Sekojošā izvade parāda, ka izvadā tiek izdrukāts veiksmes ziņojums “Datu bāze ir izveidota” un fails “test.db” tiek izveidots pašreizējā vietā:

Izveidojiet savienojumu ar SQLite datu bāzi, izmantojot Golang

Izveidojiet Golang failu ar šādu skriptu, kas atver datu bāzes failu “test.db” un izveido savienojumu ar datu bāzi. Lai veiktu šo uzdevumu, šeit tiek importēts Golang datu bāzes/SQL modulis. Open() metode šeit tiek izmantota, lai izveidotu savienojumu ar esošo SQLite datu bāzi. Ja datubāze ir veiksmīgi savienota, terminālī tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā programma tiks pārtraukta.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'datubāze/sql'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu SQLite datu bāzi
db , kļūda := sql . Atvērt ( 'sqlite3' , 'test.db' )
//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Datu bāze ir veiksmīgi savienota.' )
}
//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “db_connect2.go”:

$ go palaist db_connect2.go

Sekojošā izvade parāda, ka datu bāzes fails “test.db” ir atvērts un veiksmīgi savienots. Veiksmes ziņojums “Datu bāze ir veiksmīgi savienota” tiek izdrukāts izvadē:

Izveidojiet tabulu SQLite datu bāzē, izmantojot Golang

Izveidojiet Golang failu ar šādu skriptu, kas izveido datu bāzes tabulu ar nosaukumu “members” datu bāzes failā “test.db”. Metode Exec() tiek izmantota šeit, lai izpildītu vaicājumu CREATE TABLE, kas izveido tabulu “dalībnieki” ar sešiem laukiem un primāro atslēgu. Ja tabula ir veiksmīgi izveidota datu bāzē, tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā programma tiks pārtraukta.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'datubāze/sql'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu sqlite datu bāzi
db , kļūda := sql . Atvērt ( 'sqlite3' , 'test.db' )
//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
konst vaicājums virkne = `
IZVEIDOT TABULU JA NAV dalībnieki (
id INTEGER NOT NULL PRIMARY KEY,
vārds CHAR(40) NOT NULL,
mtype CHAR(100) NOT NULL,
e-pasts CHAR(50),
adrese TEXT NOT NULL,
mobilais CHAR(25) NOT NULL);”.

_ , kļūda := db . Izpildītājs ( vaicājums );

ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Tabula ir veiksmīgi izveidota.' )
}

}
//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “create_table.go”:

$ go palaist create_table.go

Sekojošā izvade parāda, ka tabula ir veiksmīgi izveidota datu bāzē. Veiksmes ziņojums “Tabula ir veiksmīgi izveidota” tiek izdrukāts terminālī:

Varat pieteikties SQLite, lai pārbaudītu, vai tabula ir izveidota vai nav datu bāzē.

Palaidiet šo komandu, lai palaistu SQLite ar “test.db” datu bāzi:

$ sqlite3 test.db

Palaidiet SQLite komandu “.tables” no SQLite komandu uzvednes, lai pārbaudītu datu bāzes tabulu nosaukumus:

sqlite3 > .tables

Šī izvade parāda, ka datu bāzē ir tabula “dalībnieki”, kas izveidota, izpildot Golang skriptu:

Ievietojiet ierakstus SQLite tabulā, izmantojot Golang

Tabulā var ievietot vairākus ierakstus, vairākas reizes izpildot vaicājumu INSERT vai pievienojot vairākas vērtības vienā INSERT vaicājumā. Izveidojiet Golang failu ar šādu skriptu, kas ievieto trīs ierakstus datu bāzes faila “test.db” tabulā “dalībnieki”, izmantojot vienu INSERT vaicājumu. Šeit tiek izmantota metode Exec(), lai izpildītu vaicājumu INSERT. Ja ieraksti ir veiksmīgi ievietoti tabulā, tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā programma tiks pārtraukta.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'datubāze/sql'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu SQLite datu bāzi
db , kļūda := sql . Atvērt ( 'sqlite3' , 'test.db' )
//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
konst vaicājums stīga = `
INSERT INTO dalībnieki (ID, vārds, mtype, e-pasts, adrese, mobilais)
VĒRTĪBAS (1, 'Nehal Ahmed', 'Sudrabs', 'nehal@gmail.com','36, Dhanmondi 2, Daka','01844657342'),
(2, 'Abir Chowdhury', 'Gold', 'abir@gmail.com', '102, Mirpur 10, Dhaka', '01994563423'),
(3, 'Mirza Abbas', 'Sudrabs', 'abbas@gmail.com','12, Džigatala, Daka','01640006710');`


//Izpildiet vaicājumu
_ , kļūda := db . Izpildītājs ( vaicājums );

ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Ieraksti veiksmīgi ievietoti.' )
}
}

//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “insert_table.go”:

$ go palaist insert_table.go

Sekojošā izvade parāda, ka ieraksti ir veiksmīgi ievietoti tabulā. Veiksmes ziņojums “Ieraksti veiksmīgi ievietoti” tiek izdrukāts izvadē:

Varat pieteikties SQLite, lai pārbaudītu, vai trīs ieraksti ir veiksmīgi ievietoti tabulā “Dalībnieki”.

Palaidiet šo komandu, lai palaistu SQLite ar “test.db” datu bāzi:

$ sqlite3 test.db

Palaidiet šādu SELECT vaicājumu, lai lasītu visu tabulas “dalībnieki” saturu:

sqlite3 > SELECT * NO biedriem ;

Šī izvade parāda, ka tabulā “dalībnieki” ir trīs ieraksti, kurus ievieto Golang skripts:

Lasiet SQLite tabulas datus, izmantojot Golang

Izveidojiet Golang failu ar šādu skriptu, kas nolasa tabulas “dalībnieki” ierakstus. Golangā ir jādefinē mainīgie, lai saglabātu vērtības, kas tiek atgrieztas no vaicājuma SELECT. Šajā skriptā pieci lauki tiek izgūti no tabulas “dalībnieki”, izmantojot vaicājumu SELECT. Tātad skriptā ir definēti pieci mainīgie, lai saglabātu tabulas “biedri” piecu lauku vērtības, kur lauka “mtype” vērtība ir “Sudrabs”. Šeit tiek izmantota metode Query(), lai izpildītu SELECT vaicājumu. Pēc tam cilpa “for” tiek izmantota, lai nolasītu rezultātu kopu, ko atgriež vaicājums SELECT. Funkciju printf() izmanto, lai drukātu rezultātu kopas formatētās vērtības.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'datubāze/sql'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu SQLite datu bāzi
db , kļūda := sql . Atvērt ( 'sqlite3' , 'test.db' )

//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {

//Deklarējiet mainīgos, lai saglabātu rindas vērtības
bija id starpt
bija nosaukums stīga
bija mtype stīga
bija adrese stīga
bija mobilais stīga
konst vaicājums stīga = ` ATLASĪT ID, vārdu, mtype, adresi, mobilo
NO biedriem
WHERE mtype = 'Sudrabs';`


//Izpildiet vaicājumu
rindas , kļūda := db . Vaicājums ( vaicājums );

ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {

//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Visu sudraba dalībnieku ieraksti:' )
fmt . Println ( 'ID \t Vārds \t \t Dalībnieka veids \t Adrese \t \t Kontakta nr' )
priekš rindas . Nākamais () {
rindas . Skenēt ( &id , &nosaukums , &mtype , &adrese , &mobilais )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , id , nosaukums , mtype , adrese , mobilais )
}
}
}
//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “select_table.go”:

$ go palaist select_table.go

Tabulā “Members” ir divi ieraksti, kuru laukā “mtype” ir ietverts “Sudrabs”. Šajā izvadē tiek parādīti divi tabulas “dalībnieki” ieraksti, kurus atgriež vaicājums SELECT:

Atjauniniet SQLite tabulas datus, izmantojot Golang

Izveidojiet Golang failu ar šādu skriptu, kas maina mobilā lauka vērtību tabulā “members”, kas satur id vērtību 2. Šeit tiek izmantota metode Exec(), lai izpildītu vaicājumu UPDATE. Ja ieraksts ir veiksmīgi atjaunināts tabulā, tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā programma tiks pārtraukta.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'datubāze/sql'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu SQLite datu bāzi
db , kļūda := sql . Atvērt ( 'sqlite3' , 'test.db' )
//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
konst vaicājums virkne = `
ATJAUNINĀT dalībniekus SET mobile = '018563452390' WHERE id = 2;`

_ , kļūda := db . Izpildītājs ( vaicājums );

ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Ieraksts ir veiksmīgi atjaunināts.' )
}
}
//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “update_table.go”:

$ go palaist update_table.go

Tabulas “Dalībnieki” otrajā rindā ir id vērtība 2. Sekojošā izvade parāda, ka tabulas ieraksts ir veiksmīgi atjaunināts. Veiksmes ziņojums “Ieraksts ir veiksmīgi atjaunināts” tiek izdrukāts terminālī:

Varat pieteikties SQLite, lai pārbaudītu, vai kāds dalībnieku tabulas ieraksts ir atjaunināts.

Palaidiet šo komandu, lai palaistu SQLite ar “test.db” datu bāzi:

$ sqlite3 test.db

Palaidiet šādu SELECT vaicājumu, lai lasītu visu tabulas “dalībnieki” saturu:

sqlite3 > SELECT * NO biedriem ;

2. mobilā lauka vērtība nd Dalībnieku tabulas ieraksts ir “01994563423” pirms skripta izpildes. Šī izvade parāda, ka mobilā lauka vērtība 2 nd Pēc skripta izpildes dalībnieku tabulas ieraksts tiek mainīts uz “018563452390”:

Izdzēsiet SQLite tabulas datus, izmantojot Golang

Izveidojiet Golang failu ar šādu skriptu, kas izdzēš 3 rd tabulas “dalībnieki” ieraksts, kas satur id vērtību 3. Šeit tiek izmantota metode Exec(), lai izpildītu vaicājumu DELETE. Ja ieraksts ir veiksmīgi izdzēsts no tabulas, tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā programma tiks pārtraukta.

iepakojums galvenais

//Importējiet nepieciešamos moduļus
imports (
'fmt'
'baļķis'
'datubāze/sql'
_ 'github.com/mattn/go-sqlite3'
)

func galvenais () {

//Izveidojiet jaunu SQLite datu bāzi
db , kļūda := sql . Atvērt ( 'sqlite3' , 'test.db' )
//Pārbaudiet, vai nav kļūdu
ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Definējiet dzēšanas vaicājumu
konst vaicājums virkne = 'DZĒST NO dalībniekiem, WHERE id = 3;'.
//Izpildiet vaicājumu
_ , kļūda := db . Izpildītājs ( vaicājums );

ja kļūda != nulle {
//Pievienojiet kļūdas ziņojumu žurnālam
žurnāls . Liktenīgi ( kļūda )
} cits {
//Izdrukājiet veiksmes ziņojumu
fmt . Println ( 'Ieraksts ir veiksmīgi izdzēsts.' )
}
}
//Aizveriet datu bāzes savienojumu
db . Aizvērt ()
}

Palaidiet šo komandu, lai izpildītu failu “delete_table.go”:

$ go palaist delete_table.go

Sekojošā izvade parāda, ka 3 rd tabulas “biedri” ieraksts ir veiksmīgi izdzēsts. Veiksmes ziņojums “Ieraksts ir veiksmīgi izdzēsts” tiek izdrukāts terminālī:

Varat pieteikties SQLite, lai pārbaudītu, vai kāds dalībnieku tabulas ieraksts ir izdzēsts.

Palaidiet šo komandu, lai palaistu SQLite ar “test.db” datu bāzi:

$ sqlite3 test.db

Palaidiet šādu SELECT vaicājumu, lai lasītu visu tabulas “dalībnieki” saturu:

sqlite3 > SELECT * NO biedriem ;

Nākamā izvade parāda, ka 3. vērtība rd Dalībnieku tabulas ieraksts tiek dzēsts pēc skripta izpildes un pārējie divi ieraksti tiek izdrukāti izvadē:

Secinājums

Gan SQLite, gan Golang tagad ir populāri to vienkāršības un vieglo funkciju dēļ. Izmantojot šos rīkus, var viegli ieviest jebkuru vienkāršu uz datubāzi balstītu lietojumprogrammu. Jebkuras lietojumprogrammas lielākā daļa ir CRUD operācijas ieviešana. CRUD darbības ieviešanas metodes, izmantojot Golang skriptu un SQLite datu bāzi, ir izskaidrotas šajā apmācībā, izmantojot vairākus Golang failus. Ja esat jauns Go valodas un SQLite datu bāzes apguvējs, šī apmācība palīdzēs jums to apgūt no pamata.