SQL duomenų bazės saugo duomenų rinkinius eilutėse ir stulpeliuose. Galite gauti ir atnaujinti duomenis reliacinėje duomenų bazių valdymo sistemoje (RDBMS) naudodami SQL kalbą. Iš daugelio galimų SQL duomenų bazių populiariausios yra MySQL, PostgreSQL, Microsoft SQL Server ir SQLite.

Sąveikos su duomenų bazėmis Go funkcionalumas yra duomenų bazės / sql pakete, kuris yra standartinės bibliotekos dalis.

Duomenų bazės / sql paketas sąveikauja su SQL duomenų bazėmis naudodamas tvarkykles. Galite importuoti atitinkamą tvarkyklės paketą savo RDBVS ir naudoti jį sąveikai su duomenų baze.

Darbo su SQL duomenų bazėmis „Go“ pradžia

Duomenų bazės / sql paketas yra bendra sąsaja su reliacinėmis duomenų bazėmis. Norėdami dirbti su konkrečiu duomenų bazės serveriu, turėsite naudoti vieną iš daugelio galimų tvarkyklių.

Laimei, jums nereikia jaudintis dėl konkrečių diegimų, išskyrus tvarkykles. Duomenų bazės / sql paketas tvarko duomenų bazės operacijas nepriklausomai nuo serverio, prie kurio jungiatės.

Kai kurios iš populiariausių Go duomenų bazės tvarkyklių yra:

instagram viewer
  • Go-SQL tvarkyklė (MySQL)
  • PQ (PostgreSQL)
  • Go-SQLite3 (SQLite)
  • MSSQL DB („Microsoft SQL Server“)

Galite naudoti LibHunt vairuotojų sąrašas rasti atitikmenis kitų tipų duomenų bazių. Sąrašas taip pat rodo santykinį kiekvienos duomenų bazių sistemos populiarumą:

„Go“ duomenų bazės tvarkyklių diegimas ir importavimas

Sukūrę „Go“ darbo sritį ir inicijuodami „Go modules“ failą, įdiekite tvarkyklę, atitinkančią jūsų duomenų bazės sistemą. Pavyzdžiui, paleiskite vieną iš šių komandų savo darbo srities kataloge, kad įdiegtumėte MySQL arba SQLite tvarkyklę:

go get -u github.com/go-sql-driver/mysql
eik ir gauk github.com/mattn/go-sqlite3

Įdiegę tvarkyklę, importuokite ją, kad išvengtumėte šalutinių poveikių, prieš paketą pažymėdami apatinį brūkšnį. Pavyzdžiui, norėdami importuoti MySQL tvarkyklę kartu su duomenų bazės / sql paketu:

importuoti (
"duomenų bazė/sql"
_ "github.com/eik-sql-driver/mysql"
)

Importuodami pašalinių efektų tvarkyklės paketą, galite jį naudoti norėdami prisijungti prie duomenų bazės ir joje atlikti operacijas.

Prisijungimas prie SQL duomenų bazės naudojant Go

Importavę duomenų bazės tvarkykles, galite sukurti duomenų bazės ryšį naudodami Atviras metodas duomenų bazė / sql paketą. Šis metodas paima tvarkyklės pavadinimą ir kelią į duomenų bazę (skirta SQLite) arba ryšio eilutę (skirta MySQL). Pavyzdžiui, naudokite vieną iš šių:

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

db, err := sql. Atidaryti ("mysql", "vartotojas: slaptažodis@/dbname") // MySQL

Kai bandysite užmegzti ryšį, nepamirškite patikrinti, ar nėra klaidos:

jeigu klysta! = nulis {
žurnalas. Fatalln (klysta)
}

Priklausomai nuo jūsų duomenų bazių sistemos, Atviras metodas gali grąžinti klaidą, jei duomenų bazė neegzistuoja. Prisijungę prie duomenų bazės, galite vykdyti užklausas ir paruošti teiginius naudodami tą duomenų bazės egzempliorių Atviras grįžta.

SQL komandų vykdymas

Tu gali vykdyti SQL komandas naudojant Pasiruoškite duomenų bazės egzemplioriaus metodas. The Pasiruoškite metodas paima SQL komandą ir grąžina paruoštą sakinį vykdyti kartu su klaidos objektu. Pavyzdžiui, jei norite sukurti naują lentelę:

komanda, klaida := db. Prepare ("KURTI LENTELĘ JEI NĖRA prisijungimo vardas (naudotojo vardas TEKSTAS, slaptažodis TEKSTAS)")

Aukščiau pateiktas teiginys sukuria lentelę pavadinimu Prisijungti, jei jo dar nėra. Naujoje lentelėje yra laukai, pavadinti Vartotojo vardas ir Slaptažodis, kiekvieno tipo TEKSTAS.

Jei į užklausas įterpiate reikšmes iš programos, galite naudoti klaustuko (?) žymėjimą, kad žymėtumėte vietos rezervavimo ženklus, o tada vykdydami sakinį perduoti parametrus.

komanda, klaida := db. Prepare ("INSERT INTO prisijungimo (vartotojo vardas, slaptažodis) reikšmės(?,?)")

Sukūrę paruoštą pareiškimą, galite jį vykdyti naudodami jį Vykdytojas metodas. Šis metodas leidžia perduoti parametrų reikšmes iš programos:

exec, err := komanda. Vykdymas (1 vertė, 2 vertė)

jeigu klysta! = nulis {
grąžinti
}

Pirmoji vertė, kuri Vykdyti() grąžina yra SQL užklausos jūsų duomenų bazėje rezultatas. Naudodami šį užklausos rezultatą galite patikrinti paveiktų eilučių skaičių arba paskutinį įterptą ID:

paveiktas, err := exec. Paveiktos eilutės ()

jeigu klysta! = nulis {
grąžinti
}

fmt. Println (paveikta)

id, err := exec. LastInsertId()

jeigu klysta! = nulis {
grąžinti
}

fmt. Println (id)

Gaunami užklausos rezultatai

Duomenų bazės / sql paketas leidžia pateikti duomenų bazės rezultatų užklausą naudojant Užklausa duomenų bazės egzemplioriaus metodas:

eilučių, klaida := db. Užklausa ("SELECT * FROM vartotojo")

jeigu klysta! = nulis {
grąžinti
}

The Užklausa metodas grąžina a Eilutės struktūra, kurią galite naudoti dirbdami su rezultatų rinkiniu. Pavyzdžiui, galite naudoti Kitas eilučių egzemplioriaus metodą, kad jį kartotumėte ir dirbtumėte su atskiromis eilutėmis:

var vartotojo vardas Slaptažodis styga

dėl eilučių. Kitas() {
klaida := eilutės. Nuskaitymas (&naudotojo vardas, &slaptažodis)

jeigu klysta! = nulis {
žurnalas. Fatalln (klysta)
}

fmt. Println (vartotojo vardas, slaptažodis)
}

Aukščiau pateiktame pavyzdyje du eilutės kintamieji –Vartotojo vardas ir Slaptažodis—nurodykite kiekvieno stulpelio reikšmę. The Nuskaityti metodas dekoduoja dabartinę eilutę į atitinkamus kintamuosius.

SQL duomenų bazės visada pravers

Duomenų bazių naudojimas programoje „Go“ yra paprastas naudojant duomenų bazės / sql paketą. Galite naudoti jį norėdami lengvai užklausti ir vykdyti SQL komandas Go.

SQL duomenų bazės yra daugelio programų, ypač susijusių su dideliais ar sudėtingais duomenų rinkiniais, pagrindas. Galite naudoti tokias duomenų bazes kaip atmintyje esančią SQLite duomenų bazę savo paprastiems projektams, pvz., žiniatinklio rinkimui ir robotų kūrimui.

Norint efektyviai jas naudoti savo programose, būtina tinkamai išmanyti SQL ir duomenų bazių valdymo sistemas. Tačiau jei nuspręsite nesimokyti SQL, galite sužinoti, kaip naudoti ORM sąveikauti su SQL duomenų bazėmis programoje Go.