Exemplos de Golang SQLite

Exemplos De Golang Sqlite



Golang é uma linguagem de programação de código aberto. Ele suporta diferentes tipos de ferramentas de banco de dados. O SQLite é um mecanismo de banco de dados relacional popular e o Golang possui um pacote de banco de dados/SQL que pode ser usado para conectar-se ao banco de dados SQLite e executar diferentes tipos de tarefas de banco de dados. A maneira de se conectar com o banco de dados SQLite e executar diferentes tipos de operações de banco de dados, como criar a tabela, inserir os registros na tabela, ler os dados da tabela, atualizar os dados da tabela e excluir os registros da tabela são mostrados neste tutorial usando o script Golang.

Pré-requisitos:

Você deve concluir as seguintes tarefas antes de praticar os exemplos neste tutorial:

A. Instale o idioma Golang no sistema se não estiver instalado antes. Execute o seguinte comando para verificar a versão instalada do Golang:







versão $ go



B. Instale o sqlite3 no sistema se não tiver sido instalado antes. Sqlite3 é instalado por padrão no Ubuntu 20+. Execute o seguinte comando para verificar a versão instalada do sqlite3:



$ sqlite3 --versão





C. Execute os seguintes comandos para criar uma pasta chamada “golang-sqlite” e vá para essa pasta onde o arquivo de banco de dados SQLite e o arquivo Golang serão armazenados:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Execute o seguinte comando para baixar o pacote Golang necessário para usar SQLite com Golang:



$ acesse github.com/mattn/go-sqlite3

Operações de banco de dados usando Golang e SQLite

As operações básicas do banco de dados usando o banco de dados SQLite e o script Golang são mostradas neste tutorial. A lista de tarefas de banco de dados abordadas neste tutorial é mencionada a seguir:

  1. Crie um banco de dados SQLite
  2. Faça uma conexão de banco de dados SQLite
  3. Criar uma nova tabela
  4. Insira os dados na tabela
  5. Leia os dados da tabela
  6. Atualize os dados da tabela
  7. Excluir os dados da tabela

Crie um banco de dados SQLite usando Golang

Crie um arquivo Golang com o seguinte script que cria um novo arquivo de banco de dados SQLite chamado “test.db”. Quatro módulos são importados para o script. O módulo “fmt” é usado para imprimir a saída no terminal. O módulo “log” é utilizado para abortar o programa quando algum erro aparece. O módulo “os” é usado para criar o banco de dados SQLite e tratar o erro. O módulo “go-sqlite3” é utilizado para fazer conexões com o banco de dados SQLite através do Golang. O método Create() do módulo “os” é usado aqui para criar um banco de dados SQLite. Se o banco de dados for criado com sucesso, uma mensagem de sucesso será impressa no terminal. Caso contrário, o programa será encerrado. O método Close() é chamado para fechar a conexão com o banco de dados.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'os'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados SQLite
banco de dados , errar := os . Criar ( 'teste.db' )
//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
// Imprime a mensagem de sucesso
fmt . Println ( 'Banco de dados criado.' )
}
//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “db_connect.go”:

$ vá correr db_connect.go

Execute o comando “ls” para verificar se o arquivo de banco de dados “test.db” foi criado ou não:

$ ls

A saída a seguir mostra que a mensagem de sucesso, “Database is created”, é impressa na saída e o arquivo “test.db” é criado no local atual:

Conecte-se com um banco de dados SQLite usando Golang

Crie um arquivo Golang com o seguinte script que abre o arquivo de banco de dados “test.db” e faça a conexão com o banco de dados. O módulo de banco de dados/SQL do Golang é importado aqui para fazer esta tarefa. O método open() é usado aqui para fazer a conexão com o banco de dados SQLite existente. Se o banco de dados for conectado com sucesso, uma mensagem de sucesso será impressa no terminal. Caso contrário, o programa será encerrado.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'banco de dados/sql'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados SQLite
banco de dados , errar := sql . Abrir ( 'sqlite3' , 'teste.db' )
//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
// Imprime a mensagem de sucesso
fmt . Println ( 'O banco de dados foi conectado com sucesso.' )
}
//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “db_connect2.go”:

$ vá executar db_connect2.go

A saída a seguir mostra que o arquivo de banco de dados “test.db” foi aberto e conectado com sucesso. A mensagem de sucesso, “Banco de dados conectado com sucesso”, é impressa na saída:

Crie uma tabela em um banco de dados SQLite usando Golang

Crie um arquivo Golang com o seguinte script que cria uma tabela de banco de dados chamada “members” dentro do arquivo de banco de dados “test.db”. O método Exec() é usado aqui para executar a consulta CREATE TABLE que cria a tabela “membros” com seis campos e uma chave primária. Se a tabela for criada com sucesso no banco de dados, uma mensagem de sucesso será impressa. Caso contrário, o programa será encerrado.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'banco de dados/sql'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados sqlite
banco de dados , errar := sql . Abrir ( 'sqlite3' , 'teste.db' )
//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
const consulta corda = `
membros CREATE TABLE IF NOT EXISTS (
id INTEIRO NÃO NULO CHAVE PRIMÁRIA,
nome CHAR(40) NÃO NULO,
mtipo CHAR(100) NÃO NULO,
e-mail CHAR(50),
endereço TEXTO NÃO NULO,
móvel CHAR(25) NÃO NULO);`

_ , errar := banco de dados . Executivo ( consulta );

se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
// Imprime a mensagem de sucesso
fmt . Println ( 'Tabela criada com sucesso.' )
}

}
//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “create_table.go”:

$ vá executar create_table.go

A saída a seguir mostra que a tabela foi criada com êxito no banco de dados. A mensagem de sucesso, “Tabela criada com sucesso”, é impressa no terminal:

Você pode fazer login no SQLite para verificar se a tabela foi criada ou não no banco de dados.

Execute o seguinte comando para executar o SQLite com o banco de dados “test.db”:

$ sqlite3 teste.db

Execute o comando SQLite “.tables” no prompt de comando SQLite para verificar os nomes das tabelas do banco de dados:

sqlite3 > .tables

A saída a seguir mostra que o banco de dados contém a tabela “members” criada pela execução do script Golang:

Insira os registros na tabela SQLite usando Golang

Vários registros podem ser inseridos na tabela executando a consulta INSERT várias vezes ou adicionando vários valores em uma única consulta INSERT. Crie um arquivo Golang com o seguinte script que insere três registros na tabela “members” do arquivo de banco de dados “test.db” usando uma única consulta INSERT. O método Exec() é usado aqui para executar a consulta INSERT. Se os registros forem inseridos com sucesso na tabela, uma mensagem de sucesso será impressa. Caso contrário, o programa será encerrado.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'banco de dados/sql'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados SQLite
banco de dados , errar := sql . Abrir ( 'sqlite3' , 'teste.db' )
//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
const consulta corda = `
INSERT INTO membros (id, nome, mtype, e-mail, endereço, celular)
VALUES(1, 'Nehal Ahmed', 'Silver', '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');`


//Execute a consulta
_ , errar := banco de dados . Executivo ( consulta );

se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
// Imprime a mensagem de sucesso
fmt . Println ( 'Registros inseridos com sucesso.' )
}
}

//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “insert_table.go”:

$ vá executar insert_table.go

A saída a seguir mostra que os registros foram inseridos com sucesso na tabela. A mensagem de sucesso, “Registros inseridos com sucesso”, é impressa na saída:

Você pode fazer login no SQLite para verificar se os três registros foram inseridos com sucesso ou não na tabela “membros”.

Execute o seguinte comando para executar o SQLite com o banco de dados “test.db”:

$ sqlite3 teste.db

Execute a seguinte consulta SELECT para ler todo o conteúdo da tabela “membros”:

sqlite3 > SELECIONAR * DE membros ;

A saída a seguir mostra que a tabela “members” contém três registros que são inseridos pelo script Golang:

Leia os dados da tabela SQLite usando Golang

Crie um arquivo Golang com o seguinte script que lê os registros da tabela “members”. Você precisa definir as variáveis ​​em Golang para armazenar os valores que são retornados da consulta SELECT. Nesse script, cinco campos são recuperados da tabela “membros” usando a consulta SELECT. Assim, cinco variáveis ​​são definidas no script para armazenar os valores dos cinco campos da tabela “members” onde o valor do campo “mtype” é “Silver”. O método Query() é usado aqui para executar a consulta SELECT. Em seguida, o loop “for” é usado para ler o conjunto de resultados retornado pela consulta SELECT. A função printf() é usada para imprimir os valores formatados do conjunto de resultados.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'banco de dados/sql'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados SQLite
banco de dados , errar := sql . Abrir ( 'sqlite3' , 'teste.db' )

//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {

//Declara variáveis ​​para armazenar os valores das linhas
era eu ia int
era nome corda
era mtype corda
era endereço corda
era móvel corda
const consulta corda = `SELECT id, nome, mtype, endereço, celular
DE membros
WHERE mtype = 'Prata';`


//Execute a consulta
linhas , errar := banco de dados . Consulta ( consulta );

se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {

// Imprime a mensagem de sucesso
fmt . Println ( 'Registros de todos os membros de prata:' )
fmt . Println ( 'EU IA \ t Nome \ t \t Tipo de membro \ t Endereço \ t \ t Nº de contato' )
para linhas . Próximo () {
linhas . Varredura ( &eu ia , &nome , &mtipo , &endereço , &móvel )
fmt . printf ( '%d \ t %s \t %s \t %s \t %s \n ' , eu ia , nome , mtype , endereço , móvel )
}
}
}
//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “select_table.go”:

$ vá executar select_table.go

Existem dois registros na tabela “members” que contém “Silver” no campo “mtype”. A saída a seguir mostra dois registros da tabela “membros” que são retornados pela consulta SELECT:

Atualize os dados da tabela SQLite usando Golang

Crie um arquivo Golang com o seguinte script que altera o valor do campo mobile da tabela “members” que contém o id valor 2. O método Exec() é usado aqui para executar a consulta UPDATE. Se o registro for atualizado com sucesso na tabela, uma mensagem de sucesso será impressa. Caso contrário, o programa será encerrado.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'banco de dados/sql'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados SQLite
banco de dados , errar := sql . Abrir ( 'sqlite3' , 'teste.db' )
//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
const consulta corda = `
UPDATE membros SET mobile = '018563452390' WHERE id = 2;`

_ , errar := banco de dados . Executivo ( consulta );

se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
// Imprime a mensagem de sucesso
fmt . Println ( 'O registro foi atualizado com sucesso.' )
}
}
//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “update_table.go”:

$ vá executar update_table.go

Na tabela “members”, a segunda linha contém o valor id de 2. A saída a seguir mostra que o registro da tabela foi atualizado com sucesso. A mensagem de sucesso, “Registro atualizado com sucesso”, é impressa no terminal:

Você pode fazer login no SQLite para verificar se algum registro da tabela de membros está atualizado ou não.

Execute o seguinte comando para executar o SQLite com o banco de dados “test.db”:

$ sqlite3 teste.db

Execute a seguinte consulta SELECT para ler todo o conteúdo da tabela “membros”:

sqlite3 > SELECIONAR * DE membros ;

O valor do campo móvel dos 2 nd registro da tabela de membros é “01994563423” antes de executar o script. A saída a seguir mostra que o valor do campo móvel do 2 nd registro da tabela de membros é alterado para “018563452390” após a execução do script:

Excluir os dados da tabela SQLite usando Golang

Crie um arquivo Golang com o seguinte script que exclui os 3 terceiro registro da tabela “membros” que contém o valor id de 3. O método Exec() é usado aqui para executar a consulta DELETE. Se o registro for excluído com sucesso da tabela, uma mensagem de sucesso será impressa. Caso contrário, o programa será encerrado.

pacote principal

//Importa os módulos necessários
importar (
'fmt'
'registro'
'banco de dados/sql'
_ 'github.com/mattn/go-sqlite3'
)

função principal () {

//Cria um novo banco de dados SQLite
banco de dados , errar := sql . Abrir ( 'sqlite3' , 'teste.db' )
//Verifica se há algum erro
se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
//Define a consulta de exclusão
const consulta corda = `DELETE FROM membros WHERE id = 3;`
//Execute a consulta
_ , errar := banco de dados . Executivo ( consulta );

se errar != nada {
//Adiciona a mensagem de erro ao log
registro . Fatal ( errar )
} outro {
// Imprime a mensagem de sucesso
fmt . Println ( 'O registro foi excluído com sucesso.' )
}
}
//Fecha a conexão com o banco de dados
banco de dados . Fechar ()
}

Execute o seguinte comando para executar o arquivo “delete_table.go”:

$ vá executar delete_table.go

A saída a seguir mostra que os 3 terceiro registro da tabela “membros” foi deletado com sucesso. A mensagem de sucesso, “Registro excluído com sucesso”, é impressa no terminal:

Você pode fazer login no SQLite para verificar se algum registro da tabela de membros foi excluído ou não.

Execute o seguinte comando para executar o SQLite com o banco de dados “test.db”:

$ sqlite3 teste.db

Execute a seguinte consulta SELECT para ler todo o conteúdo da tabela “membros”:

sqlite3 > SELECIONAR * DE membros ;

A saída a seguir mostra que o valor do 3 terceiro registro da tabela de membros é excluído após a execução do script e os outros dois registros são impressos na saída:

Conclusão

Ambos SQLite e Golang são populares agora por sua simplicidade e recursos leves. Qualquer aplicativo simples baseado em banco de dados pode ser implementado facilmente usando essas ferramentas. A parte principal de qualquer aplicativo é implementar a operação CRUD. Os métodos de implementação da operação CRUD usando o script Golang e o banco de dados SQLite são explicados neste tutorial usando vários arquivos Golang. Se você é um novo aprendiz da linguagem Go e do banco de dados SQLite, este tutorial o ajudará a aprender desde o básico.