Golang SQLite example

Представим, что у нас есть база данных SQLite с таблицей "users", в которой хранится информация о пользователях в следующем формате: - ID (целое число, первичный ключ) - Name (текстовое поле) - Age (целое число) Для того, чтобы работать с этой базой данных в Golang, необходимо установить пакет "database/sql" и драйвер SQLite "mattn/go-sqlite3". 1. Подключение к базе данных: Для начала необходимо открыть соединение с базой данных. Это можно сделать следующим образом: ``` import ( "database/sql" _ "github.com/mattn/go-sqlite3" ) func main() { db, err := sql.Open("sqlite3", "./users.db") if err != nil { panic(err) } defer db.Close() } ``` В данном примере мы открыли соединение с базой данных "users.db", которая находится в той же директории, что и программа. 2. Создание таблицы: Для создания таблицы необходимо выполнить SQL-запрос на языке SQL: ``` _, err = db.Exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)") if err != nil { panic(err) } ``` Здесь мы создали таблицу "users" со столбцами "id", "name" и "age". 3. Добавление записи в таблицу: Для добавления новой записи в таблицу необходимо выполнить SQL-запрос на языке SQL c использованием метода "Prepare" и "Exec" объекта "db": ``` stmt, err := db.Prepare("INSERT INTO users(name, age) values(?, ?)") if err != nil { panic(err) } defer stmt.Close() _, err = stmt.Exec("John", 30) if err != nil { panic(err) } ``` Здесь мы добавляем запись в таблицу "users" с именем "John" и возрастом 30. 4. Выборка данных из таблицы: Для выборки данных необходимо выполнить SQL-запрос на языке SQL c использованием метода "Query" объекта "db": ``` rows, err := db.Query("SELECT id, name, age FROM users") if err != nil { panic(err) } defer rows.Close() for rows.Next() { var id int var name string var age int err = rows.Scan(&id, &name, &age) if err != nil { panic(err) } fmt.Println(id, name, age) } ``` Здесь мы выбираем все записи из таблицы "users" и выводим их на экран. 5. Обновление записи в таблице: Для обновления записи необходимо выполнить SQL-запрос на языке SQL c использованием метода "Prepare" и "Exec" объекта "db": ``` stmt, err = db.Prepare("UPDATE users SET age = ? WHERE name = ?") if err != nil { panic(err) } defer stmt.Close() _, err = stmt.Exec(35, "John") if err != nil { panic(err) } ``` Здесь мы обновляем возраст пользователя "John" на 35 лет. 6. Удаление записи из таблицы: Для удаления записи необходимо выполнить SQL-запрос на языке SQL c использованием метода "Prepare" и "Exec" объекта "db": ``` stmt, err = db.Prepare("DELETE FROM users WHERE name = ?") if err != nil { panic(err) } defer stmt.Close() _, err = stmt.Exec("John") if err != nil { panic(err) } ``` Здесь мы удаляем пользователя по имени "John" из таблицы "users". Это только небольшой пример использования Golang и SQLite. С помощью этих методов можно выполнять различные операции с базой данных SQLite и получать необходимые данные.