SQL-andmebaasid salvestavad andmekogusid ridadena ja veergudena. Saate SQL-keelt kasutades relatsioonilise andmebaasi haldussüsteemi (RDBMS) andmeid hankida ja värskendada. Paljudest saadaolevatest SQL-andmebaasidest on populaarseimad MySQL, PostgreSQL, Microsoft SQL Server ja SQLite.

Go andmebaasidega suhtlemise funktsionaalsus on andmebaasi/sql paketis, mis on osa standardteegist.

Andmebaasi/sql-i pakett suhtleb draiverite abil SQL-andmebaasidega. Saate importida oma RDBMS-i jaoks sobiva draiveripaketi ja kasutada seda andmebaasiga suhtlemiseks.

SQL-i andmebaasidega alustamine Go's

Andmebaasi/sql pakett on relatsiooniandmebaaside üldine liides. Konkreetse andmebaasiserveriga töötamiseks peate kasutama ühte paljudest saadaolevatest draiveritest.

Õnneks ei pea te muretsema konkreetsete rakenduste pärast väljaspool draiverit. Andmebaasi/sql pakett käsitleb andmebaasi toiminguid serverist, millega ühenduse loote, sõltumatult.

Mõned kõige populaarsemad Go andmebaasi draiverid on:

  • Go-SQL draiver (MySQL)
  • PQ (PostgreSQL)
  • Go-SQLite3 (SQLite)
  • MSSQL DB (Microsoft SQL Server)

Saate kasutada LibHunti draiverite loend et leida vasteid muud tüüpi andmebaasid. Loend näitab ka iga andmebaasisüsteemi suhtelist populaarsust:

Go andmebaasi draiverite installimine ja importimine

Kui olete loonud Go tööruumi ja lähtestanud Go moodulite faili, installige teie andmebaasisüsteemile vastav draiver. Näiteks käivitage MySQL-i või SQLite'i draiveri installimiseks oma tööruumi kataloogis üks järgmistest käskudest:

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

Pärast draiveri installimist importige see kõrvalmõjude jaoks, lisades paketi ette alakriipsu. Näiteks MySQL-draiveri importimiseks koos andmebaasi/sql-paketiga:

importida (
"andmebaas/sql"
_ "github.com/mine-sql-draiver/mysql"
)

Importides kõrvalmõjude jaoks draiveripaketi, saate seda kasutada andmebaasiga ühenduse loomiseks ja sellega toimingute tegemiseks.

Ühenduse loomine SQL-i andmebaasiga Go abil

Pärast andmebaasi draiverite importimist saate luua andmebaasiühenduse, kasutades Avatud meetod andmebaas/sql pakett. See meetod võtab draiveri nime ja tee andmebaasi (SQLite jaoks) või ühenduse stringi (MySQL jaoks). Näiteks kasutage ühte järgmistest:

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

db, err := sql. Open ("mysql", "kasutaja: parool@/dbnimi") // MySQL

Kui olete proovinud ühendust avada, kontrollige kindlasti viga:

kui eks!= null {
logi. Fatalln (viga)
}

Sõltuvalt teie andmebaasisüsteemist on Avatud meetod võib anda vea, kui andmebaasi pole olemas. Kui olete andmebaasiga ühenduse loonud, saate seda andmebaasi eksemplari kasutades täita päringuid ja koostada avaldusi Avatud naaseb.

SQL-käskude täitmine

Sa saad täitma SQL-i käske kasutades Valmistage ette teie andmebaasi eksemplari meetod. The Valmistage ette meetod võtab sisse SQL-käsu ja tagastab koos veaobjektiga täitmiseks ettevalmistatud avalduse. Näiteks kui soovite luua uue tabeli:

käsk, err := db. Prepare("LOO TABEL, KUI POLE OLEMAS login (kasutajanimi TEKST, parool TEKST)")

Ülaltoodud avaldus loob tabeli nimega Logi sisse, kui seda veel pole. Uues tabelis on väljad nimega kasutajanimi ja parool, iga tüüpi TEKST.

Kui sisestate päringutesse väärtusi oma programmist, saate kohahoidjate tähistamiseks kasutada küsimärki (?) ja seejärel edastada parameetrid lause täitmisel.

käsk, err := db. Prepare("INSERT INTO login (kasutajanimi, parool) väärtused(?,?)")

Kui olete ettevalmistatud avalduse loonud, saate selle selle abil täita Exec meetod. See meetod võimaldab teil edastada programmi parameetrite väärtusi:

exec, err := käsk. Teostus (väärtus1, väärtus2)

kui eks!= null {
tagasi
}

Esimene väärtus, mis Exec() tagastab on teie andmebaasi SQL-päringu tulemus. Seda päringutulemust kasutades saate kontrollida mõjutatud ridade arvu või viimati sisestatud ID-d:

mõjutatud, err := exec. Mõjutatud read()

kui eks!= null {
tagasi
}

fmt. Println (mõjutatud)

id, err := exec. LastInsertId()

kui eks!= null {
tagasi
}

fmt. Println (id)

Päringu tulemuste toomine

Andmebaasi/sql pakett võimaldab teil andmebaasi tulemuste kohta päringuid teha, kasutades Päring andmebaasi eksemplari meetod:

read, err := db. Päring ("SELECT * FROM kasutajalt")

kui eks!= null {
tagasi
}

The Päring meetod tagastab a read struktuur, mida saate oma tulemuskomplektiga töötamiseks kasutada. Näiteks võite kasutada Edasi ridade eksemplari meetodit, et seda üle korrata ja üksikute ridadega töötada:

var kasutajanimi Parool string

jaoks read. Järgmine() {
err := read. Skannimine (&kasutajanimi, &parool)

kui eks!= null {
logi. Fatalln (viga)
}

fmt. Println (kasutajanimi, parool)
}

Ülaltoodud näites on kaks stringi muutujat -kasutajanimi ja parool—esindab iga veeru väärtust. The Skaneeri meetod dekodeerib praeguse rea vastavateks muutujateks.

SQL-andmebaasid tulevad alati kasuks

Andmebaaside kasutamine Go-s on andmebaasi/sql-paketiga lihtne. Saate seda kasutada rakenduses Go hõlpsaks päringute tegemiseks ja SQL-käskude täitmiseks.

SQL-andmebaasid on paljude rakenduste, eriti suurte või keeruliste andmekogumitega tegelevate rakenduste keskmes. Saate kasutada selliseid andmebaase nagu mälusisene SQLite andmebaas oma lihtsate projektide jaoks, nagu veebikraapimine ja robotite loomine.

Õiged teadmised SQL-i ja andmebaasihaldussüsteemide kohta on hädavajalikud, et neid oma programmides tõhusalt kasutada. Kui aga otsustate SQL-i mitte õppida, saate õppida, kuidas kasutada ORM-e Go SQL-andmebaasidega suhtlemiseks.