Главная / Введение в модель данных SQL / База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20)

База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц:

AUTHORS
AUTHOR_ID : INTEGER
AUTHOR_NAME : VARCHAR (20)
AUTHOR_BDATE : DATE
AUTHOR_ADDRESS : VARCHAR (40)
AUTHOR_PICTURE : BLOB

AUTHORS-BOOKS
ISBN : VARCHAR (20)
AUTHOR_ID : INTEGER

BOOKS
ISBN : VARCHAR (20)
TITLE : VARCHAR (30)
PUB_ID : INTEGER
DATE_OF_AGREEMENT : DATE
AGREEMENT_DURAT : INTERVAL
DATE_OF_PUB : DATE
PRICE : MONEY
NUMBER_OF_PAGES : SMALLINT
COVER_PICTURE : BLOB
DESCR : CLOB

PUBLISHERS
PUB_ID : INTEGER
PUB_NAME : VARCHAR (20)
PUB_ADDRESS : VARCHAR (40)

Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS.

У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг.

Также будем использовать таблицы table1 (a1, a2, c1, c2) и table2 (b1, b2, c1, c2) со следующими телами:

table1

a1a2c1c2
5555
5586
5537
23NULL7
4NULLNULLNULL

table2

b1b2c1c2
5555
1256
3855
3855
8888
3NULLNULL5
3NULLNULL5

Требуется сформулировать запрос "Найти названия всех издательств, в которых было издано больше пяти книг Дейта". Какие из приведенных ниже формулировок являются правильными?

вопрос

Правильный ответ:

SELECT PUB_NAME FROM AUTHORS, AUTHORS-BOOKS, BOOKS, PUBLISHERS WHERE PUBLISHERS.PUB_ID = BOOKS.PUB_ID AND BOOKS.ISBN = AUTHORS-BOOKS.ISBN AND AUTHORS-BOOKS.AUTHOR_ID = AUTHORS.AUTHOR_ID AND AUTHOR_NAME = ‘Chris Date’ GROUP BY PUBLISHERS.PUB_ID HAVING COUNT (DISTINCT BOOKS.ISBN) > 5;
SELECT PUB_NAME FROM PUBLISHERS WHERE (SELECT COUNT (DISTINCT BOOKS.ISBN) FROM AUTHORS, AUTHORS-BOOKS, BOOKS WHERE PUBLISHERS.PUB_ID = BOOKS.PUB_ID AND BOOKS.ISBN = AUTHORS-BOOKS.ISBN AND AUTHORS-BOOKS.AUTHOR_ID = AUTHORS.AUTHOR_ID AND AUTHOR_NAME = ‘Chris Date’) > 5;
SELECT PUB_NAME FROM AUTHORS, AUTHORS-BOOKS, BOOKS, PUBLISHERS GROUP BY PUBLISHERS.PUB_ID, PUB_NAME, BOOKS.PUB_ID, BOOKS.ISBN, AUTHORS-BOOKS.ISBN, AUTHORS-BOOKS.AUTHOR_ID, AUTHORS.AUTHOR_ID, AUTHOR_NAME HAVING PUBLISHERS.PUB_ID = BOOKS.PUB_ID AND BOOKS.ISBN = AUTHORS-BOOKS.ISBN AND AUTHORS-BOOKS.AUTHOR_ID = AUTHORS.AUTHOR_ID AND AUTHOR_NAME = ‘Chris Date’ AND COUNT (DISTINCT BOOKS.ISBN) > 5;
Сложность вопроса
52
Сложность курса: Введение в модель данных SQL
81
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Гранд мерси за решениями по intiut'у.
07 июл 2020
Аноним
Зачёт всё. Бегу выпивать отмечать халяву с тестами интуит
26 июл 2018
Аноним
Экзамен прошёл на пять с минусом.
05 май 2018
Оставить комментарий
Другие ответы на вопросы из темы базы данных интуит.