SQL datu bāzes glabā datu kolekcijas rindās un kolonnās. Varat izgūt un atjaunināt datus relāciju datu bāzes pārvaldības sistēmā (RDBMS), izmantojot SQL valodu. No daudzajām pieejamajām SQL datu bāzēm vispopulārākās ir MySQL, PostgreSQL, Microsoft SQL Server un SQLite.

Funkcionalitāte mijiedarbībai ar datu bāzēm Go ir datu bāzes/sql pakotnē, kas ir daļa no standarta bibliotēkas.

Datu bāzes/sql pakotne mijiedarbojas ar SQL datu bāzēm, izmantojot draiverus. Varat importēt atbilstošu draivera pakotni savai RDBMS un izmantot to, lai mijiedarbotos ar datu bāzi.

Darba sākšana ar SQL datu bāzēm pakalpojumā Go

Datu bāzes/sql pakotne ir vispārējs interfeiss relāciju datu bāzēm. Lai strādātu ar noteiktu datu bāzes serveri, jums būs jāizmanto viens no daudzajiem pieejamajiem draiveriem.

Par laimi, jums nav jāuztraucas par konkrētām implementācijām ārpus draivera. Datu bāzes/sql pakotne apstrādā datu bāzes darbības neatkarīgi no servera, ar kuru veidojat savienojumu.

Daži no populārākajiem Go datu bāzes draiveriem ir:

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

Jūs varat izmantot LibHunt draiveru saraksts lai atrastu ekvivalentus citi datu bāzes veidi. Sarakstā ir parādīta arī katras datu bāzes sistēmas relatīvā popularitāte:

Go datu bāzes draiveru instalēšana un importēšana

Kad esat izveidojis Go darbvietu un inicializējis Go moduļu failu, instalējiet draiveri, kas atbilst jūsu datu bāzes sistēmai. Piemēram, darbvietas direktorijā palaidiet kādu no šīm komandām, lai instalētu MySQL vai SQLite draiveri:

go get -u github.com/go-sql-driver/mysql
dodieties uz github.com/mattn/go-sqlite3

Kad esat instalējis draiveri, importējiet to, lai novērstu blakusparādības, pirms pakotnes pievienojot pasvītrojumu. Piemēram, lai importētu MySQL draiveri kopā ar datu bāzes/sql pakotni:

imports (
"datubāze/sql"
_ "github.com/aiziet-sql-driver/mysql"
)

Importējot blakusefektu draivera pakotni, varat to izmantot, lai izveidotu savienojumu ar datu bāzi un veiktu tajā darbības.

Savienojuma izveide ar SQL datu bāzi, izmantojot Go

Pēc datu bāzes draiveru importēšanas varat izveidot datu bāzes savienojumu, izmantojot Atvērt metode datu bāze/sql iepakojums. Šī metode izmanto draivera nosaukumu un ceļu uz datu bāzi (SQLite) vai savienojuma virkni (MySQL). Piemēram, izmantojiet kādu no šīm iespējām:

db, err := sql. Atvērt ("sqlite3", "models/testdb.db") // SQLite

db, err := sql. Atvērt ("mysql", "lietotājs: parole@/dbnosaukums") // MySQL

Kad esat mēģinājis atvērt savienojumu, neaizmirstiet pārbaudīt, vai nav kļūdu:

ja kļūda! = nulle {
žurnāls. Fatalln (kļūda)
}

Atkarībā no jūsu datu bāzes sistēmas, Atvērt metode var atgriezt kļūdu, ja datubāze neeksistē. Kad esat izveidojis savienojumu ar datu bāzi, varat izpildīt vaicājumus un sagatavot paziņojumus, izmantojot datu bāzes gadījumu Atvērt atgriežas.

SQL komandu izpilde

Jūs varat izpildīt SQL komandas izmantojot Sagatavot jūsu datu bāzes instances metode. The Sagatavot metode uzņem SQL komandu un atgriež sagatavotu paziņojumu izpildei kopā ar kļūdas objektu. Piemēram, ja vēlaties izveidot jaunu tabulu:

komanda, err := db. Sagatavot ("IZVEIDOT TABULU, JA NAV pieteikšanās (lietotājvārda TEKSTS, paroles TEKSTS)")

Iepriekš minētais paziņojums izveido tabulu ar nosaukumu Pieslēgties, ja tas vēl neeksistē. Jaunajā tabulā ir lauki ar nosaukumu lietotājvārds un parole, katrs veids TEKSTS.

Ja vaicājumos ievietojat vērtības no savas programmas, varat izmantot jautājuma zīmes (?) apzīmējumu, lai apzīmētu vietturus un pēc tam nosūtīt parametrus, izpildot priekšrakstu.

komanda, err := db. Prepare("INSERT INTO pieteikšanās (lietotājvārds, parole) vērtības(?,?)")

Kad esat izveidojis sagatavotu paziņojumu, varat to izpildīt, izmantojot to Izpildītājs metodi. Šī metode ļauj nosūtīt parametru vērtības no programmas:

exec, err := komanda. Izpildīt (vērtība1, vērtība2)

ja kļūda! = nulle {
atgriezties
}

Pirmā vērtība, kas Izpildīt() atgriež ir jūsu datu bāzes SQL vaicājuma rezultāts. Izmantojot šo vaicājuma rezultātu, varat pārbaudīt ietekmēto rindu skaitu vai pēdējo ievietoto ID:

ietekmēts, err := exec. Ietekmētās rindas()

ja kļūda! = nulle {
atgriezties
}

fmt. Println (ietekmēts)

id, err := exec. LastInsertId()

ja kļūda! = nulle {
atgriezties
}

fmt. Println (id)

Notiek vaicājuma rezultātu iegūšana

Datu bāzes/sql pakotne ļauj vaicāt datu bāzes rezultātus, izmantojot Vaicājums datu bāzes instances metode:

rindas, kļūda := db. Vaicājums ("SELECT * FROM User")

ja kļūda! = nulle {
atgriezties
}

The Vaicājums metode atgriež a Rindas struktūra, ko varat izmantot, lai strādātu ar savu rezultātu kopu. Piemēram, varat izmantot Nākamais rindu instances metodi, lai to atkārtotu un strādātu ar atsevišķām rindām:

var Lietotājvārds Parole virkne

priekš rindas. Nākamais() {
err := rindas. Skenēšana (&lietotājvārds, &parole)

ja kļūda! = nulle {
žurnāls. Fatalln (kļūda)
}

fmt. Println (lietotājvārds, parole)
}

Iepriekš minētajā piemērā divi virknes mainīgie —lietotājvārds un parole— atspoguļo katras kolonnas vērtību. The Skenēt metode dekodē pašreizējo rindu attiecīgajos mainīgajos.

SQL datu bāzes vienmēr noderēs

Datubāzu izmantošana programmā Go ir vienkārša, izmantojot datu bāzes/sql pakotni. Varat to izmantot, lai ērti vaicātu un izpildītu SQL komandas programmā Go.

SQL datu bāzes ir daudzu lietojumprogrammu pamatā, jo īpaši tām, kas nodarbojas ar lielām vai sarežģītām datu kopām. Varat izmantot datu bāzes, piemēram, atmiņā iebūvēto SQLite datu bāzi saviem vienkāršiem projektiem, piemēram, tīmekļa skrāpēšanai un robotu veidošanai.

Pareizas zināšanas par SQL un datu bāzes pārvaldības sistēmām ir būtiskas, lai tās efektīvi izmantotu savās programmās. Tomēr, ja izvēlaties neapgūt SQL, varat uzzināt, kā izmantot ORM, lai mijiedarbotos ar SQL datu bāzēm pakalpojumā Go.