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

Практика на связи таблиц в Rust

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

CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE post ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, title TEXT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(id) ); INSERT INTO user (name) VALUES ('ann'); INSERT INTO user (name) VALUES ('bob'); INSERT INTO post (user_id, title) VALUES (1, 'pen'); INSERT INTO post (user_id, title) VALUES (1, 'book');

Напишите программу, которая выведет имя пользователя и заголовок каждого поста в одной строке результата.

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

CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE post ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, title TEXT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(id) ); INSERT INTO user (name) VALUES ('ann'); INSERT INTO user (name) VALUES ('bob'); INSERT INTO post (user_id, title) VALUES (1, 'pen');

Выведите всех пользователей. Для "bob" покажите "no post", если поста нет. Используйте Option<String> для заголовка справа.

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

CREATE TABLE post ( id INTEGER PRIMARY KEY, title TEXT NOT NULL ); CREATE TABLE tag ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE post_tag ( post_id INTEGER NOT NULL, tag_id INTEGER NOT NULL, FOREIGN KEY (post_id) REFERENCES post(id), FOREIGN KEY (tag_id) REFERENCES tag(id) ); INSERT INTO post (title) VALUES ('hello'); INSERT INTO tag (name) VALUES ('news'); INSERT INTO tag (name) VALUES ('draft'); INSERT INTO post_tag (post_id, tag_id) VALUES (1, 1); INSERT INTO post_tag (post_id, tag_id) VALUES (1, 2);

Выведите заголовок поста и имя каждой его метки, проходя через таблицу связи.

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

CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE post ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, title TEXT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(id) ); CREATE TABLE tag ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE post_tag ( post_id INTEGER NOT NULL, tag_id INTEGER NOT NULL, FOREIGN KEY (post_id) REFERENCES post(id), FOREIGN KEY (tag_id) REFERENCES tag(id) ); INSERT INTO user (name) VALUES ('ann'); INSERT INTO post (user_id, title) VALUES (1, 'note'); INSERT INTO tag (name) VALUES ('news'); INSERT INTO tag (name) VALUES ('draft'); INSERT INTO post_tag (post_id, tag_id) VALUES (1, 1); INSERT INTO post_tag (post_id, tag_id) VALUES (1, 2);

Выведите имя пользователя, заголовок поста и имя метки для каждой строки связи post_tag.

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

CREATE TABLE warehouse ( id INTEGER PRIMARY KEY, code TEXT NOT NULL ); CREATE TABLE bin ( id INTEGER PRIMARY KEY, warehouse_id INTEGER NOT NULL, label TEXT NOT NULL, FOREIGN KEY (warehouse_id) REFERENCES warehouse(id) );

Включите проверку внешних ключей, добавьте склад "W1" и ячейку "A-01" с корректным warehouse_id. Затем попробуйте ячейку с warehouse_id 99 и выведите "rejected" при ошибке.

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

CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE post ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, title TEXT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(id) ); INSERT INTO user (name) VALUES ('ann'); INSERT INTO user (name) VALUES ('bob'); INSERT INTO post (user_id, title) VALUES (1, 'pen'); INSERT INTO post (user_id, title) VALUES (2, 'lamp');

Выведите только посты пользователя "ann" вместе с ее именем. Заголовки постов других пользователей не должны попасть в результат.

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