Basit bir veritabanı soyutlama paketi ile Go’dan SQL kullanmak düşündüğünüzden daha kolaydır.

Go'da Herhangi Bir SQL Veritabanı Nasıl Kullanılır ?

SQL veritabanları, veri koleksiyonlarını satırlar ve sütunlar halinde depolar. SQL dilini kullanarak bir ilişkisel veritabanı yönetim sistemindeki (RDBMS) verileri alabilir ve güncelleyebilirsiniz. Mevcut birçok SQL veritabanından en popülerleri MySQL, PostgreSQL, Microsoft SQL Server ve SQLite’dir.

Go’daki veritabanlarıyla etkileşime yönelik işlevsellik, standart kitaplığın bir parçası olan veritabanı/sql paketindedir.

Veritabanı/sql paketi, sürücüleri kullanarak SQL veritabanlarıyla etkileşime girer. RDBMS’niz için uygun bir sürücü paketini içe aktarabilir ve veritabanıyla etkileşim kurmak için kullanabilirsiniz.

Go’da SQL Veritabanlarına Başlarken

Veritabanı/sql paketi, ilişkisel veritabanlarına yönelik genel bir arabirimdir. Belirli bir veritabanı sunucusuyla çalışmak için mevcut birçok sürücüden birini kullanmanız gerekir.

Neyse ki, sürücünün ötesindeki belirli uygulamalar için endişelenmenize gerek yok. Veritabanı/sql paketi, veritabanı işlemlerini, bağlandığınız sunucudan bağımsız olarak gerçekleştirir.

En popüler Go veritabanı sürücülerinden bazıları şunlardır:

Go-SQL Sürücüsü (MySQL)

PQ (PostgreSQL)

Go-SQLite3 (SQLite)

MSSQL DB (Microsoft SQL Sunucusu)

Diğer veritabanı türlerinin eşdeğerlerini bulmak için LibHunt sürücüleri listesini kullanabilirsiniz . Liste ayrıca her bir veritabanı sisteminin göreli popülerliğini de gösterir:

Go Veritabanı Sürücülerini Yükleme ve Alma

Bir Go çalışma alanı oluşturduktan ve bir Go modül dosyası başlattıktan sonra, veritabanı sisteminizle eşleşen sürücüyü yükleyin. Örneğin, MySQL veya SQLite sürücüsünü kurmak için çalışma alanı dizininizde aşağıdaki komutlardan birini çalıştırın:

go get -u github.com/go-sql-driver/mysql

go get github.com/mattn/go-sqlite3

Sürücünüzü yükledikten sonra, paketin önüne bir alt çizgi ekleyerek yan etkiler için içe aktarın. Örneğin, MySQL sürücüsünü veritabanı/sql paketiyle birlikte içe aktarmak için:

import (

    “database/sql”

    _ “github.com/go-sql-driver/mysql”

)

Yan etkiler için sürücü paketini içe aktararak, veritabanına bağlanmak ve veritabanı üzerinde işlemleri yürütmek için kullanabilirsiniz.

Go ile SQL Veritabanına Bağlanma

Veritabanı sürücülerini içe aktardıktan sonra, veritabanı/sql paketinin Open yöntemini kullanarak bir veritabanı bağlantısı oluşturabilirsiniz . Bu yöntem, sürücünün adını ve veritabanına (SQLite için) veya bir bağlantı dizesine (MySQL için) giden yolu alır. Örneğin, aşağıdakilerden birini kullanın:

db, err := sql.Open(“sqlite3”, “models/testdb.db”) // SQLite

db, err := sql.Open(“mysql”, “user:password@/dbname”) // MySQL

Bağlantıyı açmayı denedikten sonra bir hata olup olmadığını kontrol etmeyi unutmayın:

if err != nil {

    log.Fatalln(err)

}

Veritabanı sisteminize bağlı olarak, veritabanı yoksa Open yöntemi bir hata döndürebilir. Bir veritabanına bağlandıktan sonra, Open’ın döndürdüğü veritabanı örneğini kullanarak sorguları yürütebilir ve ifadeler hazırlayabilirsiniz.

SQL Komutlarını Yürütme

Veritabanı örneğinizin Hazırla yöntemini kullanarak SQL komutlarını çalıştırabilirsiniz . Hazırla yöntemi bir SQL komutunu alır ve bir hata nesnesinin yanında yürütülmek üzere hazırlanmış bir ifade döndürür. Örneğin, yeni bir tablo oluşturmak istiyorsanız:

command, err := db.Prepare(“CREATE TABLE IF NOT EXISTS login(username TEXT, password TEXT)”)

Yukarıdaki ifade , zaten mevcut değilse, login adlı bir tablo oluşturur. Yeni tablo, her biri TEXT türünde olan username ve password adlı alanlara sahiptir .

Programınızdan sorgularınıza değerler ekliyorsanız, yer tutucuları belirtmek için soru işareti (?) gösterimini kullanabilir ve ardından ifadeyi yürütürken parametreleri iletebilirsiniz.

command, err := db.Prepare(“INSERT INTO login(username, password) values(?,?)”)

Hazır bir ifade oluşturduktan sonra, Exec yöntemini kullanarak onu çalıştırabilirsiniz. Bu yöntem, programınızdan parametre değerlerini geçirmenizi sağlar:

exec, err := command.Exec(value1, Value2)

if err != nil {

    return

}

Exec() ‘in döndürdüğü ilk değer, veritabanınızdaki SQL sorgusunun sonucudur. Bu sorgu sonucunu kullanarak, etkilenen satır sayısını veya son eklenen kimliği kontrol edebilirsiniz:

affected, err := exec.RowsAffected()

if err != nil {

    return

}

fmt.Println(affected)

id, err := exec.LastInsertId()

if err != nil {

    return

}

fmt.Println(id)

Sorgu Sonuçlarını Getirme

Veritabanı/sql paketi , bir veritabanı örneğinin Sorgu yöntemini kullanarak veritabanı sonuçlarını sorgulamanıza olanak tanır:

rows, err := db.Query(“SELECT * FROM User”)

if err != nil {

    return

}

Query yöntemi, sonuç kümenizle çalışmak için kullanabileceğiniz bir Rows yapısı döndürür . Örneğin, üzerinde yineleme yapmak ve tek tek satırlarla çalışmak için satırlar örneğinizin Sonraki yöntemini kullanabilirsiniz:

var username, password string

for rows.Next() {

    err := rows.Scan(&username, &password)

    if err != nil {

        log.Fatalln(err)

    }

    fmt.Println(username, password)

}

Yukarıdaki örnekte, iki dize değişkeni – kullanıcı adı ve şifre – her sütun değerini temsil eder. Tarama yöntemi, geçerli satırı ilgili değişkenlere çözer .

SQL Veritabanları Her Zaman İşe Yarar

Go’da veritabanlarını kullanmak, database/sql paketi ile basittir. Go’da SQL komutlarını kolaylıkla sorgulamak ve yürütmek için kullanabilirsiniz.

SQL veritabanları, özellikle büyük veya karmaşık veri kümeleriyle ilgilenenler olmak üzere birçok uygulamanın merkezinde yer alır. Web kazıma ve bot oluşturma gibi basit projeleriniz için bellek içi SQLite veritabanı gibi veritabanlarını kullanabilirsiniz.

SQL ve veritabanı yönetim sistemleri hakkında doğru bilgi, bunları programlarınızda verimli bir şekilde kullanmak için çok önemlidir. Ancak, SQL öğrenmemeyi seçerseniz, Go’da SQL veritabanlarıyla etkileşim kurmak için ORM’leri nasıl kullanacağınızı öğrenebilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir