Подборка вопросов и задач по SQL на собеседовании с ответами
Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а Синтаксис name имеет тип varchar(40). Какие из следующих запросов корректно отработают:
1 INSERT INTO publisher (name) VALUES ('OREILLY');
2 INSERT INTO publisher (name) VALUES ('О Reilly');
3 INSERT INTO publisher (name) VALUES ('O'Reilly');
4 INSERT INTO publisher (name) VALUES ('O-Reilly');
Ответ:
1, 2, 4
Результат объединения запросов выведет все значения из таблицы tab?
SELECT * FROM tab WHERE b = 'a'
UNION
SELECT * FROMtabWHEREb <> 'a'
1 Да
2 Нет
Ответ:
2
С помощью какого update-запроса можно обновить значения более чем одной колонки?
1 UPDATE table_name SET col1_name = 'col1val', col2_name = 'col2val';
2 UPDATE table_name SET col1_name = 'col1val' AND SET col2_name = 'col2val';
3 UPDATE table_name SET col1_name = 'col1val' SET col2_name = 'col2val';
4 Одним запросом можно обновить не более одной колонки
Ответ:
1
Какая ошибка в этом запросе?
UPDATE books SET sales_1999 >
(SELECT SUM(qty * price)
FROM sales
WHERE sales.book_id = books.id
AND sales.date BETWEEN '01/01/1999' AND '12/31/1999')
1 Вы не можете использовать арифметические операторы для функции SUM() (например SUM(qty * price))
2 Следует использовать знак (=) для подзапроса
3 Вы не можете использовать подзапрос для SET внутри оператора UPDATE
4 Ключевое слово BETWEEN нельзя использовать для символов или дат
Ответ:
2
#SQL
👉 @database_info
Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а Синтаксис name имеет тип varchar(40). Какие из следующих запросов корректно отработают:
1 INSERT INTO publisher (name) VALUES ('OREILLY');
2 INSERT INTO publisher (name) VALUES ('О Reilly');
3 INSERT INTO publisher (name) VALUES ('O'Reilly');
4 INSERT INTO publisher (name) VALUES ('O-Reilly');
Ответ:
1, 2, 4
Результат объединения запросов выведет все значения из таблицы tab?
SELECT * FROM tab WHERE b = 'a'
UNION
SELECT * FROMtabWHEREb <> 'a'
1 Да
2 Нет
Ответ:
2
С помощью какого update-запроса можно обновить значения более чем одной колонки?
1 UPDATE table_name SET col1_name = 'col1val', col2_name = 'col2val';
2 UPDATE table_name SET col1_name = 'col1val' AND SET col2_name = 'col2val';
3 UPDATE table_name SET col1_name = 'col1val' SET col2_name = 'col2val';
4 Одним запросом можно обновить не более одной колонки
Ответ:
1
Какая ошибка в этом запросе?
UPDATE books SET sales_1999 >
(SELECT SUM(qty * price)
FROM sales
WHERE sales.book_id = books.id
AND sales.date BETWEEN '01/01/1999' AND '12/31/1999')
1 Вы не можете использовать арифметические операторы для функции SUM() (например SUM(qty * price))
2 Следует использовать знак (=) для подзапроса
3 Вы не можете использовать подзапрос для SET внутри оператора UPDATE
4 Ключевое слово BETWEEN нельзя использовать для символов или дат
Ответ:
2
#SQL
👉 @database_info