Baze podatkov SQL shranjujejo zbirke podatkov v vrsticah in stolpcih. Podatke lahko pridobite in posodobite v sistemu za upravljanje relacijske baze podatkov (RDBMS) z uporabo jezika SQL. Od številnih baz podatkov SQL, ki so na voljo, so najbolj priljubljeni MySQL, PostgreSQL, Microsoft SQL Server in SQLite.
Funkcionalnost za interakcijo z bazami podatkov v Go je v paketu baze podatkov/sql, ki je del standardne knjižnice.
Paket baze podatkov/sql komunicira z bazami podatkov SQL z uporabo gonilnikov. Uvozite lahko ustrezen paket gonilnikov za vaš RDBMS in ga uporabite za interakcijo z bazo podatkov.
Kako začeti z bazami podatkov SQL v Go
Paket baze podatkov/sql je generični vmesnik za relacijske baze podatkov. Za delo z določenim strežnikom baz podatkov boste morali uporabiti enega od številnih gonilnikov, ki so na voljo.
Na srečo vam ni treba skrbeti za posebne izvedbe poleg gonilnika. Paket baze podatkov/sql obravnava operacije baze podatkov neodvisno od strežnika, s katerim se povezujete.
Nekateri izmed najbolj priljubljenih gonilnikov baze podatkov Go so:
- Go-SQL gonilnik (MySQL)
- PQ (PostgreSQL)
- Go-SQLite3 (SQLite)
- MSSQL DB (Microsoft SQL Server)
Lahko uporabite Seznam gonilnikov LibHunt najti enakovredne za druge vrste baz podatkov. Seznam prikazuje tudi relativno priljubljenost vsakega sistema baz podatkov:
Namestitev in uvoz gonilnikov zbirke podatkov Go
Ko ustvarite delovni prostor Go in inicializirate datoteko modulov Go, namestite gonilnik, ki ustreza vašemu sistemu baze podatkov. Na primer, zaženite enega od naslednjih ukazov v imeniku delovnega prostora, da namestite gonilnik MySQL ali SQLite:
pojdi get -u github.com/go-sql-driver/mysql
pojdite na github.com/mattn/go-sqlite3
Ko namestite gonilnik, ga uvozite zaradi stranskih učinkov tako, da pred paketom dodate predpono podčrtaja. Na primer, če želite uvoziti gonilnik MySQL poleg paketa baze podatkov/sql:
uvoz (
"baza podatkov/sql"
_ "github.com/pojdi-sql-gonilnik/mysql"
)
Z uvozom paketa gonilnika za stranske učinke ga lahko uporabite za povezovanje z bazo podatkov in izvajanje operacij na njej.
Povezava z bazo podatkov SQL z Go
Po uvozu gonilnikov baze podatkov lahko ustvarite povezavo z bazo podatkov s pomočjo Odprto metoda baza podatkov/sql paket. Ta metoda vzame ime gonilnika in pot do baze podatkov (za SQLite) ali niz povezave (za MySQL). Na primer, uporabite eno od naslednjega:
db, napaka := sql. Open("sqlite3", "models/testdb.db") // SQLite
db, napaka := sql. Open("mysql", "uporabnik: geslo@/dbname") // MySQL
Ko poskusite odpreti povezavo, ne pozabite preveriti napake:
če napaka!= nič {
dnevnik. Fatalln (napaka)
}
Odvisno od vašega sistema baze podatkov, Odprto metoda lahko vrne napako, če baza podatkov ne obstaja. Ko se povežete z bazo podatkov, lahko izvajate poizvedbe in pripravljate izjave z uporabo primerka baze podatkov, ki Odprto vrne.
Izvajanje ukazov SQL
Ti lahko izvajati ukaze SQL uporabljati Pripravite se metodo vaše baze podatkov. The Pripravite se metoda prevzame ukaz SQL in vrne pripravljen stavek za izvedbo poleg predmeta napake. Na primer, če želite ustvariti novo tabelo:
ukaz, err := db. Prepare("USTVARI TABELE, ČE NE OBSTAJA prijava (uporabniško ime TEXT, geslo TEXT)")
Zgornji stavek ustvari tabelo z imenom Vpiši se, če še ne obstaja. Nova tabela ima poimenovana polja uporabniško ime in geslo, vsaka od vrst BESEDILO.
Če v svoje poizvedbe vstavljate vrednosti iz svojega programa, lahko uporabite zapis z vprašajem (?), da označite nadomestne oznake in nato posredujete parametre ob izvajanju stavka.
ukaz, err := db. Prepare("VSTAVI INTO vrednosti za prijavo (uporabniško ime, geslo)(?,?)")
Ko ustvarite pripravljen stavek, ga lahko izvedete s svojim Exec metoda. Ta metoda vam omogoča posredovanje vrednosti parametrov iz vašega programa:
exec, err := ukaz. Exec (vrednost1, vrednost2)
če napaka!= nič {
vrnitev
}
Prva vrednost, ki Exec() returns je rezultat poizvedbe SQL v vaši bazi podatkov. S tem rezultatom poizvedbe lahko preverite število zadevnih vrstic ali zadnji vstavljen ID:
prizadeto, err := exec. Prizadete vrstice()
če napaka!= nič {
vrnitev
}fmt. Println (prizadeto)
id, err := exec. LastInsertId()
če napaka!= nič {
vrnitev
}
fmt. Println (id)
Pridobivanje rezultatov poizvedbe
Paket baze podatkov/sql vam omogoča poizvedovanje rezultatov baze podatkov z uporabo Poizvedba metoda primerka baze podatkov:
vrstice, err := db. Poizvedba ("IZBERI * IZ uporabnika")
če napaka!= nič {
vrnitev
}
The Poizvedba metoda vrne a Vrstice struct, ki jo lahko uporabite za delo s svojim naborom rezultatov. Na primer, lahko uporabite Naslednji metoda vašega primerka vrstic, da se po njem ponovite in delate s posameznimi vrsticami:
var uporabniško ime geslo vrvica
za vrstice. Naslednji() {
err := vrstice. Skeniraj (&uporabniško ime, &geslo)če napaka!= nič {
dnevnik. Fatalln (napaka)
}
fmt. Println (uporabniško ime, geslo)
}
V zgornjem primeru dve spremenljivki niza –uporabniško ime in geslo— predstavlja vsako vrednost stolpca. The Skeniraj metoda dekodira trenutno vrstico v ustrezne spremenljivke.
Podatkovne baze SQL so vedno priročne
Uporaba baz podatkov v Go je enostavna s paketom baze podatkov/sql. Uporabite ga lahko za poizvedovanje in izvajanje ukazov SQL v Go z lahkoto.
Podatkovne baze SQL so jedro številnih aplikacij, zlasti tistih, ki se ukvarjajo z velikimi ali zapletenimi nizi podatkov. Baze podatkov, kot je baza podatkov SQLite v pomnilniku, lahko uporabite za svoje preproste projekte, kot sta brskanje po spletu in gradnja botov.
Ustrezno poznavanje SQL in sistemov za upravljanje baz podatkov je bistveno za njihovo učinkovito uporabo v svojih programih. Če pa se odločite, da se SQL ne boste učili, se lahko naučite uporabljati ORM-je za interakcijo z bazami podatkov SQL v Go.