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 Р
Полка (Шифр. Название, Место нахождения)
Расстановка (Номер_книги. Номер автора, Шифр полки, Количество)
каком количестве экземпляров. Реализовать следующие запросы к БД:
стоит в
вывести названия полок, на которых стоят книги, изданные в указанном году.
вывести ФИО авторов, книг которых нет на указанной полке
вывести перечень издательств, книги которых есть библиотеке.