Exemples de Golang SQLite

Exemples De Golang Sqlite



Golang és un llenguatge de programació de codi obert. Admet diferents tipus d'eines de bases de dades. SQLite és un motor de base de dades relacional popular i Golang té un paquet de base de dades/SQL que es pot utilitzar per connectar amb la base de dades SQLite i realitzar diferents tipus de tasques de base de dades. Es mostra la manera de connectar-se amb la base de dades SQLite i realitzar diferents tipus d'operacions de base de dades, com ara crear la taula, inserir els registres a la taula, llegir les dades de la taula, actualitzar les dades de la taula i esborrar els registres de la taula. en aquest tutorial utilitzant l'script Golang.

Requisits previs:

Heu de completar les tasques següents abans de practicar els exemples d'aquest tutorial:

R. Instal·leu l'idioma Golang al sistema si no s'ha instal·lat abans. Executeu l'ordre següent per comprovar la versió instal·lada de Golang:







versió $go



B. Instal·leu sqlite3 al sistema si no s'ha instal·lat abans. Sqlite3 està instal·lat per defecte a Ubuntu 20+. Executeu l'ordre següent per comprovar la versió instal·lada de sqlite3:



$ sqlite3 --versió





C. Executeu les ordres següents per crear una carpeta anomenada 'golang-sqlite' i aneu a la carpeta on s'emmagatzemaran el fitxer de base de dades SQLite i el fitxer Golang:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Executeu l'ordre següent per descarregar el paquet Golang necessari per utilitzar SQLite amb Golang:



$ anar a obtenir github.com/mattn/go-sqlite3

Operacions de base de dades amb Golang i SQLite

En aquest tutorial es mostren les operacions bàsiques de la base de dades que utilitzen la base de dades SQLite i l'script Golang. La llista de tasques de la base de dades que es tracten en aquest tutorial s'esmenta a continuació:

  1. Creeu una base de dades SQLite
  2. Feu una connexió de base de dades SQLite
  3. Crea una taula nova
  4. Inseriu les dades a la taula
  5. Llegeix les dades de la taula
  6. Actualitzar les dades de la taula
  7. Elimina les dades de la taula

Creeu una base de dades SQLite amb Golang

Creeu un fitxer Golang amb el següent script que crea un nou fitxer de base de dades SQLite anomenat 'test.db'. S'importen quatre mòduls a l'script. El mòdul 'fmt' s'utilitza per imprimir la sortida al terminal. El mòdul 'registre' s'utilitza per avortar el programa quan apareix algun error. El mòdul 'os' s'utilitza per crear la base de dades SQLite i gestionar l'error. El mòdul 'go-sqlite3' s'utilitza per fer connexions amb la base de dades SQLite a través de Golang. El mètode Create() del mòdul 'os' s'utilitza aquí per crear una base de dades SQLite. Si la base de dades es crea correctament, s'imprimeix un missatge d'èxit al terminal. En cas contrari, el programa s'acabarà. Es crida al mètode Close() per tancar la connexió de la base de dades.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'vostè'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades SQLite
db , errar := vostè . Crear ( 'test.db' )
//Comprova si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Imprimeix el missatge d'èxit
fmt . Println ( 'S'ha creat la base de dades'. )
}
//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'db_connect.go':

$ go executeu db_connect.go

Executeu l'ordre 'ls' per comprovar si el fitxer de base de dades 'test.db' està creat o no:

$ ls

La sortida següent mostra que el missatge d'èxit, 'S'ha creat la base de dades', s'imprimeix a la sortida i el fitxer 'test.db' es crea a la ubicació actual:

Connecteu-vos amb una base de dades SQLite mitjançant Golang

Creeu un fitxer Golang amb el següent script que obre el fitxer de base de dades 'test.db' i feu la connexió amb la base de dades. El mòdul de base de dades/SQL de Golang s'importa aquí per fer aquesta tasca. El mètode open() s'utilitza aquí per establir la connexió amb la base de dades SQLite existent. Si la base de dades es connecta correctament, s'imprimeix un missatge d'èxit al terminal. En cas contrari, el programa s'acabarà.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'base de dades/sql'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades SQLite
db , errar := sql . Obert ( 'sqlite3' , 'test.db' )
//Comprova si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Imprimeix el missatge d'èxit
fmt . Println ( 'La base de dades s'ha connectat correctament'. )
}
//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'db_connect2.go':

$ go executeu db_connect2.go

La sortida següent mostra que el fitxer de base de dades 'test.db' s'ha obert i connectat correctament. El missatge d'èxit, 'La base de dades s'ha connectat correctament', s'imprimeix a la sortida:

Creeu una taula en una base de dades SQLite mitjançant Golang

Creeu un fitxer Golang amb el següent script que crea una taula de base de dades anomenada 'members' dins del fitxer de base de dades 'test.db'. El mètode Exec() s'utilitza aquí per executar la consulta CREATE TABLE que crea la taula 'membres' amb sis camps i una clau primària. Si la taula es crea correctament a la base de dades, s'imprimeix un missatge d'èxit. En cas contrari, el programa s'acabarà.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'base de dades/sql'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades sqlite
db , errar := sql . Obert ( 'sqlite3' , 'test.db' )
//Comproveu si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
const consulta corda = `
CREAR TAULA SI NO EXISTIS membres (
id INTEGER NOT NULL CLAU PRIMÀRIA,
nom CHAR(40) NOT NULL,
mtype CHAR(100) NOT NULL,
correu electrònic CHAR(50),
adreça TEXT NOT NULL,
mòbil CHAR(25) NOT NULL);`

_ , errar := db . Exec ( consulta );

si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Imprimeix el missatge d'èxit
fmt . Println ( 'La taula s'ha creat correctament'. )
}

}
//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'create_table.go':

$ go executeu create_table.go

La sortida següent mostra que la taula s'ha creat correctament a la base de dades. El missatge d'èxit, 'La taula s'ha creat correctament', s'imprimeix al terminal:

Podeu iniciar sessió a SQLite per comprovar si la taula està creada o no a la base de dades.

Executeu l'ordre següent per executar SQLite amb la base de dades 'test.db':

$ sqlite3 test.db

Executeu l'ordre SQLite '.tables' des de l'indicador d'ordres SQLite per comprovar els noms de les taules de la base de dades:

sqlite3 > .tables

La sortida següent mostra que la base de dades conté la taula 'membres' que es crea executant l'script Golang:

Inseriu els registres a la taula SQLite mitjançant Golang

Es poden inserir diversos registres a la taula executant la consulta INSERT diverses vegades o afegint diversos valors en una sola consulta INSERT. Creeu un fitxer Golang amb el següent script que insereixi tres registres a la taula 'members' del fitxer de base de dades 'test.db' mitjançant una única consulta INSERT. El mètode Exec() s'utilitza aquí per executar la consulta INSERT. Si els registres s'insereixen correctament a la taula, s'imprimeix un missatge d'èxit. En cas contrari, el programa s'acabarà.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'base de dades/sql'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades SQLite
db , errar := sql . Obert ( 'sqlite3' , 'test.db' )
//Comproveu si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
const consulta corda = `
INSERT INTO membres (identificador, nom, mtype, correu electrònic, adreça, mòbil)
VALORS(1, 'Nehal Ahmed', 'Plata', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, 'Abir Chowdhury', 'Gold', 'abir@gmail.com','102, Mirpur 10, Dhaka','01994563423'),
(3, 'Mirza Abbas', 'Silver', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');`


//Executar la consulta
_ , errar := db . Exec ( consulta );

si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Imprimeix el missatge d'èxit
fmt . Println ( 'Els registres s'han inserit correctament'. )
}
}

//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'insert_table.go':

$ go executeu insert_table.go

La sortida següent mostra que els registres s'han inserit correctament a la taula. El missatge d'èxit, 'Registres inserits correctament', s'imprimeix a la sortida:

Podeu iniciar sessió a SQLite per comprovar si els tres registres s'han inserit correctament o no a la taula 'membres'.

Executeu l'ordre següent per executar SQLite amb la base de dades 'test.db':

$ sqlite3 test.db

Executeu la següent consulta SELECT per llegir tot el contingut de la taula 'membres':

sqlite3 > SELECCIONAR * DELS membres ;

La sortida següent mostra que la taula 'membres' conté tres registres que s'insereixen mitjançant l'script Golang:

Llegiu les dades de la taula SQLite amb Golang

Creeu un fitxer Golang amb el següent script que llegeix els registres de la taula 'membres'. Heu de definir les variables a Golang per emmagatzemar els valors que es retornen de la consulta SELECT. En aquest script, es recuperen cinc camps de la taula 'membres' mitjançant la consulta SELECT. Per tant, a l'script es defineixen cinc variables per emmagatzemar els valors dels cinc camps de la taula 'members' on el valor del camp 'mtype' és 'Silver'. El mètode Query() s'utilitza aquí per executar la consulta SELECT. A continuació, s'utilitza el bucle 'for' per llegir el conjunt de resultats que retorna la consulta SELECT. La funció printf() s'utilitza per imprimir els valors formatats del conjunt de resultats.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'base de dades/sql'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades SQLite
db , errar := sql . Obert ( 'sqlite3' , 'test.db' )

//Comproveu si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {

//Declara variables per emmagatzemar els valors de la fila
era id int
era nom corda
era mtype corda
era adreça corda
era mòbil corda
const consulta corda = `SELECT id, nom, mtype, adreça, mòbil
DELS membres
WHERE mtype = 'Plata';`


//Executar la consulta
files , errar := db . Consulta ( consulta );

si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {

//Imprimeix el missatge d'èxit
fmt . Println ( 'Registres de tots els membres de plata:' )
fmt . Println ( 'ID \t Nom \t \t Tipus de membre \t adreça \t \t Contact No' )
per files . Pròxim () {
files . Escaneja ( &id , &nom , &mtype , &adreça , &mòbil )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , id , nom , mtype , adreça , mòbil )
}
}
}
//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'select_table.go':

$ go executeu select_table.go

Existeixen dos registres a la taula 'membres' que conté 'Plata' al camp 'mtype'. La sortida següent mostra dos registres de la taula 'membres' que retorna la consulta SELECT:

Actualitzeu les dades de la taula SQLite mitjançant Golang

Creeu un fitxer Golang amb l'script següent que canviï el valor del camp mòbil de la taula 'membres' que conté el valor d'identificador de 2. El mètode Exec() s'utilitza aquí per executar la consulta UPDATE. Si el registre s'actualitza correctament a la taula, s'imprimeix un missatge d'èxit. En cas contrari, el programa s'acabarà.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'base de dades/sql'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades SQLite
db , errar := sql . Obert ( 'sqlite3' , 'test.db' )
//Comproveu si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
const consulta corda = `
UPDATE membres SET mòbil = '018563452390' WHERE id = 2;`

_ , errar := db . Exec ( consulta );

si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Imprimeix el missatge d'èxit
fmt . Println ( 'El registre s'ha actualitzat correctament'. )
}
}
//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'update_table.go':

$ go executeu update_table.go

A la taula 'membres', la segona fila conté el valor d'identificador de 2. La sortida següent mostra que el registre de la taula s'ha actualitzat correctament. El missatge d'èxit, 'El registre s'ha actualitzat correctament', s'imprimeix al terminal:

Podeu iniciar sessió a SQLite per comprovar si algun registre de la taula de membres està actualitzat o no.

Executeu l'ordre següent per executar SQLite amb la base de dades 'test.db':

$ sqlite3 test.db

Executeu la següent consulta SELECT per llegir tot el contingut de la taula 'membres':

sqlite3 > SELECCIONAR * DELS membres ;

El valor del camp mòbil del 2 nd El registre de la taula de membres és '01994563423' abans d'executar l'script. La sortida següent mostra que el valor del camp mòbil del 2 nd El registre de la taula de membres es canvia a '018563452390' després d'executar l'script:

Suprimiu les dades de la taula SQLite mitjançant Golang

Creeu un fitxer Golang amb el següent script que suprimeixi el fitxer 3 rd registre de la taula 'members' que conté el valor d'identificador de 3. El mètode Exec() s'utilitza aquí per executar la consulta DELETE. Si el registre s'elimina correctament de la taula, s'imprimeix un missatge d'èxit. En cas contrari, el programa s'acabarà.

paquet principal

//Importa els mòduls necessaris
importar (
'fmt'
'registre'
'base de dades/sql'
_ 'github.com/mattn/go-sqlite3'
)

func principal () {

//Crear una nova base de dades SQLite
db , errar := sql . Obert ( 'sqlite3' , 'test.db' )
//Comprova si hi ha cap error
si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Defineix la consulta d'eliminació
const consulta corda = `ELIMINAR DELS membres WHERE id = 3;`
//Executar la consulta
_ , errar := db . Exec ( consulta );

si errar != nil {
//Afegiu el missatge d'error al registre
registre . Fatal ( errar )
} altra cosa {
//Imprimeix el missatge d'èxit
fmt . Println ( 'El registre s'ha suprimit correctament'. )
}
}
//Tanqueu la connexió de la base de dades
db . Tanca ()
}

Executeu l'ordre següent per executar el fitxer 'delete_table.go':

$ go executeu delete_table.go

La sortida següent mostra que el 3 rd el registre de la taula 'membres' s'ha suprimit correctament. El missatge d'èxit, 'El registre s'ha suprimit correctament', s'imprimeix al terminal:

Podeu iniciar sessió a SQLite per comprovar si s'esborra o no algun registre de la taula de membres.

Executeu l'ordre següent per executar SQLite amb la base de dades 'test.db':

$ sqlite3 test.db

Executeu la següent consulta SELECT per llegir tot el contingut de la taula 'membres':

sqlite3 > SELECCIONAR * DELS membres ;

La sortida següent mostra que el valor de 3 rd El registre de la taula de membres s'elimina després d'executar l'script i els altres dos registres s'imprimeixen a la sortida:

Conclusió

Tant SQLite com Golang són populars ara per la seva senzillesa i característiques lleugeres. Amb aquestes eines es pot implementar fàcilment qualsevol aplicació simple basada en bases de dades. La part principal de qualsevol aplicació és implementar l'operació CRUD. Els mètodes d'implementació de l'operació CRUD mitjançant l'script Golang i la base de dades SQLite s'expliquen en aquest tutorial mitjançant diversos fitxers Golang. Si sou un nou aprenent de l'idioma Go i la base de dades SQLite, aquest tutorial us ajudarà a aprendre-los des del bàsic.