Практика на запись в базу в Go
В этих задачах потренируем вставку, изменение и удаление. Таблицы заданы текстом создания и вставки.
Дана таблица:
CREATE TABLE breeds (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL
);
Вставьте "poodle" и "husky",
затем выведите COUNT(*).
Дана таблица:
CREATE TABLE rates (
id INTEGER PRIMARY KEY,
code TEXT NOT NULL,
value REAL NOT NULL
);
INSERT INTO rates (code, value) VALUES ('usd', 1);
INSERT INTO rates (code, value) VALUES ('eur', 0.92);
Измените value для "eur"
на 0.95 и выведите новое значение
одной строкой через QueryRow.
Дана таблица:
CREATE TABLE inbox (
id INTEGER PRIMARY KEY,
subject TEXT NOT NULL,
seen INTEGER NOT NULL
);
INSERT INTO inbox (subject, seen) VALUES ('hello', 1);
INSERT INTO inbox (subject, seen) VALUES ('spam', 0);
INSERT INTO inbox (subject, seen) VALUES ('bill', 0);
Удалите строки, где seen равно
0, и выведите оставшееся
COUNT(*).
Дана таблица:
CREATE TABLE coupons (
id INTEGER PRIMARY KEY,
code TEXT NOT NULL,
used INTEGER NOT NULL
);
INSERT INTO coupons (code, used) VALUES ('save10', 0);
Вставьте "save20" с used
0 через параметры со знаком
вопроса и выведите COUNT(*)
после вставки.
Дана таблица:
CREATE TABLE ledger (
id INTEGER PRIMARY KEY,
label TEXT NOT NULL,
balance REAL NOT NULL
);
INSERT INTO ledger (label, balance) VALUES ('cash', 100);
INSERT INTO ledger (label, balance) VALUES ('card', 50);
В одной транзакции уменьшите balance
"cash" на 30 и увеличьте
"card" на 30. Оба шага
либо записываются, либо отменяются
вместе. После фиксации выведите баланс
"cash".
Дана таблица:
CREATE TABLE drafts (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
status TEXT NOT NULL
);
INSERT INTO drafts (title, status) VALUES ('plan', 'new');
INSERT INTO drafts (title, status) VALUES ('notes', 'new');
Поставьте status "done"
только для "plan", вставьте
новую строку "review" со
status "new" и выведите
COUNT(*) строк со status
"new".