Подборка вопросов и задач по 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