Database SQL menyimpan kumpulan data dalam baris dan kolom. Anda dapat mengambil dan memperbarui data dalam sistem manajemen basis data relasional (RDBMS) menggunakan bahasa SQL. Dari sekian banyak database SQL yang tersedia, yang paling populer adalah MySQL, PostgreSQL, Microsoft SQL Server, dan SQLite.

Fungsionalitas untuk berinteraksi dengan database di Go ada dalam paket database/sql, bagian dari library standar.

Paket database/sql berinteraksi dengan database SQL menggunakan driver. Anda dapat mengimpor paket driver yang sesuai untuk RDBMS Anda dan menggunakannya untuk berinteraksi dengan database.

Memulai Database SQL di Go

Paket database/sql adalah antarmuka umum untuk database relasional. Untuk bekerja dengan server database tertentu, Anda harus menggunakan salah satu dari banyak driver yang tersedia.

Untungnya, Anda tidak perlu khawatir tentang implementasi khusus di luar driver. Paket database/sql menangani operasi database secara independen dari server yang Anda sambungkan.

Beberapa driver database Go yang paling populer adalah:

instagram viewer
  • Driver Go-SQL (MySQL)
  • PQ (PostgreSQL)
  • Go-SQLite3 (SQLite)
  • MSSQL DB (Microsoft SQL Server)

Anda dapat menggunakan Daftar driver LibHunt untuk menemukan padanan untuk tipe basis data lainnya. Daftar ini juga menunjukkan popularitas relatif dari setiap sistem basis data:

Menginstal dan Mengimpor Driver Database Go

Setelah Anda membuat ruang kerja Go dan menginisialisasi file modul Go, instal driver yang cocok dengan sistem database Anda. Misalnya, jalankan salah satu perintah berikut di direktori ruang kerja Anda untuk menginstal driver MySQL atau SQLite:

buka -u github.com/go-sql-driver/mysql
buka github.com/mattn/go-sqlite3

Setelah Anda menginstal driver Anda, impor untuk efek samping dengan awalan garis bawah sebelum paket. Misalnya, untuk mengimpor driver MySQL di samping paket database/sql:

impor (
"basis data/sql"
_ "github.com/Pergilah-sql-driver/mysql"
)

Dengan mengimpor paket driver untuk efek samping, Anda dapat menggunakannya untuk menyambung ke, dan menjalankan operasi pada, database.

Menghubungkan ke Database SQL Dengan Go

Setelah mengimpor driver database, Anda dapat membuat koneksi database menggunakan Membuka metode database/sql kemasan. Metode ini mengambil nama dan jalur driver ke database (untuk SQLite) atau string koneksi (untuk MySQL). Misalnya, gunakan salah satu dari berikut ini:

db, err := sql. Buka("sqlite3", "model/testdb.db") // SQLite

db, err := sql. Buka("mysql", "pengguna: kata sandi@/dbname") // MySQL

Setelah Anda mencoba membuka koneksi, ingatlah untuk memeriksa kesalahan:

jika salah != nol {
catatan. Fataln (err)
}

Tergantung pada sistem database Anda, Membuka metode dapat mengembalikan kesalahan jika database tidak ada. Setelah Anda terhubung ke database, Anda dapat menjalankan kueri dan menyiapkan pernyataan menggunakan instance database yang Membuka kembali.

Menjalankan Perintah SQL

Kamu bisa menjalankan perintah SQL menggunakan Mempersiapkan metode instance database Anda. Itu Mempersiapkan metode menerima perintah SQL dan mengembalikan pernyataan yang disiapkan untuk dieksekusi bersama objek kesalahan. Misalnya, jika Anda ingin membuat tabel baru:

perintah, err := db. Siapkan("BUAT TABEL JIKA TIDAK ADA login (username TEXT, password TEXT)")

Pernyataan di atas membuat tabel bernama Gabung, jika belum ada. Tabel baru memiliki bidang bernama nama belakang dan kata sandi, masing-masing jenis TEKS.

Jika Anda memasukkan nilai dari program ke dalam kueri, Anda dapat menggunakan notasi tanda tanya (?) untuk menunjukkan placeholder dan kemudian meneruskan parameter saat mengeksekusi pernyataan.

perintah, err := db. Siapkan("MASUKKAN KE login (nama pengguna, kata sandi) nilai(?,?)")

Setelah Anda membuat pernyataan yang disiapkan, Anda dapat menjalankannya menggunakan eksekutif metode. Metode ini memungkinkan Anda meneruskan nilai parameter dari program Anda:

exec, err := perintah. Exec (nilai1, Nilai2)

jika salah != nol {
kembali
}

Nilai pertama yang eksekutif() return adalah hasil dari query SQL pada database Anda. Dengan menggunakan hasil kueri ini, Anda dapat memeriksa jumlah baris yang terpengaruh atau ID yang terakhir dimasukkan:

terpengaruh, err := exec. Baris Terpengaruh()

jika salah != nol {
kembali
}

fmt. Println (terpengaruh)

id, err := exec. IdInsert Terakhir()

jika salah != nol {
kembali
}

fmt. Cetak (id)

Mengambil Hasil Kueri

Paket database/sql memungkinkan Anda menanyakan hasil database menggunakan Pertanyaan metode contoh database:

baris, err := db. Query("PILIH * DARI Pengguna")

jika salah != nol {
kembali
}

Itu Pertanyaan metode mengembalikan Baris struct yang dapat Anda gunakan untuk bekerja dengan set hasil Anda. Misalnya, Anda dapat menggunakan Lanjut metode instance baris Anda untuk mengulanginya dan bekerja dengan masing-masing baris:

var nama pengguna, kata sandi rangkaian

untuk baris. Lanjut() {
salah := baris. Pindai(&nama pengguna, &sandi)

jika salah != nol {
catatan. Fataln (err)
}

fmt. Println (nama pengguna, kata sandi)
}

Dalam contoh di atas, dua variabel string—nama belakang dan kata sandi—mewakili setiap nilai kolom. Itu Pindai metode menerjemahkan baris saat ini ke dalam variabel yang sesuai.

Database SQL Selalu Berguna

Menggunakan database di Go sangatlah mudah dengan paket database/sql. Anda dapat menggunakannya untuk membuat kueri dan menjalankan perintah SQL di Go dengan mudah.

Database SQL adalah inti dari banyak aplikasi, terutama yang berhubungan dengan kumpulan data yang besar atau kompleks. Anda dapat menggunakan database seperti database SQLite dalam memori untuk proyek sederhana Anda seperti web scraping, dan membangun bot.

Pengetahuan yang tepat tentang SQL dan sistem manajemen basis data sangat penting untuk menggunakannya dalam program Anda secara efisien. Namun, jika Anda memilih untuk tidak mempelajari SQL, Anda dapat mempelajari cara menggunakan ORM untuk berinteraksi dengan database SQL di Go.