Contoh Golang SQLite

Contoh Golang Sqlite



Golang adalah bahasa pemrograman open-source. Ini mendukung berbagai jenis alat basis data. SQLite adalah mesin basis data relasional yang populer dan Golang memiliki paket basis data/SQL yang dapat digunakan untuk terhubung dengan basis data SQLite dan melakukan berbagai jenis tugas basis data. Cara menghubungkan dengan database SQLite dan melakukan berbagai jenis operasi database seperti membuat tabel, memasukkan catatan ke dalam tabel, membaca data dari tabel, memperbarui data tabel, dan menghapus catatan dari tabel diperlihatkan pada tutorial ini menggunakan script Golang.

Prasyarat:

Anda harus menyelesaikan tugas berikut sebelum mempraktikkan contoh dalam tutorial ini:

A. Instal bahasa Golang di sistem jika belum diinstal sebelumnya. Jalankan perintah berikut untuk memeriksa versi Golang yang diinstal:







versi $ pergi



B. Instal sqlite3 di sistem jika belum diinstal sebelumnya. Sqlite3 diinstal secara default di Ubuntu 20+. Jalankan perintah berikut untuk memeriksa versi sqlite3 yang diinstal:



$ sqlite3 --versi





C. Jalankan perintah berikut untuk membuat folder bernama 'golang-sqlite' dan buka folder tempat file database SQLite dan file Golang akan disimpan:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Jalankan perintah berikut untuk mengunduh paket Golang yang diperlukan untuk menggunakan SQLite dengan Golang:



$ dapatkan github.com/mattn/go-sqlite3

Operasi Database Menggunakan Golang dan SQLite

Operasi basis data dasar menggunakan basis data SQLite dan skrip Golang ditampilkan dalam tutorial ini. Daftar tugas database yang tercakup dalam tutorial ini disebutkan sebagai berikut:

  1. Buat Database SQLite
  2. Buat Koneksi Database SQLite
  3. Buat Tabel Baru
  4. Masukkan Data ke dalam Tabel
  5. Baca Data dari Tabel
  6. Perbarui Data Tabel
  7. Hapus Data dari Tabel

Buat Database SQLite Menggunakan Golang

Buat file Golang dengan skrip berikut yang membuat file database SQLite baru bernama 'test.db'. Empat modul diimpor ke dalam skrip. Modul “fmt” digunakan untuk mencetak output di terminal. Modul 'log' digunakan untuk membatalkan program ketika muncul kesalahan. Modul 'os' digunakan untuk membuat database SQLite dan menangani kesalahan. Modul “go-sqlite3” digunakan untuk membuat koneksi dengan database SQLite melalui Golang. Metode Create() dari modul “os” digunakan di sini untuk membuat database SQLite. Jika database berhasil dibuat, pesan sukses dicetak di terminal. Jika tidak, program akan dihentikan. Metode Close() dipanggil untuk menutup koneksi database.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'Anda'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database SQLite baru
db , berbuat salah := Anda . Membuat ( 'test.db' )
//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Cetak pesan sukses
fmt . Println ( 'Database dibuat.' )
}
//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file “db_connect.go”:

$ jalankan db_connect.go

Jalankan perintah “ls” untuk memeriksa apakah file database “test.db” sudah dibuat atau belum:

$ ls

Output berikut menunjukkan bahwa pesan sukses, 'Database dibuat', dicetak di output dan file 'test.db' dibuat di lokasi saat ini:

Terhubung dengan Database SQLite Menggunakan Golang

Buat file Golang dengan skrip berikut yang membuka file database 'test.db' dan buat koneksi dengan database. Modul database/SQL Golang diimpor ke sini untuk melakukan tugas ini. Metode open() digunakan di sini untuk membuat koneksi dengan database SQLite yang sudah ada. Jika database terhubung dengan sukses, pesan sukses dicetak di terminal. Jika tidak, program akan dihentikan.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database SQLite baru
db , berbuat salah := sql . Membuka ( 'sqlite3' , 'test.db' )
//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Cetak pesan sukses
fmt . Println ( 'Database berhasil terhubung.' )
}
//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file “db_connect2.go”:

$ jalankan db_connect2.go

Keluaran berikut menunjukkan bahwa file database 'test.db' dibuka dan terhubung dengan sukses. Pesan sukses, 'Database berhasil terhubung', dicetak di output:

Buat Tabel di Database SQLite Menggunakan Golang

Buat file Golang dengan skrip berikut yang membuat tabel database bernama 'anggota' di dalam file database 'test.db'. Metode Exec() digunakan di sini untuk mengeksekusi kueri CREATE TABLE yang membuat tabel 'anggota' dengan enam bidang dan kunci utama. Jika tabel berhasil dibuat dalam database, pesan sukses dicetak. Jika tidak, program akan dihentikan.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database sqlite baru
db , berbuat salah := sql . Membuka ( 'sqlite3' , 'tes.db' )
//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
const pertanyaan rangkaian = `
BUAT TABEL JIKA TIDAK ADA anggota (
id INTEGER NOT NULL PRIMARY KEY,
beri nama CHAR(40) BUKAN NULL,
mtype CHAR(100) BUKAN NULL,
email CHAR(50),
alamat TEKS BUKAN NULL,
ponsel CHAR(25) NOT NULL);`

_ , berbuat salah := db . Laksanakan ( pertanyaan );

jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Cetak pesan sukses
fmt . Println ( 'Tabel berhasil dibuat.' )
}

}
//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file 'create_table.go':

$ jalankan create_table.go

Output berikut menunjukkan bahwa tabel berhasil dibuat dalam database. Pesan sukses, 'Tabel berhasil dibuat', dicetak di terminal:

Anda dapat masuk ke SQLite untuk memeriksa apakah tabel dibuat atau tidak di database.

Jalankan perintah berikut untuk menjalankan SQLite dengan database 'test.db':

$ sqlite3 test.db

Jalankan perintah SQLite '.tables' dari prompt perintah SQLite untuk memeriksa nama tabel database:

sqlite3 > .tabel

Keluaran berikut menunjukkan bahwa database berisi tabel 'anggota' yang dibuat dengan menjalankan skrip Golang:

Masukkan Catatan ke dalam Tabel SQLite Menggunakan Golang

Beberapa rekaman dapat dimasukkan ke dalam tabel dengan menjalankan kueri INSERT berkali-kali atau dengan menambahkan beberapa nilai dalam satu kueri INSERT. Buat file Golang dengan skrip berikut yang menyisipkan tiga record ke dalam tabel 'anggota' dari file database 'test.db' menggunakan satu kueri INSERT. Metode Exec() digunakan di sini untuk mengeksekusi kueri INSERT. Jika catatan berhasil dimasukkan ke dalam tabel, pesan sukses akan dicetak. Jika tidak, program akan dihentikan.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database SQLite baru
db , berbuat salah := sql . Membuka ( 'sqlite3' , 'test.db' )
//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
const pertanyaan rangkaian = `
MASUKKAN KE anggota (id, nama, mtype, email, alamat, ponsel)
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');`


// Jalankan kueri
_ , berbuat salah := db . Laksanakan ( pertanyaan );

jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Cetak pesan sukses
fmt . Println ( 'Rekaman berhasil dimasukkan.' )
}
}

//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file “insert_table.go”:

$ jalankan insert_table.go

Keluaran berikut menunjukkan bahwa rekaman berhasil dimasukkan ke dalam tabel. Pesan sukses, 'Catatan berhasil dimasukkan', dicetak di output:

Anda dapat masuk ke SQLite untuk memeriksa apakah ketiga catatan berhasil dimasukkan atau tidak di tabel 'anggota'.

Jalankan perintah berikut untuk menjalankan SQLite dengan database 'test.db':

$ sqlite3 test.db

Jalankan kueri SELECT berikut untuk membaca semua konten tabel 'anggota':

sqlite3 > PILIH * DARI anggota ;

Keluaran berikut menunjukkan bahwa tabel 'anggota' berisi tiga catatan yang disisipkan oleh skrip Golang:

Baca Data Tabel SQLite Menggunakan Golang

Buat file Golang dengan script berikut yang membaca record dari tabel “members”. Anda harus mendefinisikan variabel di Golang untuk menyimpan nilai yang dikembalikan dari kueri SELECT. Dalam skrip ini, lima bidang diambil dari tabel 'anggota' menggunakan kueri SELECT. Jadi, lima variabel ditentukan dalam skrip untuk menyimpan nilai dari lima bidang tabel 'anggota' di mana nilai bidang 'mtype' adalah 'Perak'. Metode Query() digunakan di sini untuk mengeksekusi kueri SELECT. Selanjutnya, loop 'untuk' digunakan untuk membaca rangkaian hasil yang dikembalikan oleh kueri SELECT. Fungsi printf() digunakan untuk mencetak nilai yang diformat dari set hasil.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database SQLite baru
db , berbuat salah := sql . Membuka ( 'sqlite3' , 'tes.db' )

//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {

//Deklarasikan variabel untuk menyimpan nilai baris
dulu pengenal int
dulu nama rangkaian
dulu mtype rangkaian
dulu alamat rangkaian
dulu seluler rangkaian
const pertanyaan rangkaian = `PILIH id, nama, mtype, alamat, seluler
DARI anggota
WHERE mtype = 'Perak';`


// Jalankan kueri
baris , berbuat salah := db . Pertanyaan ( pertanyaan );

jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {

// Cetak pesan sukses
fmt . Println ( 'Catatan semua anggota perak:' )
fmt . Println ( 'PENGENAL \T Nama \T \T Tipe Anggota \T Alamat \T \T Nomor kontak' )
untuk baris . Berikutnya () {
baris . Pindai ( &pengenal , &nama , &mtype , &alamat , & seluler )
fmt . Cetakf ( '%D \T %S \T %S \T %S \T %S \N ' , pengenal , nama , mtype , alamat , seluler )
}
}
}
//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file 'select_table.go':

$ jalankan select_table.go

Ada dua catatan di tabel 'anggota' yang berisi 'Perak' di bidang 'mtype'. Keluaran berikut menunjukkan dua rekaman dari tabel 'anggota' yang dikembalikan oleh kueri SELECT:

Perbarui Data Tabel SQLite Menggunakan Golang

Buat file Golang dengan skrip berikut yang mengubah nilai bidang seluler tabel 'anggota' yang berisi nilai id 2. Metode Exec() digunakan di sini untuk mengeksekusi kueri UPDATE. Jika catatan berhasil diperbarui dalam tabel, pesan sukses akan dicetak. Jika tidak, program akan dihentikan.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database SQLite baru
db , berbuat salah := sql . Membuka ( 'sqlite3' , 'test.db' )
//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
const pertanyaan rangkaian = `
MEMPERBARUI anggota SET seluler = '018563452390' DI MANA id = 2;`

_ , berbuat salah := db . Laksanakan ( pertanyaan );

jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Cetak pesan sukses
fmt . Println ( 'Rekaman berhasil diperbarui.' )
}
}
//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file “update_table.go”:

$ jalankan update_table.go

Dalam tabel 'anggota', baris kedua berisi nilai id 2. Keluaran berikut menunjukkan bahwa catatan tabel berhasil diperbarui. Pesan sukses, 'Rekam berhasil diperbarui', dicetak di terminal:

Anda dapat masuk ke SQLite untuk memeriksa apakah ada catatan tabel anggota yang diperbarui atau tidak.

Jalankan perintah berikut untuk menjalankan SQLite dengan database 'test.db':

$ sqlite3 test.db

Jalankan kueri SELECT berikut untuk membaca semua konten tabel 'anggota':

sqlite3 > PILIH * DARI anggota ;

Nilai bidang seluler dari 2 t catatan tabel anggota adalah '01994563423' sebelum menjalankan skrip. Keluaran berikut menunjukkan bahwa nilai bidang seluler dari 2 t catatan tabel anggota diubah menjadi '018563452390' setelah menjalankan skrip:

Hapus Data Tabel SQLite Menggunakan Golang

Buat file Golang dengan skrip berikut yang menghapus 3 rd catatan tabel 'anggota' yang berisi nilai id 3. Metode Exec() digunakan di sini untuk mengeksekusi kueri DELETE. Jika rekaman berhasil dihapus dari tabel, pesan sukses akan dicetak. Jika tidak, program akan dihentikan.

kemasan utama

// Impor modul yang diperlukan
impor (
'fmt'
'catatan'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

fungsi utama () {

//Buat database SQLite baru
db , berbuat salah := sql . Membuka ( 'sqlite3' , 'tes.db' )
//Periksa apakah ada kesalahan
jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Tentukan kueri penghapusan
const pertanyaan rangkaian = `HAPUS DARI anggota WHERE id = 3;`
// Jalankan kueri
_ , berbuat salah := db . Laksanakan ( pertanyaan );

jika berbuat salah != nol {
//Tambahkan pesan kesalahan ke log
catatan . Fatal ( berbuat salah )
} kalau tidak {
// Cetak pesan sukses
fmt . Println ( 'Rekaman berhasil dihapus.' )
}
}
//Tutup koneksi database
db . Menutup ()
}

Jalankan perintah berikut untuk mengeksekusi file 'delete_table.go':

$ jalankan delete_table.go

Output berikut menunjukkan bahwa 3 rd catatan tabel 'anggota' berhasil dihapus. Pesan sukses, 'Rekam berhasil dihapus', dicetak di terminal:

Anda dapat masuk ke SQLite untuk memeriksa apakah ada catatan dari tabel anggota yang dihapus atau tidak.

Jalankan perintah berikut untuk menjalankan SQLite dengan database 'test.db':

$ sqlite3 test.db

Jalankan kueri SELECT berikut untuk membaca semua konten tabel 'anggota':

sqlite3 > PILIH * DARI anggota ;

Output berikut menunjukkan bahwa nilai 3 rd catatan tabel anggota dihapus setelah menjalankan skrip dan dua catatan lainnya dicetak dalam output:

Kesimpulan

SQLite dan Golang sekarang populer karena kesederhanaan dan fiturnya yang ringan. Aplikasi berbasis database sederhana apa pun dapat diimplementasikan dengan mudah menggunakan alat ini. Bagian utama dari aplikasi apa pun adalah mengimplementasikan operasi CRUD. Metode implementasi operasi CRUD menggunakan skrip Golang dan database SQLite dijelaskan dalam tutorial ini menggunakan beberapa file Golang. Jika Anda adalah pembelajar baru bahasa Go dan database SQLite, tutorial ini akan membantu Anda mempelajarinya dari dasar.