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.

instagram viewer

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'si (Microsoft SQL Sunucusu)

kullanabilirsiniz LibHunt sürücüleri listesi eşdeğerlerini bulmak için diğer veritabanı türleri. 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ülleri 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:

git -u github.com/go-sql-driver/mysql'yi al
github.com/mattn/go-sqlite3'ü al

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:

içe aktarmak (
"veritabanı/sql"
_ "github.com/Git-sql sürücüsü/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, aşağıdakileri kullanarak bir veritabanı bağlantısı oluşturabilirsiniz. Açık yöntemi veritabanı/sql paket. 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, hata := sql. Open("sqlite3", "modeller/testdb.db") // SQLite

db, hata := sql. Open("mysql", "kullanıcı: şifre@/dbname") // MySQL

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

eğer hata != sıfır {
kayıt. Fatalln (hata)
}

Veritabanı sisteminize bağlı olarak, Açık veritabanı yoksa yöntem bir hata verebilir. Bir veritabanına bağlandıktan sonra, sorguları yürütebilir ve veritabanı örneğini kullanarak ifadeler hazırlayabilirsiniz. Açık İadeler.

SQL Komutlarını Yürütme

Yapabilirsiniz SQL komutlarını yürüt kullanmak HAZIRLAMA veritabanı örneğinizin yöntemi. bu HAZIRLAMA method 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:

komut, hata := db. Hazırla("MEVCUT DEĞİLSE TABLO OLUŞTURUN oturum açma (kullanıcı adı METİN, şifre METİN)")

Yukarıdaki ifade, adında bir tablo oluşturur. giriş yapmak, zaten mevcut değilse. Yeni tablo adında alanlar var Kullanıcı adı ve şifre, her türden METİN.

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.

komut, hata := db. Hazırla("INSERT INTO oturum açma (kullanıcı adı, şifre) değerleri(?,?)")

Hazır bir ifade oluşturduktan sonra, onu kullanarak yürütebilirsiniz. Yürütme yöntem. Bu yöntem, programınızdan parametre değerlerini geçirmenizi sağlar:

exec, hata := komut. Yürütme (değer1, Değer2)

eğer hata != sıfır {
dönüş
}

İlk değer olan Yürütme() döner, veritabanınızdaki SQL sorgusunun sonucudur. Bu sorgu sonucunu kullanarak, etkilenen satır sayısını veya son eklenen kimliği kontrol edebilirsiniz:

etkilenen, err := exec. Etkilenen Satırlar()

eğer hata != sıfır {
dönüş
}

fmt. Println (etkilenen)

kimlik, hata := yürütme. LastInsertId()

eğer hata != sıfır {
dönüş
}

fmt. Println (kimlik)

Sorgu Sonuçlarını Getirme

Veritabanı/sql paketi, aşağıdakileri kullanarak veritabanı sonuçlarını sorgulamanıza izin verir: Sorgu bir veritabanı örneğinin yöntemi:

satırlar, hata := db. Sorgu ("Kullanıcıdan * SEÇİN")

eğer hata != sıfır {
dönüş
}

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

var Kullanıcı adı Şifre sicim

için satırlar. Sonraki() {
hata := satırlar. Tara(&kullanıcı adı, &şifre)

eğer hata != sıfır {
kayıt. Fatalln (hata)
}

fmt. Println (kullanıcı adı, şifre)
}

Yukarıdaki örnekte, iki dize değişkeni—Kullanıcı adı ve şifre—her sütun değerini temsil eder. bu Tarama yöntem, 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ı, birçok uygulamanın, özellikle de büyük veya karmaşık veri kümeleriyle uğraşanları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.