Golang SQLite-voorbeelden

Golang Sqlite Voorbeelden



Golang is een open-source programmeertaal. Het ondersteunt verschillende soorten databasetools. SQLite is een populaire relationele database-engine en Golang heeft een database/SQL-pakket dat kan worden gebruikt om verbinding te maken met de SQLite-database en om verschillende soorten databasetaken uit te voeren. De manier om verbinding te maken met de SQLite-database en het uitvoeren van verschillende soorten databasebewerkingen, zoals het maken van de tabel, het invoegen van de records in de tabel, het lezen van de gegevens uit de tabel, het bijwerken van de gegevens van de tabel en het verwijderen van de records uit de tabel worden getoond in deze zelfstudie met behulp van het Golang-script.

Vereisten:

U moet de volgende taken voltooien voordat u de voorbeelden in deze zelfstudie oefent:

A. Installeer de Golang-taal in het systeem als deze nog niet eerder is geïnstalleerd. Voer de volgende opdracht uit om de geïnstalleerde versie van Golang te controleren:







$ go-versie



B. Installeer de sqlite3 in het systeem als deze nog niet eerder is geïnstalleerd. Sqlite3 is standaard geïnstalleerd op Ubuntu 20+. Voer de volgende opdracht uit om de geïnstalleerde versie van sqlite3 te controleren:



$ sqlite3 --versie





C. Voer de volgende opdrachten uit om een ​​map met de naam 'golang-sqlite' te maken en ga naar die map waar het SQLite-databasebestand en het Golang-bestand worden opgeslagen:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Voer de volgende opdracht uit om het benodigde Golang-pakket te downloaden om SQLite met Golang te gebruiken:



$ ga naar github.com/mattn/go-sqlite3

Databasebewerkingen met behulp van Golang en SQLite

De basisbewerkingen van databases met behulp van de SQLite-database en het Golang-script worden in deze zelfstudie getoond. De lijst met databasetaken die in deze zelfstudie worden behandeld, wordt als volgt vermeld:

  1. Maak een SQLite-database
  2. Maak een SQLite-databaseverbinding
  3. Maak een nieuwe tabel
  4. Plaats de gegevens in de tabel
  5. Lees de gegevens uit de tabel
  6. Werk de gegevens van de tabel bij
  7. Verwijder de gegevens uit de tabel

Maak een SQLite-database met Golang

Maak een Golang-bestand met het volgende script dat een nieuw SQLite-databasebestand maakt met de naam 'test.db'. Vier modules worden geïmporteerd in het script. De 'fmt' -module wordt gebruikt om de uitvoer in de terminal af te drukken. De 'log' module wordt gebruikt om het programma af te breken als er een fout optreedt. De 'os' -module wordt gebruikt om de SQLite-database te maken en de fout af te handelen. De “go-sqlite3” module wordt gebruikt om via Golang verbindingen te maken met de SQLite database. De methode Create() van de module 'os' wordt hier gebruikt om een ​​SQLite-database te maken. Als de database met succes is aangemaakt, wordt er een succesbericht afgedrukt in de terminal. Anders wordt het programma beëindigd. De methode Close() wordt aangeroepen om de databaseverbinding te sluiten.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'Jij'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe SQLite-database
db , fout := Jij . Creëren ( 'test.db' )
//Controleer op eventuele fouten
als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Druk het succesbericht af
fmt . Println ( 'Database is gemaakt.' )
}
//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'db_connect.go' uit te voeren:

$ ga db_connect.go uitvoeren

Voer de opdracht 'ls' uit om te controleren of het databasebestand 'test.db' is gemaakt of niet:

$ ls

De volgende uitvoer laat zien dat het succesbericht, 'Database is gemaakt', wordt afgedrukt in de uitvoer en dat het bestand 'test.db' wordt gemaakt op de huidige locatie:

Maak verbinding met een SQLite-database met behulp van Golang

Maak een Golang-bestand met het volgende script dat het databasebestand 'test.db' opent en maak de verbinding met de database. De database/SQL-module van Golang wordt hier geïmporteerd om deze taak uit te voeren. De methode open() wordt hier gebruikt om de verbinding met de bestaande SQLite-database te maken. Als de database met succes is verbonden, wordt er een succesbericht in de terminal afgedrukt. Anders wordt het programma beëindigd.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe SQLite-database
db , fout := sql . Open ( 'sqlite3' , 'test.db' )
//Controleer op eventuele fouten
als fout != nihil {
//Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Druk het succesbericht af
fmt . Println ( 'Database is succesvol verbonden.' )
}
//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'db_connect2.go' uit te voeren:

$ ga db_connect2.go uitvoeren

De volgende uitvoer laat zien dat het databasebestand 'test.db' is geopend en met succes is verbonden. Het succesbericht, 'Database is succesvol verbonden', wordt afgedrukt in de uitvoer:

Maak een tabel in een SQLite-database met behulp van Golang

Maak een Golang-bestand met het volgende script dat een databasetabel maakt met de naam 'members' in het databasebestand 'test.db'. De methode Exec() wordt hier gebruikt om de CREATE TABLE-query uit te voeren die de tabel 'leden' met zes velden en een primaire sleutel maakt. Als de tabel met succes in de database is gemaakt, wordt er een succesbericht afgedrukt. Anders wordt het programma beëindigd.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe sqlite-database
db , fout := sql . Open ( 'sqlite3' , 'test.db' )
//Controleer op eventuele fouten
als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
const vraag snaar = `
MAAK TABEL INDIEN NIET BESTAAN leden (
id INTEGER NIET NULL PRIMAIRE SLEUTEL,
naam CHAR(40) NIET NULL,
mtype CHAR(100) NIET NULL,
e-mail CHAR(50),
adres TEKST NIET NULL,
mobile CHAR(25) NIET NULL);`

_ , fout := db . Directeur ( vraag );

als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Druk het succesbericht af
fmt . Println ( 'Tabel is succesvol aangemaakt.' )
}

}
//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'create_table.go' uit te voeren:

$ ga create_table.go uitvoeren

De volgende uitvoer laat zien dat de tabel met succes is gemaakt in de database. Het succesbericht, 'Tabel is met succes gemaakt', wordt afgedrukt in de terminal:

U kunt inloggen op SQLite om te controleren of de tabel in de database is gemaakt of niet.

Voer de volgende opdracht uit om SQLite uit te voeren met de database 'test.db':

$ sqlite3 test.db

Voer de '.tables' SQLite-opdracht uit vanaf de SQLite-opdrachtprompt om de tabelnamen van de database te controleren:

sqlite3 > .tabellen

De volgende uitvoer laat zien dat de database de tabel 'leden' bevat die is gemaakt door het Golang-script uit te voeren:

Voeg de records in de SQLite-tabel in met behulp van Golang

Er kunnen meerdere records in de tabel worden ingevoegd door de INSERT-query meerdere keren uit te voeren of door meerdere waarden toe te voegen in een enkele INSERT-query. Maak een Golang-bestand met het volgende script dat drie records invoegt in de tabel 'members' van het databasebestand 'test.db' met behulp van een enkele INSERT-query. De methode Exec() wordt hier gebruikt om de INSERT-query uit te voeren. Als de records met succes in de tabel zijn ingevoegd, wordt een succesbericht afgedrukt. Anders wordt het programma beëindigd.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe SQLite-database
db , fout := sql . Open ( 'sqlite3' , 'test.db' )
//Controleer op eventuele fouten
als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
const vraag snaar = `
INSERT INTO leden (id, naam, mtype, e-mail, adres, mobiel)
WAARDEN(1, 'Nehal Ahmed', 'Zilver', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, 'Abir Chowdhury', 'Goud', 'abir@gmail.com','102, Mirpur 10, Dhaka','01994563423'),
(3, 'Mirza Abbas', 'Zilver', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');`


// Voer de query uit
_ , fout := db . Directeur ( vraag );

als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Druk het succesbericht af
fmt . Println ( 'Records met succes ingevoegd.' )
}
}

//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'insert_table.go' uit te voeren:

$ ga insert_table.go uitvoeren

De volgende uitvoer laat zien dat records met succes in de tabel zijn ingevoegd. Het succesbericht, 'Records succesvol ingevoegd', wordt afgedrukt in de uitvoer:

U kunt inloggen op SQLite om te controleren of de drie records met succes zijn ingevoegd in de tabel 'leden'.

Voer de volgende opdracht uit om SQLite uit te voeren met de database 'test.db':

$ sqlite3 test.db

Voer de volgende SELECT-query uit om alle inhoud van de tabel 'members' te lezen:

sqlite3 > SELECTEREN * VAN leden ;

De volgende uitvoer laat zien dat de tabel 'members' drie records bevat die zijn ingevoegd door het Golang-script:

Lees de gegevens van de SQLite-tabel met behulp van Golang

Maak een Golang-bestand met het volgende script dat de records van de tabel 'leden' leest. U moet de variabelen in Golang definiëren om de waarden op te slaan die worden geretourneerd door de SELECT-query. In dit script worden vijf velden opgehaald uit de tabel 'leden' met behulp van de SELECT-query. Er zijn dus vijf variabelen gedefinieerd in het script om de waarden op te slaan van de vijf velden van de tabel 'leden', waarbij de waarde van het veld 'mtype' 'Zilver' is. De methode Query() wordt hier gebruikt om de SELECT-query uit te voeren. Vervolgens wordt de 'for'-lus gebruikt om de resultatenset te lezen die wordt geretourneerd door de SELECT-query. De functie printf() wordt gebruikt om de geformatteerde waarden van de resultatenset af te drukken.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe SQLite-database
db , fout := sql . Open ( 'sqlite3' , 'test.db' )

//Controleer op eventuele fouten
als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {

//Declareer variabelen om de rijwaarden op te slaan
was ID kaart int
was naam snaar
was mtype snaar
was adres snaar
was mobiel snaar
const vraag snaar = `SELECTEER id, naam, mtype, adres, mobiel
VAN leden
WHERE mtype = 'Zilver';`


// Voer de query uit
rijen , fout := db . Vraag ( vraag );

als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {

// Druk het succesbericht af
fmt . Println ( 'Records van alle zilveren leden:' )
fmt . Println ( 'ID KAART \T Naam \T \T Type lid \T Adres \T \T Contactnr' )
voor rijen . Volgende () {
rijen . Scannen ( &ID kaart , &naam , &mtype , &adres , &mobiel )
fmt . Printf ( '%D \T %S \T %S \T %S \T %S \N ' , ID kaart , naam , mtype , adres , mobiel )
}
}
}
//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'select_table.go' uit te voeren:

$ ga select_table.go uitvoeren

Er zijn twee records in de tabel 'members' die 'Silver' bevat in het veld 'mtype'. De volgende uitvoer toont twee records van de tabel 'leden' die worden geretourneerd door de SELECT-query:

Werk de gegevens van de SQLite-tabel bij met behulp van Golang

Maak een Golang-bestand met het volgende script dat de waarde wijzigt van het mobiele veld van de tabel 'members' die de id-waarde 2 bevat. De Exec()-methode wordt hier gebruikt om de UPDATE-query uit te voeren. Als het record met succes in de tabel is bijgewerkt, wordt een succesbericht afgedrukt. Anders wordt het programma beëindigd.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe SQLite-database
db , fout := sql . Open ( 'sqlite3' , 'test.db' )
//Controleer op eventuele fouten
als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
const vraag snaar = `
UPDATE leden SET mobile = '018563452390' WHERE id = 2;`

_ , fout := db . Directeur ( vraag );

als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Druk het succesbericht af
fmt . Println ( 'Record is succesvol bijgewerkt.' )
}
}
//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'update_table.go' uit te voeren:

$ ga update_table.go uitvoeren

In de tabel 'leden' bevat de tweede rij de id-waarde 2. De volgende uitvoer laat zien dat het record van de tabel met succes is bijgewerkt. Het succesbericht, 'Record is succesvol bijgewerkt', wordt afgedrukt in de terminal:

U kunt inloggen op SQLite om te controleren of een record van de ledentabel is bijgewerkt of niet.

Voer de volgende opdracht uit om SQLite uit te voeren met de database 'test.db':

$ sqlite3 test.db

Voer de volgende SELECT-query uit om alle inhoud van de tabel 'members' te lezen:

sqlite3 > SELECTEREN * VAN leden ;

De waarde van het mobiele veld van de 2 zd record van de ledentabel is '01994563423' voordat het script wordt uitgevoerd. De volgende uitvoer laat zien dat de waarde van het mobiele veld van de 2 zd record van de ledentabel wordt gewijzigd in '018563452390' na het uitvoeren van het script:

Verwijder de gegevens van de SQLite-tabel met behulp van Golang

Maak een Golang-bestand met het volgende script dat de 3 e.d record van de tabel 'members' die de id-waarde 3 bevat. De methode Exec() wordt hier gebruikt om de DELETE-query uit te voeren. Als het record met succes uit de tabel is verwijderd, wordt een succesbericht afgedrukt. Anders wordt het programma beëindigd.

pakket voornaamst

//Importeer de benodigde modules
importeren (
'fmt'
'logboek'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func voornaamst () {

//Maak een nieuwe SQLite-database
db , fout := sql . Open ( 'sqlite3' , 'test.db' )
//Controleer op eventuele fouten
als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Definieer de verwijderquery
const vraag snaar = `VERWIJDEREN UIT leden WAAR id = 3;`
// Voer de query uit
_ , fout := db . Directeur ( vraag );

als fout != nihil {
// Voeg het foutbericht toe aan het logboek
loggen . dodelijk ( fout )
} anders {
// Druk het succesbericht af
fmt . Println ( 'Record is succesvol verwijderd.' )
}
}
//Sluit de databaseverbinding
db . Dichtbij ()
}

Voer de volgende opdracht uit om het bestand 'delete_table.go' uit te voeren:

$ ga delete_table.go uitvoeren

De volgende uitvoer laat zien dat de 3 e.d record van de tabel 'leden' is succesvol verwijderd. Het succesbericht, 'Record is succesvol verwijderd', wordt afgedrukt in de terminal:

U kunt inloggen op SQLite om te controleren of een record van de ledentabel is verwijderd of niet.

Voer de volgende opdracht uit om SQLite uit te voeren met de database 'test.db':

$ sqlite3 test.db

Voer de volgende SELECT-query uit om alle inhoud van de tabel 'members' te lezen:

sqlite3 > SELECTEREN * VAN leden ;

De volgende uitvoer laat zien dat de waarde van de 3 e.d record van de ledentabel wordt verwijderd na het uitvoeren van het script en de andere twee records worden afgedrukt in de uitvoer:

Conclusie

Zowel SQLite als Golang zijn nu populair vanwege hun eenvoud en lichtgewicht functies. Elke eenvoudige database-gebaseerde applicatie kan eenvoudig worden geïmplementeerd met behulp van deze tools. Het grootste deel van elke toepassing is het implementeren van de CRUD-bewerking. De methoden voor het implementeren van CRUD-bewerkingen met behulp van het Golang-script en de SQLite-database worden in deze zelfstudie uitgelegd met behulp van meerdere Golang-bestanden. Als u een nieuwe leerling bent van de Go-taal en de SQLite-database, helpt deze tutorial u deze vanaf de basis te leren.