Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужна помощь, решите билет к зачёту

Никита Малинин Ученик (99), на голосовании 10 месяцев назад
Создать базу данных «Библиотека», содержащую следующие сущности. Книга (Номер, Название. Издательство, Год издания, Количество страниц) Автор (Номер, ФИО, Город проживания)
Полка (Шифр. Название, Место нахождения)
Расстановка (Номер_книги. Номер автора, Шифр полки, Количество)
каком количестве экземпляров. Реализовать следующие запросы к БД:
стоит в

вывести названия полок, на которых стоят книги, изданные в указанном году.
вывести ФИО авторов, книг которых нет на указанной полке
вывести перечень издательств, книги которых есть библиотеке.
Голосование за лучший ответ
Deishu Мастер (1953) 11 месяцев назад
1)
CREATE TABLE Книга (
Номер INT PRIMARY KEY,
Название VARCHAR(100),
Издательство VARCHAR(100),
Год_издания INT,
Количество_страниц INT
);

CREATE TABLE Автор (
Номер INT PRIMARY KEY,
ФИО VARCHAR(100),
Город_проживания VARCHAR(100)
);

CREATE TABLE Полка (
Шифр INT PRIMARY KEY,
Название VARCHAR(100),
Место_нахождения VARCHAR(100)
);

CREATE TABLE Расстановка (
Номер_книги INT,
Номер_автора INT,
Шифр_полки INT,
Количество INT,
FOREIGN KEY (Номер_книги) REFERENCES Книга(Номер),
FOREIGN KEY (Номер_автора) REFERENCES Автор(Номер),
FOREIGN KEY (Шифр_полки) REFERENCES Полка(Шифр)
);

2)
INSERT INTO Книга (Номер, Название, Издательство, Год_издания, Количество_страниц)
VALUES
(1, 'Книга 1', 'Издательство 1', 2000, 100),
(2, 'Книга 2', 'Издательство 2', 2005, 150),
(3, 'Книга 3', 'Издательство 3', 2010, 200);

INSERT INTO Автор (Номер, ФИО, Город_проживания)
VALUES
(1, 'Автор 1', 'Город 1'),
(2, 'Автор 2', 'Город 2'),
(3, 'Автор 3', 'Город 3');

INSERT INTO Полка (Шифр, Название, Место_нахождения)
VALUES
(1, 'Полка 1', 'Место 1'),
(2, 'Полка 2', 'Место 2'),
(3, 'Полка 3', 'Место 3');

INSERT INTO Расстановка (Номер_книги, Номер_автора, Шифр_полки, Количество)
VALUES
(1, 1, 1, 5),
(2, 2, 2, 10),
(3, 3, 3, 3);

3)
SELECT Полка.Название
FROM Полка
INNER JOIN Расстановка ON Полка.Шифр = Расстановка.Шифр_полки
INNER JOIN Книга ON Расстановка.Номер_книги = Книга.Номер
WHERE Книга.Год_издания = указанный_год

4)
SELECT Автор.ФИО
FROM Автор
LEFT JOIN Расстановка ON Автор.Номер = Расстановка.Номер_автора
WHERE Расстановка.Шифр_полки IS NULL AND Р
Никита МалининУченик (99) 11 месяцев назад
благодарен от всей души
Похожие вопросы