Примери за Golang SQLite

Primeri Za Golang Sqlite



Golang е език за програмиране с отворен код. Поддържа различни видове инструменти за база данни. SQLite е популярна машина за релационни бази данни и Golang има база данни/SQL пакет, който може да се използва за свързване с базата данни SQLite и изпълнение на различни типове задачи на базата данни. Показани са начинът за свързване с база данни SQLite и извършване на различни видове операции с база данни, като създаване на таблица, вмъкване на записите в таблицата, четене на данните от таблицата, актуализиране на данните от таблицата и изтриване на записите от таблицата в този урок с помощта на скрипта Golang.

Предпоставки:

Трябва да изпълните следните задачи, преди да практикувате примерите в този урок:

A. Инсталирайте езика Golang в системата, ако не е инсталиран преди това. Изпълнете следната команда, за да проверите инсталираната версия на Golang:







$ go версия



Б. Инсталирайте sqlite3 в системата, ако не е бил инсталиран преди това. Sqlite3 е инсталиран по подразбиране на Ubuntu 20+. Изпълнете следната команда, за да проверите инсталираната версия на sqlite3:



$ sqlite3 --версия





C. Изпълнете следните команди, за да създадете папка с име „golang-sqlite“ и отидете до тази папка, където ще се съхраняват файлът с база данни SQLite и файлът Golang:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Изпълнете следната команда, за да изтеглите необходимия Golang пакет, за да използвате SQLite с Golang:



$ go get github.com/mattn/go-sqlite3

Операции с бази данни с помощта на Golang и SQLite

Основните операции с бази данни, използващи базата данни SQLite и Golang скрипт, са показани в този урок. Списъкът със задачи за бази данни, които са обхванати в този урок, е споменат по-долу:

  1. Създайте SQLite база данни
  2. Направете SQLite връзка с база данни
  3. Създайте нова таблица
  4. Вмъкнете данните в таблицата
  5. Прочетете данните от таблицата
  6. Актуализирайте данните от таблицата
  7. Изтрийте данните от таблицата

Създайте SQLite база данни с помощта на Golang

Създайте Golang файл със следния скрипт, който създава нов SQLite файл с база данни с име „test.db“. В скрипта се импортират четири модула. Модулът “fmt” се използва за отпечатване на изхода в терминала. Модулът “log” се използва за прекъсване на програмата, когато се появи грешка. Модулът “os” се използва за създаване на SQLite база данни и обработка на грешката. Модулът „go-sqlite3“ се използва за осъществяване на връзки с базата данни SQLite чрез Golang. Методът Create() на модула “os” се използва тук за създаване на SQLite база данни. Ако базата данни е създадена успешно, в терминала се отпечатва съобщение за успех. В противен случай програмата ще бъде прекратена. Методът Close() се извиква, за да затвори връзката с базата данни.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'Вие'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създаване на нова SQLite база данни
db , грешка := Вие . Създавайте ( 'test.db' )
//Проверете за грешка
ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Отпечатайте съобщението за успех
fmt . Println ( „Базата данни е създадена.“ )
}
//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла „db_connect.go“:

$ стартирайте db_connect.go

Изпълнете командата „ls“, за да проверите дали файлът на базата данни „test.db“ е създаден или не:

$ ls

Следният изход показва, че съобщението за успех „Базата данни е създадена“ се отпечатва в изхода и файлът „test.db“ е създаден в текущото местоположение:

Свържете се с SQLite база данни с помощта на Golang

Създайте Golang файл със следния скрипт, който отваря файла на базата данни „test.db“ и осъществете връзката с базата данни. Базата данни/SQL модулът на Golang се импортира тук, за да изпълни тази задача. Методът open() се използва тук, за да се направи връзка със съществуващата база данни SQLite. Ако базата данни е свързана успешно, в терминала се отпечатва съобщение за успех. В противен случай програмата ще бъде прекратена.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'база данни/sql'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създаване на нова SQLite база данни
db , грешка := sql . Отворете ( 'sqlite3' , 'test.db' )
//Проверете за грешка
ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Отпечатайте съобщението за успех
fmt . Println ( „Базата данни е свързана успешно.“ )
}
//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла „db_connect2.go“:

$ стартирайте db_connect2.go

Следният изход показва, че файлът на базата данни „test.db“ е отворен и свързан успешно. Съобщението за успех „Базата данни е свързана успешно“ се отпечатва в изхода:

Създайте таблица в SQLite база данни с помощта на Golang

Създайте Golang файл със следния скрипт, който създава таблица на база данни с име „членове“ във файла на базата данни „test.db“. Методът Exec() се използва тук за изпълнение на заявката CREATE TABLE, която създава таблицата „членове“ с шест полета и първичен ключ. Ако таблицата е създадена успешно в базата данни, се отпечатва съобщение за успех. В противен случай програмата ще бъде прекратена.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'база данни/sql'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създайте нова база данни sqlite
db , грешка := sql . Отворете ( 'sqlite3' , 'test.db' )
//Проверете за грешка
ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
конст заявка низ = `
СЪЗДАВАНЕ НА ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА членове (
id INTEGER NOT NULL PRIMARY KEY,
име CHAR(40) NOT NULL,
mtype CHAR(100) NOT NULL,
имейл CHAR(50),
адрес TEXT NOT NULL,
mobile CHAR(25) NOT NULL);`

_ , грешка := db . Изп ( заявка );

ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Отпечатайте съобщението за успех
fmt . Println ( „Таблицата е създадена успешно.“ )
}

}
//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла „create_table.go“:

$ стартирайте create_table.go

Следният резултат показва, че таблицата е създадена успешно в базата данни. Съобщението за успех „Таблицата е създадена успешно“ се отпечатва в терминала:

Можете да влезете в SQLite, за да проверите дали таблицата е създадена или не в базата данни.

Изпълнете следната команда, за да стартирате SQLite с базата данни „test.db“:

$ sqlite3 test.db

Изпълнете командата “.tables” SQLite от командния ред на SQLite, за да проверите имената на таблиците на базата данни:

sqlite3 > .таблици

Следният изход показва, че базата данни съдържа таблицата „членове“, която е създадена чрез изпълнение на скрипта Golang:

Вмъкнете записите в таблицата SQLite с помощта на Golang

Множество записи могат да бъдат вмъкнати в таблицата чрез изпълнение на заявката INSERT няколко пъти или чрез добавяне на множество стойности в една заявка INSERT. Създайте Golang файл със следния скрипт, който вмъква три записа в таблицата „членове“ на файла на базата данни „test.db“ с помощта на една заявка INSERT. Методът Exec() се използва тук за изпълнение на заявката INSERT. Ако записите са вмъкнати успешно в таблицата, се отпечатва съобщение за успех. В противен случай програмата ще бъде прекратена.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'база данни/sql'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създаване на нова SQLite база данни
db , грешка := sql . Отворете ( 'sqlite3' , 'test.db' )
//Проверете за грешка
ако грешка != нула {
//Добавяне на съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
конст заявка низ = `
INSERT INTO членове (id, име, mtype, имейл, адрес, мобилен)
VALUES(1, 'Nehal Ahmed', 'Silver', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, „Abir Chowdhury“, „Gold“, „abir@gmail.com“, „102, Mirpur 10, Dhaka“, „01994563423“),
(3, 'Mirza Abbas', 'Silver', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');`


//Изпълнете заявката
_ , грешка := db . Изп ( заявка );

ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Отпечатайте съобщението за успех
fmt . Println ( „Записите са вмъкнати успешно.“ )
}
}

//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла „insert_table.go“:

$ стартирайте insert_table.go

Следният изход показва, че записите са вмъкнати успешно в таблицата. Съобщението за успех „Записите са вмъкнати успешно“ се отпечатва в изхода:

Можете да влезете в SQLite, за да проверите дали трите записа са вмъкнати успешно или не в таблицата „членове“.

Изпълнете следната команда, за да стартирате SQLite с базата данни „test.db“:

$ sqlite3 test.db

Изпълнете следната заявка SELECT, за да прочетете цялото съдържание на таблицата „членове“:

sqlite3 > ИЗБЕРЕТЕ * ОТ членове ;

Следният изход показва, че таблицата „членове“ съдържа три записа, които са вмъкнати от скрипта Golang:

Прочетете данните от таблицата SQLite с помощта на Golang

Създайте Golang файл със следния скрипт, който чете записите на таблицата „членове“. Трябва да дефинирате променливите в Golang, за да съхранявате стойностите, които се връщат от заявката SELECT. В този скрипт пет полета се извличат от таблицата „членове“ с помощта на заявката SELECT. И така, в скрипта са дефинирани пет променливи за съхраняване на стойностите на петте полета на таблицата „членове“, където стойността на полето „mtype“ е „Silver“. Методът Query() се използва тук за изпълнение на заявката SELECT. След това цикълът „for“ се използва за четене на резултатния набор, който се връща от заявката SELECT. Функцията printf() се използва за отпечатване на форматираните стойности на резултатния набор.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'база данни/sql'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създаване на нова SQLite база данни
db , грешка := sql . Отворете ( 'sqlite3' , 'test.db' )

//Проверете за грешка
ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {

//Деклариране на променливи за съхраняване на стойностите на реда
беше документ за самоличност вътр
беше име низ
беше mtype низ
беше адрес низ
беше Подвижен низ
конст заявка низ = `ИЗБЕРЕТЕ id, name, mtype, address, mobile
ОТ членове
WHERE mtype = 'Сребро';`


//Изпълнете заявката
редове , грешка := db . Запитване ( заявка );

ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {

//Отпечатайте съобщението за успех
fmt . Println ( „Записи на всички сребърни членове:“ )
fmt . Println ( 'ДОКУМЕНТ ЗА САМОЛИЧНОСТ \T Име \T \T Тип член \T Адрес \T \T Номер за контакт' )
за редове . Следващия () {
редове . Сканиране ( &документ за самоличност , &име , &mtype , &адрес , &Подвижен )
fmt . Printf ( '%д \T \T \T \T ' , документ за самоличност , име , mtype , адрес , Подвижен )
}
}
}
//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла “select_table.go”:

$ стартирайте select_table.go

Съществуват два записа в таблицата „членове“, която съдържа „Сребро“ в полето „mtype“. Следният изход показва два записа на таблицата „членове“, които са върнати от заявката SELECT:

Актуализирайте данните на SQLite таблицата с помощта на Golang

Създайте Golang файл със следния скрипт, който променя стойността на мобилното поле на таблицата „членове“, която съдържа id стойност 2. Методът Exec() се използва тук за изпълнение на заявката UPDATE. Ако записът е актуализиран успешно в таблицата, се отпечатва съобщение за успех. В противен случай програмата ще бъде прекратена.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'база данни/sql'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създаване на нова SQLite база данни
db , грешка := sql . Отворете ( 'sqlite3' , 'test.db' )
//Проверете за грешка
ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
конст заявка низ = `
АКТУАЛИЗИРАНЕ на членове SET mobile = '018563452390' WHERE id = 2;`

_ , грешка := db . Изп ( заявка );

ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Отпечатайте съобщението за успех
fmt . Println ( „Записът е актуализиран успешно.“ )
}
}
//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла „update_table.go“:

$ стартирайте update_table.go

В таблицата „членове“ вторият ред съдържа id стойност 2. Следният изход показва, че записът на таблицата е актуализиран успешно. Съобщението за успех „Записът е актуализиран успешно“ се отпечатва в терминала:

Можете да влезете в SQLite, за да проверите дали някой запис на таблицата с членове е актуализиран или не.

Изпълнете следната команда, за да стартирате SQLite с базата данни „test.db“:

$ sqlite3 test.db

Изпълнете следната заявка SELECT, за да прочетете цялото съдържание на таблицата „членове“:

sqlite3 > ИЗБЕРЕТЕ * ОТ членове ;

Стойността на мобилното поле на 2 nd записът на таблицата с членове е „01994563423“, преди да изпълните скрипта. Следният изход показва, че стойността на мобилното поле на 2 nd записът на таблицата с членове се променя на „018563452390“ след изпълнение на скрипта:

Изтрийте данните от таблицата SQLite с помощта на Golang

Създайте Golang файл със следния скрипт, който изтрива 3 rd запис на таблицата „членове“, която съдържа id стойност 3. Методът Exec() се използва тук за изпълнение на заявката DELETE. Ако записът е изтрит успешно от таблицата, се отпечатва съобщение за успех. В противен случай програмата ще бъде прекратена.

пакет основен

//Импортирайте необходимите модули
импортиране (
'fmt'
'дневник'
'база данни/sql'
_ 'github.com/mattn/go-sqlite3'
)

функ основен () {

//Създаване на нова SQLite база данни
db , грешка := sql . Отворете ( 'sqlite3' , 'test.db' )
//Проверете за грешка
ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Дефиниране на заявката за изтриване
конст заявка низ = `ИЗТРИВАНЕ ОТ членове WHERE id = 3;`
//Изпълнете заявката
_ , грешка := db . Изп ( заявка );

ако грешка != нула {
//Добавете съобщението за грешка към дневника
дневник . Фатално ( грешка )
} друго {
//Отпечатайте съобщението за успех
fmt . Println ( „Записът е изтрит успешно.“ )
}
}
//Затворете връзката с базата данни
db . Близо ()
}

Изпълнете следната команда, за да изпълните файла „delete_table.go“:

$ стартирайте delete_table.go

Следният изход показва, че 3 rd записът на таблицата „членове“ е изтрит успешно. Съобщението за успех „Записът е изтрит успешно“ се отпечатва в терминала:

Можете да влезете в SQLite, за да проверите дали някой запис от таблицата с членове е изтрит или не.

Изпълнете следната команда, за да стартирате SQLite с базата данни „test.db“:

$ sqlite3 test.db

Изпълнете следната заявка SELECT, за да прочетете цялото съдържание на таблицата „членове“:

sqlite3 > ИЗБЕРЕТЕ * ОТ членове ;

Следният изход показва, че стойността на 3 rd записът на таблицата с членове се изтрива след изпълнение на скрипта и другите два записа се отпечатват в изхода:

Заключение

Както SQLite, така и Golang са популярни сега заради своята простота и леки функции. Всяко просто приложение, базирано на база данни, може да бъде реализирано лесно с помощта на тези инструменти. Основната част от всяко приложение е да реализира операцията CRUD. Методите за внедряване на операция CRUD с помощта на Golang скрипт и SQLite база данни са обяснени в този урок с помощта на множество Golang файлове. Ако сте нов изучаващ езика Go и базата данни SQLite, този урок ще ви помогне да ги научите от основните.