Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpDbCT 203 of 280 menu
◀ ▶

Создание таблицы в Go

Структуру таблицы задают одним запросом с именем таблицы и списком столбцов. У каждого столбца пишут имя и тип, для ключа часто ставят ограничение первичного ключа и автоувеличения.

Запросы без возвращаемых строк выполняют через команду пакета database/sql, которая не открывает курсор. Ошибку сразу проверяют: при сбое таблица может не появиться, а программа не должна идти дальше.

Создадим таблицу goods в чистом файле:

package main import ( "database/sql" "fmt" "log" "os" _ "modernc.org/sqlite" ) func main() { os.Remove("shop.db") db, err := sql.Open("sqlite", "shop.db") if err != nil { log.Fatal(err) } defer db.Close() err = db.Ping() if err != nil { log.Fatal(err) } _, err = db.Exec(` CREATE TABLE goods ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, price REAL NOT NULL ) `) if err != nil { log.Fatal(err) } fmt.Println("table goods") }

На экране "table goods". В файле shop.db появилась пустая таблица с тремя столбцами.

Рядом можно завести таблицу заказов с теми же правилами имен:

package main import ( "database/sql" "fmt" "log" "os" _ "modernc.org/sqlite" ) func main() { os.Remove("shop.db") db, err := sql.Open("sqlite", "shop.db") if err != nil { log.Fatal(err) } defer db.Close() err = db.Ping() if err != nil { log.Fatal(err) } _, err = db.Exec(` CREATE TABLE goods ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, price REAL NOT NULL ) `) if err != nil { log.Fatal(err) } _, err = db.Exec(` CREATE TABLE orders ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, qty INTEGER NOT NULL, price REAL NOT NULL ) `) if err != nil { log.Fatal(err) } fmt.Println("tables ready") }

Дана таблица:

goods: id, title, price

Напишите запрос создания с типами INTEGER для id, TEXT для title, REAL для price и первичным ключом на id.

Даны столбцы таблицы orders: id, title, qty, price. Составьте полный текст запроса CREATE TABLE для этой таблицы.

Скажите, чем запрос создания таблицы отличается от выборки по уже готовым данным с точки зрения команды пакета database/sql.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить