СКЛ базе података чувају колекције података у редовима и колонама. Можете да преузмете и ажурирате податке у систему за управљање релационим базама података (РДБМС) користећи СКЛ језик. Од многих доступних СКЛ база података, најпопуларније су МиСКЛ, ПостгреСКЛ, Мицрософт СКЛ Сервер и СКЛите.

Функционалност за интеракцију са базама података у Го-у је у пакету база података/скл, делу стандардне библиотеке.

База података/скл пакет је у интеракцији са СКЛ базама података помоћу драјвера. Можете увести одговарајући пакет драјвера за ваш РДБМС и користити га за интеракцију са базом података.

Почетак рада са СКЛ базама података у Го

База података/скл пакет је генерички интерфејс за релационе базе података. Да бисте радили са одређеним сервером базе података, мораћете да користите један од многих доступних драјвера.

Срећом, не морате да бринете о специфичним имплементацијама осим управљачког програма. База података/скл пакет управља операцијама базе података независно од сервера на који се повезујете.

Неки од најпопуларнијих драјвера за Го базе података су:

  • Го-СКЛ драјвер (МиСКЛ)
  • ПК (ПостгреСКЛ)
  • Го-СКЛите3 (СКЛите)
  • МССКЛ ДБ (Мицрософт СКЛ Сервер)

Можете користити Листа драјвера за ЛибХунт пронаћи еквиваленте за друге врсте база података. Листа такође показује релативну популарност сваког система базе података:

Инсталирање и увоз драјвера Го базе података

Када креирате Го радни простор и иницијализујете датотеку Го модула, инсталирајте драјвер који одговара вашем систему базе података. На пример, покрените једну од следећих команди у директоријуму вашег радног простора да бисте инсталирали МиСКЛ или СКЛите драјвер:

иди гет -у гитхуб.цом/го-скл-дривер/мискл
идите на гитхуб.цом/маттн/го-склите3

Након што инсталирате управљачки програм, увезите га ради нежељених ефеката тако што ћете ставити префикс доње црте испред пакета. На пример, да бисте увезли МиСКЛ драјвер уз пакет базе података/скл:

увоз (
"база података/скл"
_ "гитхуб.цом/иди-скл-дривер/мискл"
)

Увозом пакета драјвера за нежељене ефекте, можете га користити за повезивање са базом података и извршавање операција на њој.

Повезивање са СКЛ базом података са Го

Након увоза драјвера базе података, можете креирати везу са базом података користећи Отвори методом база података/скл пакет. Овај метод узима име драјвера и путању до базе података (за СКЛите) или низ везе (за МиСКЛ). На пример, користите било шта од следећег:

дб, ерр := скл. Опен("склите3", "моделс/тестдб.дб") // СКЛите

дб, ерр := скл. Опен("мискл", "корисник: лозинка@/дбнаме") // МиСКЛ

Када покушате да отворите везу, не заборавите да проверите да ли постоји грешка:

ако ерр != нула {
Пријава. Фаталн (ерр)
}

У зависности од вашег система базе података, Отвори метода може да врати грешку ако база података не постоји. Када се повежете са базом података, можете да извршавате упите и припремате изјаве користећи инстанцу базе података која Отвори враћа.

Извршавање СКЛ команди

Можете извршити СКЛ команде помоћу Припремити метод ваше инстанце базе података. Тхе Припремити метода преузима СКЛ команду и враћа припремљену наредбу за извршење заједно са објектом грешке. На пример, ако желите да направите нову табелу:

команда, ерр := дб. Препаре("НАПРАВИ ТАБЕЛЕ АКО НЕ ПОСТОЈИ логин (корисничко име ТЕКСТ, лозинка ТЕКСТ)")

Горња изјава креира табелу под називом Пријавите се, ако већ не постоји. Нова табела има поља именована корисничко име и Лозинка, сваки од типа ТЕКСТ.

Ако у своје упите убацујете вредности из свог програма, можете користити ознаку знака питања (?) да означите чуваре места, а затим проследите параметре приликом извршавања наредбе.

команда, ерр := дб. Препаре("ИНСЕРТ ИНТО логин (корисничко име, лозинка) вредности(?,?)")

Када креирате припремљену изјаву, можете је извршити користећи њен Екец методом. Овај метод вам омогућава да проследите вредности параметара из вашег програма:

екец, ерр := команда. Екец (вредност1, вредност2)

ако ерр != нула {
повратак
}

Прва вредност која Екец() ретурнс је резултат СКЛ упита у вашој бази података. Користећи овај резултат упита, можете да проверите број редова на које то утиче или последњи уметнути ИД:

погођено, ерр := екец. Ровс Аффецтед()

ако ерр != нула {
повратак
}

фмт. Принтлн (погођено)

ид, грешка := екец. ЛастИнсертИд()

ако ерр != нула {
повратак
}

фмт. Принтлн (ид)

Преузимање резултата упита

База података/скл пакет вам омогућава да тражите резултате базе података користећи Упит метод инстанце базе података:

редови, грешка := дб. Упит("ИЗАБИР * ОД корисника")

ако ерр != нула {
повратак
}

Тхе Упит метода враћа а Редови структуру коју можете користити за рад са вашим скупом резултата. На пример, можете користити Следећи метод ваше инстанце редова за понављање преко ње и рад са појединачним редовима:

вар корисничко име Лозинка низ

за редова. Следећи() {
ерр := редови. Скенирај (&корисничко име, &лозинка)

ако ерр != нула {
Пријава. Фаталн (ерр)
}

фмт. Принтлн (корисничко име, лозинка)
}

У горњем примеру, две променљиве низа—корисничко име и Лозинка—представља вредност сваке колоне. Тхе Скенирај метода декодира тренутни ред у те одговарајуће променљиве.

СКЛ базе података су увек корисне

Коришћење база података у Го-у је једноставно са пакетом база података/скл. Можете га користити за испитивање и извршавање СКЛ команди у Го-у са лакоћом.

СКЛ базе података су срж многих апликација, посебно оних које се баве великим или сложеним скуповима података. Можете да користите базе података као што је СКЛите база података у меморији за своје једноставне пројекте као што су веб стругање и прављење ботова.

Правилно познавање СКЛ-а и система за управљање базама података је од суштинског значаја да бисте их ефикасно користили у својим програмима. Међутим, ако одлучите да не научите СКЛ, можете научити како да користите ОРМ-ове за интеракцију са СКЛ базама података у Го.