У некоторых HR есть практика задавать вопросы прямо при телефонном звонке. Сидишь дома, а тут неожиданно звонит HR и задает тебе вопрос по SQL. Некоторые спрашивают про SQL в тестовом задании, а некоторые на техническом интервью.
Стоит отметить, что ответы предоставлены работодателями. Если вы не согласны с каким-то из ответов - пишите в комментариях свой вариант.
Ответ:
INNER, JOIN LEFT, JOIN RIGHT, JOIN FULL, JOIN CROSS
Чем NULL отличается от 0
Ответ:
0 - это число.
NULL - это не число, а также NULL не является значением пустой строки. NULL используется для указания того, что данные отсутствуют, неизвестны, неприменимы. NULL не равен ничему, даже другому NULL.
Какие параметры используются в конструкции order by?
Ответ:
ASC и DESC
Какой оператор имеет больший приоритет AND или OR (если они используются совместно)?
Ответ:
AND имеет больший приоритет, нежели OR
Какие операторы обязательны при выборке данных с соединением таблиц (не учитывая cartesian product)?
Ответ:
SELECT, JOIN, FROM
Какие из операторов SQL могут быть использованы для выполнения CRUD (Create, Read, Update, Delete) операций над данными?
Ответ:
INSERT, DELETE, SELECT, UPDATE
С помощью какого запроса можно удалить все записи из таблицы?
Ответ:
DELETE FROM
Для чего нужен оператор UNION?
Ответ:
Для объединения двух таблиц, при условии что каждая имеет одинаковое количество столбцов, столбцы имеют схожие типы данных, столбцы располагаются в том же порядке.
Какой оператор используется для изменения объектов базы данных?
Ответ:
ALTER
Что такое оконная функция? И в чем отличие от функции агрегации с группировкой?
Ответ:
Оконная функция в SQL - функция, которая работает с выделенным набором строк (окном, партицией) и выполняет вычисление для этого набора строк в отдельном столбце.
При использовании агрегирующих функций предложение GROUP BY сокращает количество строк в запросе с помощью их группировки. При использовании оконных функций количество строк в запросе не уменьшается по сравнению с исходной таблицей.
Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а Синтаксис name имеет тип varchar(40). Какие из следующих запросов корректно отработают:
- INSERT INTO publisher (name) VALUES ('OREILLY');
- INSERT INTO publisher (name) VALUES ('О Reilly');
- INSERT INTO publisher (name) VALUES ('O'Reilly');
- INSERT INTO publisher (name) VALUES ('O-Reilly');
Ответ:
1, 2, 4
С помощью какого update-запроса можно обновить значения более чем одной колонки?
- UPDATE table_name SET col1_name = 'col1val', col2_name = 'col2val';
- UPDATE table_name SET col1_name = 'col1val' AND SET col2_name = 'col2val';
- UPDATE table_name SET col1_name = 'col1val' SET col2_name = 'col2val';
- Одним запросом можно обновить не более одной колонки
Ответ:
1