Contoh Golang SQLite

Contoh Golang Sqlite



Golang ialah bahasa pengaturcaraan sumber terbuka. Ia menyokong pelbagai jenis alat pangkalan data. SQLite ialah enjin pangkalan data hubungan yang popular dan Golang mempunyai pakej pangkalan data/SQL yang boleh digunakan untuk menyambung dengan pangkalan data SQLite dan melaksanakan pelbagai jenis tugas pangkalan data. Cara menyambung dengan pangkalan data SQLite dan melaksanakan pelbagai jenis operasi pangkalan data seperti mencipta jadual, memasukkan rekod ke dalam jadual, membaca data daripada jadual, mengemas kini data jadual, dan memadam rekod daripada jadual ditunjukkan. dalam tutorial ini menggunakan skrip Golang.

Prasyarat:

Anda perlu menyelesaikan tugasan berikut sebelum mempraktikkan contoh dalam tutorial ini:

A. Pasang bahasa Golang dalam sistem jika ia tidak dipasang sebelum ini. Jalankan arahan berikut untuk menyemak versi Golang yang dipasang:







versi $ go



B. Pasang sqlite3 dalam sistem jika ia belum dipasang sebelum ini. Sqlite3 dipasang secara lalai pada Ubuntu 20+. Jalankan arahan berikut untuk menyemak versi sqlite3 yang dipasang:



$ sqlite3 --versi





C. Jalankan arahan berikut untuk mencipta folder bernama 'golang-sqlite' dan pergi ke folder itu di mana fail pangkalan data SQLite dan fail Golang akan disimpan:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Jalankan arahan berikut untuk memuat turun pakej Golang yang diperlukan untuk menggunakan SQLite dengan Golang:



$ pergi dapatkan github.com/mattn/go-sqlite3

Operasi Pangkalan Data Menggunakan Golang dan SQLite

Operasi pangkalan data asas menggunakan pangkalan data SQLite dan skrip Golang ditunjukkan dalam tutorial ini. Senarai tugas pangkalan data yang diliputi dalam tutorial ini disebut dalam perkara berikut:

  1. Buat Pangkalan Data SQLite
  2. Buat Sambungan Pangkalan Data SQLite
  3. Buat Jadual Baharu
  4. Masukkan Data ke dalam Jadual
  5. Baca Data daripada Jadual
  6. Kemas kini Data Jadual
  7. Padamkan Data daripada Jadual

Buat Pangkalan Data SQLite Menggunakan Golang

Cipta fail Golang dengan skrip berikut yang mencipta fail pangkalan data SQLite baharu bernama 'test.db'. Empat modul diimport ke dalam skrip. Modul 'fmt' digunakan untuk mencetak output dalam terminal. Modul 'log' digunakan untuk membatalkan program apabila sebarang ralat muncul. Modul 'os' digunakan untuk mencipta pangkalan data SQLite dan mengendalikan ralat. Modul 'go-sqlite3' digunakan untuk membuat sambungan dengan pangkalan data SQLite melalui Golang. Kaedah Cipta() modul 'os' digunakan di sini untuk mencipta pangkalan data SQLite. Jika pangkalan data berjaya dibuat, mesej kejayaan dicetak dalam terminal. Jika tidak, program akan ditamatkan. Kaedah Close() dipanggil untuk menutup sambungan pangkalan data.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'awak'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data SQLite baharu
db , silap := awak . Buat ( 'test.db' )
//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Cetak mesej kejayaan
fmt . Println ( 'Pangkalan data telah dibuat.' )
}
//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'db_connect.go':

$ pergi jalankan db_connect.go

Jalankan arahan 'ls' untuk menyemak sama ada fail pangkalan data 'test.db' dicipta atau tidak:

$ ls

Output berikut menunjukkan bahawa mesej kejayaan, 'Pangkalan Data dicipta', dicetak dalam output dan fail 'test.db' dicipta di lokasi semasa:

Berhubung dengan Pangkalan Data SQLite Menggunakan Golang

Cipta fail Golang dengan skrip berikut yang membuka fail pangkalan data 'test.db' dan buat sambungan dengan pangkalan data. Modul pangkalan data/SQL Golang diimport ke sini untuk melakukan tugas ini. Kaedah open() digunakan di sini untuk membuat sambungan dengan pangkalan data SQLite sedia ada. Jika pangkalan data berjaya disambungkan, mesej kejayaan dicetak dalam terminal. Jika tidak, program akan ditamatkan.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'pangkalan data/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data SQLite baharu
db , silap := sql . Buka ( 'sqlite3' , 'test.db' )
//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Cetak mesej kejayaan
fmt . Println ( 'Pangkalan data berjaya disambungkan.' )
}
//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'db_connect2.go':

$ pergi jalankan db_connect2.go

Output berikut menunjukkan bahawa fail pangkalan data 'test.db' dibuka dan disambungkan dengan jayanya. Mesej kejayaan, 'Pangkalan data berjaya disambungkan', dicetak dalam output:

Cipta Jadual dalam Pangkalan Data SQLite Menggunakan Golang

Cipta fail Golang dengan skrip berikut yang mencipta jadual pangkalan data bernama 'ahli' di dalam fail pangkalan data 'test.db'. Kaedah Exec() digunakan di sini untuk melaksanakan pertanyaan CREATE TABLE yang mencipta jadual 'ahli' dengan enam medan dan kunci utama. Jika jadual berjaya dibuat dalam pangkalan data, mesej kejayaan akan dicetak. Jika tidak, program akan ditamatkan.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'pangkalan data/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data sqlite baharu
db , silap := sql . Buka ( 'sqlite3' , 'test.db' )
//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
const pertanyaan tali = `
BUAT JADUAL JIKA TIDAK WUJUD ahli (
id INTEGER BUKAN NULL KUNCI UTAMA,
nama CHAR(40) BUKAN NULL,
mtype CHAR(100) BUKAN NULL,
e-mel CHAR(50),
alamat TEKS BUKAN NULL,
mudah alih CHAR(25) BUKAN NULL);`

_ , silap := db . Exec ( pertanyaan );

jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Cetak mesej kejayaan
fmt . Println ( 'Jadual berjaya dibuat.' )
}

}
//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'create_table.go':

$ pergi jalankan create_table.go

Output berikut menunjukkan bahawa jadual berjaya dibuat dalam pangkalan data. Mesej kejayaan, 'Jadual berjaya dibuat', dicetak dalam terminal:

Anda boleh log masuk ke SQLite untuk menyemak sama ada jadual dibuat atau tidak dalam pangkalan data.

Jalankan arahan berikut untuk menjalankan SQLite dengan pangkalan data 'test.db':

$ sqlite3 test.db

Jalankan arahan SQLite “.tables” daripada gesaan arahan SQLite untuk menyemak nama jadual pangkalan data:

sqlite3 > .tables

Output berikut menunjukkan bahawa pangkalan data mengandungi jadual 'ahli' yang dibuat dengan melaksanakan skrip Golang:

Masukkan Rekod ke dalam Jadual SQLite Menggunakan Golang

Berbilang rekod boleh dimasukkan ke dalam jadual dengan melaksanakan pertanyaan INSERT beberapa kali atau dengan menambah berbilang nilai dalam satu pertanyaan INSERT. Cipta fail Golang dengan skrip berikut yang memasukkan tiga rekod ke dalam jadual 'ahli' fail pangkalan data 'test.db' menggunakan satu pertanyaan INSERT. Kaedah Exec() digunakan di sini untuk melaksanakan pertanyaan INSERT. Jika rekod berjaya dimasukkan ke dalam jadual, mesej kejayaan akan dicetak. Jika tidak, program akan ditamatkan.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'pangkalan data/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data SQLite baharu
db , silap := sql . Buka ( 'sqlite3' , 'test.db' )
//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
const pertanyaan tali = `
MASUKKAN KE DALAM ahli (id, nama, mtype, e-mel, alamat, mudah alih)
NILAI(1, 'Nehal Ahmed', 'Perak', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, 'Abir Chowdhury', 'Emas', 'abir@gmail.com','102, Mirpur 10, Dhaka','01994563423'),
(3, 'Mirza Abbas', 'Perak', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');`


// Laksanakan pertanyaan
_ , silap := db . Exec ( pertanyaan );

jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Cetak mesej kejayaan
fmt . Println ( 'Rekod berjaya dimasukkan.' )
}
}

//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'insert_table.go':

$ pergi jalankan insert_table.go

Output berikut menunjukkan bahawa rekod berjaya dimasukkan ke dalam jadual. Mesej kejayaan, 'Rekod berjaya dimasukkan', dicetak dalam output:

Anda boleh log masuk ke SQLite untuk menyemak sama ada ketiga-tiga rekod itu berjaya dimasukkan atau tidak dalam jadual 'ahli'.

Jalankan arahan berikut untuk menjalankan SQLite dengan pangkalan data 'test.db':

$ sqlite3 test.db

Jalankan pertanyaan SELECT berikut untuk membaca semua kandungan jadual 'ahli':

sqlite3 > PILIH * DARIPADA ahli ;

Output berikut menunjukkan bahawa jadual 'ahli' mengandungi tiga rekod yang disisipkan oleh skrip Golang:

Baca Data Jadual SQLite Menggunakan Golang

Buat fail Golang dengan skrip berikut yang membaca rekod jadual 'ahli'. Anda perlu menentukan pembolehubah dalam Golang untuk menyimpan nilai yang dikembalikan daripada pertanyaan SELECT. Dalam skrip ini, lima medan diambil daripada jadual 'ahli' menggunakan pertanyaan SELECT. Jadi, lima pembolehubah ditakrifkan dalam skrip untuk menyimpan nilai lima medan jadual 'ahli' di mana nilai medan 'mtype' ialah 'Perak'. Kaedah Query() digunakan di sini untuk melaksanakan pertanyaan SELECT. Seterusnya, gelung 'untuk' digunakan untuk membaca set hasil yang dikembalikan oleh pertanyaan SELECT. Fungsi printf() digunakan untuk mencetak nilai terformat bagi set hasil.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'pangkalan data/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data SQLite baharu
db , silap := sql . Buka ( 'sqlite3' , 'test.db' )

//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {

//Isytiharkan pembolehubah untuk menyimpan nilai baris
adalah ID int
adalah nama tali
adalah mtype tali
adalah alamat tali
adalah mudah alih tali
const pertanyaan tali = `PILIH id, nama, mtype, alamat, mudah alih
DARIPADA ahli
WHERE mtype = 'Perak';`


// Laksanakan pertanyaan
barisan , silap := db . Pertanyaan ( pertanyaan );

jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {

//Cetak mesej kejayaan
fmt . Println ( 'Rekod semua ahli perak:' )
fmt . Println ( 'ID \t Nama \t \t Jenis Ahli \t Alamat \t \t No Kenalan' )
untuk barisan . Seterusnya () {
barisan . Imbas ( &ID , &nama , &mtype , &alamat , &mudah alih )
fmt . Cetakanf ( '%d \t %s \t %s \t %s \t %s \n ' , ID , nama , mtype , alamat , mudah alih )
}
}
}
//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'select_table.go':

$ pergi jalankan select_table.go

Dua rekod wujud dalam jadual 'ahli' yang mengandungi 'Perak' dalam medan 'mtype'. Output berikut menunjukkan dua rekod jadual 'ahli' yang dikembalikan oleh pertanyaan SELECT:

Kemas kini Data Jadual SQLite Menggunakan Golang

Cipta fail Golang dengan skrip berikut yang mengubah nilai medan mudah alih jadual 'ahli' yang mengandungi nilai id 2. Kaedah Exec() digunakan di sini untuk melaksanakan pertanyaan KEMASKINI. Jika rekod berjaya dikemas kini dalam jadual, mesej kejayaan akan dicetak. Jika tidak, program akan ditamatkan.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'pangkalan data/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data SQLite baharu
db , silap := sql . Buka ( 'sqlite3' , 'test.db' )
//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
const pertanyaan tali = `
KEMASKINI ahli SET mudah alih = '018563452390' WHERE id = 2;`

_ , silap := db . Exec ( pertanyaan );

jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Cetak mesej kejayaan
fmt . Println ( 'Rekod berjaya dikemas kini.' )
}
}
//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'update_table.go':

$ pergi jalankan update_table.go

Dalam jadual 'ahli', baris kedua mengandungi nilai id 2. Output berikut menunjukkan bahawa rekod jadual berjaya dikemas kini. Mesej kejayaan, 'Rekod berjaya dikemas kini', dicetak dalam terminal:

Anda boleh log masuk ke SQLite untuk menyemak sama ada sebarang rekod jadual ahli dikemas kini atau tidak.

Jalankan arahan berikut untuk menjalankan SQLite dengan pangkalan data 'test.db':

$ sqlite3 test.db

Jalankan pertanyaan SELECT berikut untuk membaca semua kandungan jadual 'ahli':

sqlite3 > PILIH * DARIPADA ahli ;

Nilai medan mudah alih 2 nd rekod jadual ahli ialah '01994563423' sebelum melaksanakan skrip. Output berikut menunjukkan bahawa nilai medan mudah alih 2 nd rekod jadual ahli ditukar kepada '018563452390' selepas melaksanakan skrip:

Padamkan Data Jadual SQLite Menggunakan Golang

Buat fail Golang dengan skrip berikut yang memadamkan fail 3 rd rekod jadual 'ahli' yang mengandungi nilai id 3. Kaedah Exec() digunakan di sini untuk melaksanakan pertanyaan DELETE. Jika rekod berjaya dipadamkan daripada jadual, mesej kejayaan akan dicetak. Jika tidak, program akan ditamatkan.

pakej utama

//Import modul yang diperlukan
import (
'fmt'
'log'
'pangkalan data/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat pangkalan data SQLite baharu
db , silap := sql . Buka ( 'sqlite3' , 'test.db' )
//Semak sebarang ralat
jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Tentukan pertanyaan padam
const pertanyaan tali = `PADAM DARI ahli WHERE id = 3;`
// Laksanakan pertanyaan
_ , silap := db . Exec ( pertanyaan );

jika silap != tiada {
//Tambahkan mesej ralat pada log
log . Maut ( silap )
} lain {
//Cetak mesej kejayaan
fmt . Println ( 'Rekod berjaya dipadamkan.' )
}
}
//Tutup sambungan pangkalan data
db . tutup ()
}

Jalankan arahan berikut untuk melaksanakan fail 'delete_table.go':

$ pergi jalankan delete_table.go

Output berikut menunjukkan bahawa 3 rd rekod jadual 'ahli' berjaya dipadamkan. Mesej kejayaan, 'Rekod berjaya dipadam', dicetak dalam terminal:

Anda boleh log masuk ke SQLite untuk menyemak sama ada sebarang rekod jadual ahli dipadamkan atau tidak.

Jalankan arahan berikut untuk menjalankan SQLite dengan pangkalan data 'test.db':

$ sqlite3 test.db

Jalankan pertanyaan SELECT berikut untuk membaca semua kandungan jadual 'ahli':

sqlite3 > PILIH * DARIPADA ahli ;

Output berikut menunjukkan bahawa nilai 3 rd rekod jadual ahli dipadamkan selepas melaksanakan skrip dan dua rekod lain dicetak dalam output:

Kesimpulan

Kedua-dua SQLite dan Golang kini popular kerana kesederhanaan dan ciri ringannya. Sebarang aplikasi berasaskan pangkalan data mudah boleh dilaksanakan dengan mudah menggunakan alat ini. Bahagian utama mana-mana aplikasi adalah untuk melaksanakan operasi CRUD. Kaedah melaksanakan operasi CRUD menggunakan skrip Golang dan pangkalan data SQLite dijelaskan dalam tutorial ini menggunakan berbilang fail Golang. Jika anda seorang pelajar baharu bahasa Go dan pangkalan data SQLite, tutorial ini akan membantu anda mempelajarinya dari asas.