SQL baze podataka pohranjuju zbirke podataka u retke i stupce. Možete dohvatiti i ažurirati podatke u sustavu upravljanja relacijskim bazama podataka (RDBMS) koristeći SQL jezik. Od mnogih dostupnih SQL baza podataka, najpopularniji su MySQL, PostgreSQL, Microsoft SQL Server i SQLite.

Funkcionalnost za interakciju s bazama podataka u Gou nalazi se u paketu baza podataka/sql, dijelu standardne biblioteke.

Baza podataka/sql paket komunicira sa SQL bazama podataka pomoću upravljačkih programa. Možete uvesti odgovarajući paket upravljačkih programa za vaš RDBMS i koristiti ga za interakciju s bazom podataka.

Početak rada s SQL bazama podataka u Go

Baza podataka/sql paket je generičko sučelje za relacijske baze podataka. Za rad s određenim poslužiteljem baze podataka, morat ćete koristiti jedan od mnogih dostupnih upravljačkih programa.

Srećom, ne morate brinuti o specifičnim implementacijama osim upravljačkog programa. Baza podataka/sql paket upravlja operacijama baze podataka neovisno o poslužitelju na koji se povezujete.

instagram viewer

Neki od najpopularnijih drajvera za Go baze podataka su:

  • Go-SQL upravljački program (MySQL)
  • PQ (PostgreSQL)
  • Go-SQLite3 (SQLite)
  • MSSQL DB (Microsoft SQL Server)

Možete koristiti Popis upravljačkih programa LibHunt pronaći ekvivalente za druge vrste baza podataka. Popis također pokazuje relativnu popularnost svakog sustava baze podataka:

Instaliranje i uvoz upravljačkih programa Go baze podataka

Nakon što ste stvorili Go radni prostor i inicijalizirali datoteku Go modula, instalirajte upravljački program koji odgovara vašem sustavu baze podataka. Na primjer, pokrenite jednu od sljedećih naredbi u direktoriju svog radnog prostora da instalirate MySQL ili SQLite upravljački program:

idite na -u github.com/go-sql-driver/mysql
idite na github.com/mattn/go-sqlite3

Nakon što instalirate upravljački program, uvezite ga radi nuspojava stavljajući prefiks donje crte ispred paketa. Na primjer, za uvoz MySQL drajvera uz paket baze podataka/sql:

uvoz (
"baza podataka/sql"
_ "github.com/ići-sql-driver/mysql"
)

Uvozom paketa upravljačkih programa za nuspojave, možete ga koristiti za povezivanje s bazom podataka i izvršavanje operacija na njoj.

Povezivanje na SQL bazu podataka pomoću Go

Nakon uvoza upravljačkih programa baze podataka, možete stvoriti vezu s bazom podataka pomoću Otvorena metoda od baza podataka/sql paket. Ova metoda uzima ime upravljačkog programa i put do baze podataka (za SQLite) ili niz veze (za MySQL). Na primjer, koristite bilo što od sljedećeg:

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

db, err := sql. Open("mysql", "korisnik: lozinka@/dbname") // MySQL

Nakon što pokušate otvoriti vezu, ne zaboravite provjeriti ima li pogreške:

ako griješi!= nula {
zapisnik. Fatalln (err)
}

Ovisno o vašem sustavu baze podataka, Otvorena metoda može vratiti pogrešku ako baza podataka ne postoji. Nakon što se povežete s bazom podataka, možete izvršavati upite i pripremati izjave koristeći instancu baze podataka koja Otvorena vraća.

Izvršavanje SQL naredbi

Možeš izvršiti SQL naredbe koristiti Pripremiti metoda vaše instance baze podataka. The Pripremiti metoda uzima SQL naredbu i vraća pripremljenu naredbu za izvršenje zajedno s objektom pogreške. Na primjer, ako želite stvoriti novu tablicu:

naredba, err := db. Prepare("STVORI TABLICU AKO NE POSTOJI prijava (korisničko ime TEXT, lozinka TEXT)")

Gornja izjava stvara tablicu pod nazivom prijaviti se, ako već ne postoji. Nova tablica ima polja imenovana Korisničko ime i zaporka, svaki od vrsta TEKST.

Ako u svoje upite umećete vrijednosti iz svog programa, možete koristiti upitnik (?) za označavanje rezerviranih mjesta, a zatim proslijediti parametre prilikom izvršavanja izraza.

naredba, err := db. Prepare("INSERT INTO login (korisničko ime, lozinka) vrijednosti(?,?)")

Nakon što ste stvorili pripremljenu naredbu, možete je izvršiti pomoću njezine Izvrš metoda. Ova metoda vam omogućuje prosljeđivanje vrijednosti parametara iz vašeg programa:

exec, err := naredba. Exec (vrijednost1, vrijednost2)

ako griješi!= nula {
povratak
}

Prva vrijednost koja Exec() returns je rezultat SQL upita u vašoj bazi podataka. Koristeći ovaj rezultat upita, možete provjeriti broj zahvaćenih redaka ili zadnji umetnuti ID:

pogođeno, err := exec. Zahvaćeni redovi()

ako griješi!= nula {
povratak
}

fmt. Println (pogođeno)

id, err := exec. LastInsertId()

ako griješi!= nula {
povratak
}

fmt. Println (id)

Dohvaćanje rezultata upita

Paket baza podataka/sql omogućuje vam da tražite rezultate baze podataka pomoću Upit metoda instance baze podataka:

redovi, err := db. Upit("ODABIR * OD korisnika")

ako griješi!= nula {
povratak
}

The Upit metoda vraća a Redovi struct koju možete koristiti za rad sa svojim skupom rezultata. Na primjer, možete koristiti Sljedeći metoda vaše instance redaka za ponavljanje i rad s pojedinačnim recima:

var korisničko ime Zaporka niz

za redovima. Sljedeći() {
err := redovi. Skeniraj (&korisničko ime, &lozinka)

ako griješi!= nula {
zapisnik. Fatalln (err)
}

fmt. Println (korisničko ime, lozinka)
}

U gornjem primjeru, dvije varijable niza—Korisničko ime i zaporka—predstavlja svaku vrijednost stupca. The Skenirati metoda dekodira trenutni red u te odgovarajuće varijable.

SQL baze podataka uvijek dobro dođu

Korištenje baza podataka u Gou jednostavno je s paketom baza podataka/sql. Možete ga koristiti za postavljanje upita i izvršavanje SQL naredbi u Go s lakoćom.

SQL baze podataka su srž mnogih aplikacija, posebno onih koje se bave velikim ili složenim skupovima podataka. Možete koristiti baze podataka kao što je baza podataka SQLite u memoriji za svoje jednostavne projekte kao što su struganje weba i izrada botova.

Pravilno poznavanje SQL-a i sustava upravljanja bazama podataka ključno je za njihovu učinkovitu upotrebu u svojim programima. Međutim, ako odlučite ne naučiti SQL, možete naučiti kako koristiti ORM-ove za interakciju sa SQL bazama podataka u Go.