Az SQL-adatbázisok adatgyűjteményeket tárolnak sorokban és oszlopokban. Lekérheti és frissítheti az adatokat egy relációs adatbázis-kezelő rendszerben (RDBMS) az SQL nyelv használatával. A számos elérhető SQL-adatbázis közül a legnépszerűbbek a MySQL, a PostgreSQL, a Microsoft SQL Server és az SQLite.

A Go adatbázisaival való interakció funkciói az adatbázis/sql csomagban találhatók, amely a szabványos könyvtár része.

Az adatbázis/sql csomag illesztőprogramok segítségével működik együtt az SQL adatbázisokkal. Importálhat megfelelő illesztőprogram-csomagot az RDBMS-hez, és használhatja az adatbázissal való interakcióhoz.

Kezdő lépések az SQL-adatbázisokkal a Go-ban

Az adatbázis/sql csomag egy általános interfész a relációs adatbázisokhoz. Egy adott adatbázis-kiszolgálóval való együttműködéshez a számos elérhető illesztőprogram egyikét kell használnia.

Szerencsére nem kell aggódnia az illesztőprogramon kívüli konkrét megvalósítások miatt. Az adatbázis/sql csomag az adatbázis-műveleteket attól függetlenül kezeli, hogy melyik szerverhez csatlakozik.

A legnépszerűbb Go adatbázis-illesztőprogramok közül néhány:

  • Go-SQL illesztőprogram (MySQL)
  • PQ (PostgreSQL)
  • Go-SQLite3 (SQLite)
  • MSSQL DB (Microsoft SQL Server)

Használhatja a LibHunt illesztőprogramok listája megfelelőket találni egyéb adatbázistípusok. A lista az egyes adatbázisrendszerek relatív népszerűségét is mutatja:

Go Database illesztőprogramok telepítése és importálása

Miután létrehozott egy Go munkaterületet és inicializálta a Go modules fájlt, telepítse az adatbázisrendszerének megfelelő illesztőprogramot. Például futtassa a következő parancsok egyikét a munkaterület-könyvtárban a MySQL vagy SQLite illesztőprogram telepítéséhez:

go get -u github.com/go-sql-driver/mysql
keresd meg a github.com/mattn/go-sqlite3 oldalt

Az illesztőprogram telepítése után importálja azt a mellékhatások miatt úgy, hogy a csomag elé aláhúzást ír. Például a MySQL illesztőprogram importálásához az adatbázis/sql csomag mellé:

import (
"adatbázis/sql"
_ "github.com/megy-sql-driver/mysql"
)

A mellékhatások miatti illesztőprogram-csomag importálásával csatlakozhat az adatbázishoz, és műveleteket hajthat végre rajta.

Csatlakozás SQL-adatbázishoz a Go segítségével

Az adatbázis-illesztőprogramok importálása után adatbázis-kapcsolatot hozhat létre a Nyisd ki módszere a adatbázis/sql csomag. Ez a módszer az illesztőprogram nevét és elérési útját veszi fel az adatbázishoz (SQLite esetén) vagy egy kapcsolati karakterláncot (MySQL esetén). Például használja a következők egyikét:

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

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

Miután megpróbálta megnyitni a kapcsolatot, ne felejtse el ellenőrizni a hibát:

ha hiba! = nulla {
log. Fatalln (hiba)
}

Az adatbázisrendszertől függően a Nyisd ki metódus hibát jelezhet, ha az adatbázis nem létezik. Miután csatlakozott egy adatbázishoz, lekérdezéseket hajthat végre és utasításokat készíthet az adatbázispéldány használatával Nyisd ki visszatér.

SQL parancsok végrehajtása

tudsz végrehajtani az SQL parancsokat használni a Készít az adatbázispéldány módszere. Az Készít metódus bevesz egy SQL parancsot, és egy előkészített utasítást ad vissza végrehajtásra egy hibaobjektum mellett. Például, ha új táblázatot szeretne létrehozni:

parancs, err := db. Prepare("TÁBLÁZAT LÉTREHOZÁSA, HA NEM LÉTEZIK bejelentkezés (felhasználónév SZÖVEG, jelszó SZÖVEG)")

A fenti utasítás létrehoz egy nevű táblát Belépés, ha még nem létezik. Az új táblában vannak elnevezett mezők felhasználónév és Jelszó, mindegyik típus SZÖVEG.

Ha a programból értékeket illeszt be a lekérdezésekbe, kérdőjel (?) jelöléssel jelölheti a helyőrzőket, majd átadhatja a paramétereket az utasítás végrehajtása során.

parancs, err := db. Prepare("INSERT INTO bejelentkezési (felhasználónév, jelszó) értékek(?,?)")

Miután elkészített egy előkészített utasítást, végrehajthatja annak használatával Exec módszer. Ezzel a módszerrel paraméterértékeket adhat át a programból:

exec, err := parancs. Exec (érték1, érték2)

ha hiba! = nulla {
Visszatérés
}

Az első érték, ami Exec() returns az adatbázisban lévő SQL-lekérdezés eredménye. A lekérdezés eredménye segítségével ellenőrizheti az érintett sorok számát vagy az utoljára beillesztett azonosítót:

érintett, err := exec. Érintett sorok()

ha hiba! = nulla {
Visszatérés
}

fmt. Println (érintett)

id, err := exec. LastInsertId()

ha hiba! = nulla {
Visszatérés
}

fmt. Println (azonosító)

Lekérdezés eredményeinek lekérése

Az adatbázis/sql csomag lehetővé teszi az adatbázisok eredményeinek lekérdezését a Lekérdezés adatbázispéldány módszere:

sorok, err := db. Query("SELECT * FROM User")

ha hiba! = nulla {
Visszatérés
}

Az Lekérdezés metódus a Sorok struktúra, amelyet az eredménykészlettel való munkához használhat. Használhatja például a Következő a sorpéldány metódusa az iterációhoz és az egyes sorokkal való munkavégzéshez:

var felhasználónév jelszó húr

számára sorokat. Következő() {
hiba := sorok. Szkennelés (&felhasználónév, &jelszó)

ha hiba! = nulla {
log. Fatalln (hiba)
}

fmt. Println (felhasználónév, jelszó)
}

A fenti példában két karakterlánc-változó –felhasználónév és Jelszó— minden oszlop értéket képvisel. Az Letapogatás metódus dekódolja az aktuális sort a megfelelő változókra.

Az SQL-adatbázisok mindig jól jönnek

Az adatbázisok használata a Go programban egyszerű az adatbázis/sql csomaggal. Használhatja SQL-parancsok lekérdezésére és végrehajtására a Go alkalmazásban.

Az SQL-adatbázisok számos alkalmazás magját képezik, különösen azok, amelyek nagy vagy összetett adatkészletekkel foglalkoznak. Használhat olyan adatbázisokat, mint például a memórián belüli SQLite adatbázis olyan egyszerű projektjeihez, mint a webkaparás és a robotok építése.

Az SQL és az adatbázis-kezelő rendszerek megfelelő ismerete elengedhetetlen ahhoz, hogy hatékonyan használhassa őket a programokban. Ha azonban úgy dönt, hogy nem tanulja meg az SQL-t, megtudhatja, hogyan használhatja az ORM-eket az SQL-adatbázisokkal való interakcióhoz a Go-ban.