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

Запись в базу в Rust

В этих задачах потренируем вставку, изменение и удаление. Схема и начальные строки заданы в блоке данных без готового текста команд записи.

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

let setup = r#" CREATE TABLE breeds ( id INTEGER PRIMARY KEY, title TEXT NOT NULL ); "#;

Вставьте "poodle" и "husky", затем выведите COUNT(*).

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

let setup = r#" 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 и выведите новое значение одной прочитанной строкой.

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

let setup = r#" 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(*).

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

let setup = r#" 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(*) после вставки.

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

let setup = r#" 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".

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

let setup = r#" 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".

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

let setup = r#" CREATE TABLE stock ( id INTEGER PRIMARY KEY, sku TEXT NOT NULL, qty INTEGER NOT NULL ); INSERT INTO stock (sku, qty) VALUES ('wire', 4); INSERT INTO stock (sku, qty) VALUES ('tape', 1); "#;

Увеличьте qty для "wire" на 2 и уменьшите для "tape" на 1. Выведите сумму qty по всей таблице.

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

let setup = r#" CREATE TABLE archive ( id INTEGER PRIMARY KEY, tag TEXT NOT NULL ); INSERT INTO archive (tag) VALUES ('old'); INSERT INTO archive (tag) VALUES ('tmp'); INSERT INTO archive (tag) VALUES ('old'); "#;

Удалите строки с tag "tmp", вставьте "new" и выведите COUNT(*).

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