Вопросы и задачи с собеседования по позицию среднего middle разработчика (web, PHP, но может быть и другое)

SQL

  1. Задача 1: В некоторой СУБД есть таблица persons, в которой есть поля:
    1. id
    2. name -- имя сотрудника
    3. salary -- его зарплата
    4. department_id --id отдела, в котором работает данный сотрудник.

    Напишите SQL запросы:

    1. Который выведет список людей, которые получают максимальную зарплату в своём отделе.
    2. Который выведет список отделов (их id), в которых работают больше чем 5 человек.
  2. Задача 2: Есть книги и авторы, одну книгу могут писать несколько авторов и, конечно же, один автор может написать много книг (промежуточный вопрос: как организовать такую связь? вы тут же отвечаете: ""это "многие ко многим", потому через 3 таблицы"").

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

    (Смотрите решение, после того, как попробуете решить самостоятельно).

  3. У вас есть таблица, в которой прорежены id-шники (главные ключи), например, они идут в таком порядке (начало ряда):
    5, 7, 21, 35, 41, 42, 43, 56.....и т.д.
    

    Вопрос: как выбрать первые 70 элементов.
    (задача простая)