Golang SQLite Exemples

Golang Sqlite Exemples



Golang est un langage de programmation open source. Il prend en charge différents types d'outils de base de données. SQLite est un moteur de base de données relationnelle populaire et Golang dispose d'un package base de données/SQL qui peut être utilisé pour se connecter à la base de données SQLite et effectuer différents types de tâches de base de données. La manière de se connecter à la base de données SQLite et d'effectuer différents types d'opérations de base de données telles que la création de la table, l'insertion des enregistrements dans la table, la lecture des données de la table, la mise à jour des données de la table et la suppression des enregistrements de la table sont affichés dans ce tutoriel en utilisant le script Golang.

Conditions préalables:

Vous devez effectuer les tâches suivantes avant de mettre en pratique les exemples de ce didacticiel :

A. Installez le langage Golang dans le système s'il n'est pas installé auparavant. Exécutez la commande suivante pour vérifier la version installée de Golang :







$ aller version



B. Installez le sqlite3 dans le système s'il n'a pas été installé auparavant. Sqlite3 est installé par défaut sur Ubuntu 20+. Exécutez la commande suivante pour vérifier la version installée de sqlite3 :



$ sqlite3 --version





C. Exécutez les commandes suivantes pour créer un dossier nommé 'golang-sqlite' et accédez à ce dossier où le fichier de base de données SQLite et le fichier Golang seront stockés :

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Exécutez la commande suivante pour télécharger le package Golang nécessaire pour utiliser SQLite avec Golang :



$ allez chercher github.com/mattn/go-sqlite3

Opérations de base de données à l'aide de Golang et SQLite

Les opérations de base de données de base utilisant la base de données SQLite et le script Golang sont présentées dans ce didacticiel. La liste des tâches de base de données couvertes dans ce didacticiel est mentionnée ci-dessous :

  1. Créer une base de données SQLite
  2. Établir une connexion à la base de données SQLite
  3. Créer un nouveau tableau
  4. Insérer les données dans le tableau
  5. Lire les données du tableau
  6. Mettre à jour les données du tableau
  7. Supprimer les données du tableau

Créer une base de données SQLite à l'aide de Golang

Créez un fichier Golang avec le script suivant qui crée un nouveau fichier de base de données SQLite nommé 'test.db'. Quatre modules sont importés dans le script. Le module 'fmt' est utilisé pour imprimer la sortie dans le terminal. Le module 'log' est utilisé pour interrompre le programme lorsqu'une erreur apparaît. Le module 'os' est utilisé pour créer la base de données SQLite et gérer l'erreur. Le module 'go-sqlite3' est utilisé pour établir des connexions avec la base de données SQLite via Golang. La méthode Create() du module 'os' est utilisée ici pour créer une base de données SQLite. Si la base de données est créée avec succès, un message de réussite est imprimé dans le terminal. Sinon, le programme sera interrompu. La méthode Close() est appelée pour fermer la connexion à la base de données.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'toi'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données SQLite
db , se tromper := toi . Créer ( 'test.db' )
//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Imprime le message de réussite
fmt . Imprimerln ( 'La base de données est créée.' )
}
//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « db_connect.go » :

$ aller exécuter db_connect.go

Exécutez la commande 'ls' pour vérifier si le fichier de base de données 'test.db' est créé ou non :

$ ls

La sortie suivante montre que le message de réussite 'La base de données est créée' est imprimé dans la sortie et que le fichier 'test.db' est créé à l'emplacement actuel :

Connectez-vous à une base de données SQLite à l'aide de Golang

Créez un fichier Golang avec le script suivant qui ouvre le fichier de base de données 'test.db' et établit la connexion avec la base de données. Le module base de données/SQL de Golang est importé ici pour effectuer cette tâche. La méthode open() est utilisée ici pour faire la connexion avec la base de données SQLite existante. Si la base de données est connectée avec succès, un message de réussite est imprimé dans le terminal. Sinon, le programme sera interrompu.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'base de données/sql'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données SQLite
db , se tromper := sql . Ouvrir ( 'sqlite3' , 'test.db' )
//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Imprime le message de réussite
fmt . Imprimerln ( 'La base de données est connectée avec succès.' )
}
//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « db_connect2.go » :

$ aller exécuter db_connect2.go

La sortie suivante montre que le fichier de base de données 'test.db' est ouvert et connecté avec succès. Le message de réussite, 'La base de données est connectée avec succès', est imprimé dans la sortie :

Créer une table dans une base de données SQLite à l'aide de Golang

Créez un fichier Golang avec le script suivant qui crée une table de base de données nommée 'members' dans le fichier de base de données 'test.db'. La méthode Exec() est utilisée ici pour exécuter la requête CREATE TABLE qui crée la table « membres » avec six champs et une clé primaire. Si la table est créée avec succès dans la base de données, un message de réussite est imprimé. Sinon, le programme sera interrompu.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'base de données/sql'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données sqlite
db , se tromper := sql . Ouvrir ( 'sqlite3' , 'test.db' )
//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
constante requête chaîne = `
CRÉER TABLE SI NON EXISTE membres (
id INTEGER NOT NULL CLÉ PRIMAIRE,
nom CHAR(40) NOT NULL,
mtype CHAR(100) NON NULL,
e-mail CHAR(50),
adresse TEXTE NON NULL,
mobile CHAR(25) NOT NULL);`

_ , se tromper := db . Exécutif ( requête );

si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Imprime le message de réussite
fmt . Imprimerln ( 'La table a été créée avec succès.' )
}

}
//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « create_table.go » :

$ aller exécuter create_table.go

La sortie suivante montre que la table est créée avec succès dans la base de données. Le message de réussite, 'La table est créée avec succès', est imprimé dans le terminal :

Vous pouvez vous connecter à SQLite pour vérifier si la table est créée ou non dans la base de données.

Exécutez la commande suivante pour exécuter SQLite avec la base de données « test.db » :

$ sqlite3 test.db

Exécutez la commande SQLite '.tables' à partir de l'invite de commande SQLite pour vérifier les noms de table de la base de données :

sqlite3 > .tables

La sortie suivante montre que la base de données contient la table « membres » qui est créée en exécutant le script Golang :

Insérez les enregistrements dans la table SQLite à l'aide de Golang

Plusieurs enregistrements peuvent être insérés dans la table en exécutant la requête INSERT plusieurs fois ou en ajoutant plusieurs valeurs dans une seule requête INSERT. Créez un fichier Golang avec le script suivant qui insère trois enregistrements dans la table 'members' du fichier de base de données 'test.db' à l'aide d'une seule requête INSERT. La méthode Exec() est utilisée ici pour exécuter la requête INSERT. Si les enregistrements sont insérés avec succès dans la table, un message de réussite est imprimé. Sinon, le programme sera interrompu.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'base de données/sql'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données SQLite
db , se tromper := sql . Ouvrir ( 'sqlite3' , 'test.db' )
//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
constante requête chaîne = `
Membres INSERT INTO (identifiant, nom, mtype, e-mail, adresse, mobile)
VALEURS (1, 'Nehal Ahmed', 'Argent', 'nehal@gmail.com','36, Dhanmondi 2, Dacca','01844657342'),
(2, 'Abir Chowdhury', 'Or', 'abir@gmail.com','102, Mirpur 10, Dacca','01994563423'),
(3, 'Mirza Abbas', 'Argent', 'abbas@gmail.com','12, Jigatala, Dacca','01640006710');`


// Exécute la requête
_ , se tromper := db . Exécutif ( requête );

si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Imprime le message de réussite
fmt . Imprimerln ( 'Enregistrements insérés avec succès.' )
}
}

//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « insert_table.go » :

$ aller exécuter insert_table.go

La sortie suivante montre que les enregistrements sont correctement insérés dans la table. Le message de réussite, 'Enregistrements insérés avec succès', est imprimé dans la sortie :

Vous pouvez vous connecter à SQLite pour vérifier si les trois enregistrements sont insérés avec succès ou non dans la table « membres ».

Exécutez la commande suivante pour exécuter SQLite avec la base de données « test.db » :

$ sqlite3 test.db

Exécutez la requête SELECT suivante pour lire tout le contenu de la table 'members' :

sqlite3> SÉLECTIONNER * DE membres ;

La sortie suivante montre que la table 'members' contient trois enregistrements qui sont insérés par le script Golang :

Lire les données de la table SQLite à l'aide de Golang

Créez un fichier Golang avec le script suivant qui lit les enregistrements de la table « membres ». Vous devez définir les variables dans Golang pour stocker les valeurs renvoyées par la requête SELECT. Dans ce script, cinq champs sont extraits de la table « membres » à l'aide de la requête SELECT. Ainsi, cinq variables sont définies dans le script pour stocker les valeurs des cinq champs de la table 'members' où la valeur du champ 'mtype' est 'Silver'. La méthode Query() est utilisée ici pour exécuter la requête SELECT. Ensuite, la boucle 'for' est utilisée pour lire le jeu de résultats renvoyé par la requête SELECT. La fonction printf() est utilisée pour imprimer les valeurs formatées du jeu de résultats.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'base de données/sql'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données SQLite
db , se tromper := sql . Ouvrir ( 'sqlite3' , 'test.db' )

//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {

//Déclarer des variables pour stocker les valeurs des lignes
était identifiant entier
était nom chaîne
était mtype chaîne
était adresse chaîne
était mobile chaîne
constante requête chaîne = `SELECT id, nom, mtype, adresse, mobile
DE membres
WHERE mtype = 'Argent';`


// Exécute la requête
Lignes , se tromper := db . Requête ( requête );

si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {

//Imprime le message de réussite
fmt . Imprimerln ( 'Dossiers de tous les membres argent :' )
fmt . Imprimerln ( 'IDENTIFIANT \t Nom \t \t Type de membre \t Adresse \t \t N° de contact' )
pour Lignes . Suivant () {
Lignes . Analyse ( &identifiant , &nom , &type , &adresse , &mobile )
fmt . Imprimerf ( '%d \t %s \t %s \t %s \t %s \n ' , identifiant , nom , mtype , adresse , mobile )
}
}
}
//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « select_table.go » :

$ aller exécuter select_table.go

Deux enregistrements existent dans la table « members » qui contient « Silver » dans le champ « mtype ». La sortie suivante montre deux enregistrements de la table « membres » qui sont renvoyés par la requête SELECT :

Mettre à jour les données de la table SQLite à l'aide de Golang

Créez un fichier Golang avec le script suivant qui modifie la valeur du champ mobile de la table 'members' qui contient la valeur id de 2. La méthode Exec() est utilisée ici pour exécuter la requête UPDATE. Si l'enregistrement est mis à jour avec succès dans la table, un message de réussite est imprimé. Sinon, le programme sera interrompu.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'base de données/sql'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données SQLite
db , se tromper := sql . Ouvrir ( 'sqlite3' , 'test.db' )
//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
constante requête chaîne = `
UPDATE membres SET mobile = '018563452390' WHERE id = 2;`

_ , se tromper := db . Exécutif ( requête );

si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Imprime le message de réussite
fmt . Imprimerln ( 'L'enregistrement a été mis à jour avec succès.' )
}
}
//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « update_table.go » :

$ aller exécuter update_table.go

Dans la table « members », la deuxième ligne contient la valeur id de 2. La sortie suivante montre que l'enregistrement de la table est mis à jour avec succès. Le message de réussite, 'L'enregistrement est mis à jour avec succès', est imprimé dans le terminal :

Vous pouvez vous connecter à SQLite pour vérifier si un enregistrement de la table des membres est mis à jour ou non.

Exécutez la commande suivante pour exécuter SQLite avec la base de données « test.db » :

$ sqlite3 test.db

Exécutez la requête SELECT suivante pour lire tout le contenu de la table 'members' :

sqlite3> SÉLECTIONNER * DE membres ;

La valeur du champ mobile des 2 nd l'enregistrement de la table des membres est '01994563423' avant d'exécuter le script. La sortie suivante montre que la valeur du champ mobile du 2 nd l'enregistrement de la table des membres est remplacé par '018563452390' après l'exécution du script :

Supprimer les données de la table SQLite à l'aide de Golang

Créez un fichier Golang avec le script suivant qui supprime les 3 rd enregistrement de la table « members » qui contient la valeur id de 3. La méthode Exec() est utilisée ici pour exécuter la requête DELETE. Si l'enregistrement est supprimé avec succès de la table, un message de réussite est imprimé. Sinon, le programme sera interrompu.

emballer principal

//Importer les modules nécessaires
importer (
'fmt'
'enregistrer'
'base de données/sql'
_ 'github.com/mattn/go-sqlite3'
)

fonction principal () {

//Créer une nouvelle base de données SQLite
db , se tromper := sql . Ouvrir ( 'sqlite3' , 'test.db' )
//Vérifier toute erreur
si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Définir la requête de suppression
constante requête chaîne = `SUPPRIMER DES membres OÙ id = 3;`
// Exécute la requête
_ , se tromper := db . Exécutif ( requête );

si se tromper != néant {
//Ajouter le message d'erreur au journal
enregistrer . Fatal ( se tromper )
} autre {
//Imprime le message de réussite
fmt . Imprimerln ( 'L'enregistrement a été supprimé avec succès.' )
}
}
//Ferme la connexion à la base de données
db . Fermer ()
}

Exécutez la commande suivante pour exécuter le fichier « delete_table.go » :

$ aller exécuter delete_table.go

La sortie suivante montre que le 3 rd l'enregistrement de la table « membres » a été supprimé avec succès. Le message de réussite, 'L'enregistrement a été supprimé avec succès', est imprimé dans le terminal :

Vous pouvez vous connecter à SQLite pour vérifier si un enregistrement de la table des membres est supprimé ou non.

Exécutez la commande suivante pour exécuter SQLite avec la base de données « test.db » :

$ sqlite3 test.db

Exécutez la requête SELECT suivante pour lire tout le contenu de la table 'members' :

sqlite3> SÉLECTIONNER * DE membres ;

La sortie suivante montre que la valeur du 3 rd l'enregistrement de la table des membres est supprimé après l'exécution du script et les deux autres enregistrements sont imprimés dans la sortie :

Conclusion

SQLite et Golang sont maintenant populaires pour leur simplicité et leurs fonctionnalités légères. Toute application simple basée sur une base de données peut être facilement mise en œuvre à l'aide de ces outils. La majeure partie de toute application consiste à implémenter l'opération CRUD. Les méthodes de mise en œuvre de l'opération CRUD à l'aide du script Golang et de la base de données SQLite sont expliquées dans ce didacticiel à l'aide de plusieurs fichiers Golang. Si vous êtes un nouvel apprenant du langage Go et de la base de données SQLite, ce tutoriel vous aidera à les apprendre à partir de la base.