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

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

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

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

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

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

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

Выведите всех пользователей. Для "bob" покажите "no order", если заказа нет. Используйте sql.NullString для названия справа.

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

CREATE TABLE students ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE courses ( id INTEGER PRIMARY KEY, title TEXT NOT NULL ); CREATE TABLE student_course ( student_id INTEGER NOT NULL, course_id INTEGER NOT NULL, FOREIGN KEY (student_id) REFERENCES students (id), FOREIGN KEY (course_id) REFERENCES courses (id) ); INSERT INTO students (name) VALUES ('ann'); INSERT INTO courses (title) VALUES ('go'); INSERT INTO courses (title) VALUES ('sql'); INSERT INTO student_course (student_id, course_id) VALUES (1, 1); INSERT INTO student_course (student_id, course_id) VALUES (1, 2);

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

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

CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE goods ( id INTEGER PRIMARY KEY, title TEXT NOT NULL ); CREATE TABLE orders ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, good_id INTEGER NOT NULL, FOREIGN KEY (user_id) REFERENCES users (id), FOREIGN KEY (good_id) REFERENCES goods (id) ); INSERT INTO users (name) VALUES ('ann'); INSERT INTO goods (title) VALUES ('pen'); INSERT INTO goods (title) VALUES ('book'); INSERT INTO orders (user_id, good_id) VALUES (1, 1); INSERT INTO orders (user_id, good_id) VALUES (1, 2);

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

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

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

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

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

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

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

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