SQL и БД: популярные вопросы на собеседовании
SQL и базы данных: вопросы и ответы. Раздел охватывает: базовые понятия БД и СУБД; DDL/DML/DCL/TCL; JOIN’ы и группировки; индексы и планы выполнения; нормализацию и связи; транзакции, блокировки и уровни изоляции (ACID); агрегации и оконные функции; CTE, подзапросы и оптимизацию; репликацию и шардинг.
Всего вопросов: 184
Junior
-
Какие типы СУБД вы знаете? Junior
-
В чем разница между SQL и MySQL? Junior
-
Что такое DDL (Data Definition Language)? Junior
-
Что такое DML (Data Manipulation Language)? Junior
-
Что такое DCL (Data Control Language)? Junior
-
Что такое TCL (Transaction Control Language)? Junior
-
Что такое нормализация данных? Junior
-
Что такое денормализация и зачем она применяется? Junior
-
Какие существуют типы отношений между таблицами? Junior
-
В чем разница между первичным и внешним ключом? Junior
-
Может ли таблица иметь более одного первичного ключа? Junior
-
Может ли таблица иметь несколько внешних ключей? Junior
-
Что такое ограничение (constraint) в базе данных? Junior
-
Приведите примеры ограничений в SQL. Junior
-
Для чего используется ограничение NOT NULL? Junior
-
Для чего используется ограничение UNIQUE? Junior
-
Для чего используется ограничение CHECK? Junior
-
Для чего используется ограничение DEFAULT? Junior
-
Что такое индекс в базе данных? Junior
-
Как индексы влияют на производительность SELECT запросов? Junior
-
Как наличие индексов влияет на скорость операций INSERT/UPDATE/DELETE? Junior
-
В чем разница между TRUNCATE и DROP? Junior
-
В чем разница между INNER JOIN, LEFT JOIN и RIGHT JOIN? Junior
-
Что такое UNION и чем отличается UNION от UNION ALL? Junior
-
Для использования UNION какие требования к результирующим наборам данных? Junior
-
Для чего используется ключевое слово DISTINCT? Junior
-
Что делает оператор ORDER BY? Junior
-
Как работает оператор LIKE? Какие существуют wildcard-символы? Junior
-
Назовите три агрегатные функции SQL и кратко опишите их. Junior
-
Являются ли индексы и ключи одним и тем же? (ключ vs индекс) Junior
-
Как обеспечить уникальность записей в таблице? Junior
-
Чем база данных отличается от электронной таблицы (например, Excel)? Junior
-
Что такое псевдоним (alias) таблицы или столбца в SQL? Junior
-
Как ограничить количество строк, возвращаемых запросом? Junior
-
Какой порядок сортировки используется по умолчанию в ORDER BY? Junior
-
В чем разница между COUNT(*) и COUNT(1)? Junior
-
Как проверить, является ли значение NULL (пустым) в SQL? Junior
-
В чем разница между базой данных и СУБД? Junior
-
Если одна таблица содержит m записей, а другая n записей, сколько строк вернёт их CROSS JOIN? Junior
Middle
-
В чем разница между WHERE и HAVING? Middle
-
Что такое представление (view) в базе данных? Middle
-
Что такое хранимая процедура и для чего она используется? Middle
-
Что такое CTE (Common Table Expression)? Middle
-
В чем разница между кластеризованным и некластеризованным индексом? Middle
-
Что такое составной (комбинированный) индекс? Middle
-
Что такое план выполнения SQL-запроса и зачем он нужен? Middle
-
Что такое первая нормальная форма (1NF)? Middle
-
Что такое вторая нормальная форма (2NF)? Middle
-
Что такое триггер в базе данных и для чего он используется? Middle
-
Что такое курсор в SQL и когда его целесообразно использовать? Middle
-
Как реализовать связь "многие ко многим" между двумя таблицами? Middle
-
В чем разница между COUNT(*) и COUNT(column)? Middle
-
В чем разница между DISTINCT и GROUP BY при получении уникальных значений? Middle
-
Для чего используются команды GRANT и REVOKE? Middle
-
Какие требования должны выполняться для использования UNION? Middle
-
В чем разница между функциями RANK() и DENSE_RANK()? Middle
-
Как найти вторую по величине (второй максимум) значение, например зарплату, в таблице? Middle
-
Как найти сотрудников с зарплатой выше средней по своему отделу? Middle
-
Как выбрать записи из одной таблицы, не имеющие соответствующих записей в другой? Middle
-
Как найти дубликаты записей в таблице по определенному полю? Middle
-
Как удалить дублирующиеся строки из таблицы, оставив только уникальные записи? Middle
-
Как вывести топ-3 самых высоких значений (например, зарплат)? Middle
-
Как получить количество записей в каждой категории (группе)? Middle
-
Для чего используется функция ROW_NUMBER()? Middle
-
Для чего применяется функция COALESCE? Middle
-
Для чего используется оператор CASE в SQL? Middle
-
Как выполнить JOIN более чем двух таблиц в одном запросе? Middle
-
Можно ли использовать подзапрос в секции FROM? Если да, для чего это используется? Middle
-
Как найти записи, присутствующие в обеих (двух) таблицах? Middle
-
Как вычислить накопительный итог (running total) по значениям столбца? Middle
-
Как вычислить процент (долю) каждого значения от общей суммы? Middle
-
Как получить текущую дату и время с помощью SQL? Middle
-
Чем отличаются типы числовых данных DECIMAL (NUMERIC) и FLOAT (REAL)? Middle
-
Какой тип данных используют для хранения больших двоичных объектов (BLOB)? Middle
-
Как конкатенировать (соединить) строки в SQL? Middle
-
Как преобразовать строку к верхнему/нижнему регистру в SQL? Middle
-
Как удалить пробелы в начале или конце строки в SQL? Middle
-
Как определить, какой менеджер имеет самое большое количество подчинённых? Middle
-
Что такое скалярная функция в SQL? Middle
-
Как обновить данные в одной таблице на основе данных из другой таблицы? Middle
-
Чем отличается COUNT(*) от COUNT(DISTINCT столбец)? Middle
-
Как получить n-ый по величине элемент из набора значений? Middle
-
Зачем нужны хранимые процедуры? Каковы их преимущества? Middle
-
Создается ли индекс автоматически при объявлении внешнего ключа? Middle
-
Что произойдет при попытке удалить таблицу, на которую ссылаются внешние ключи? Middle
-
Какие действия могут быть заданы для внешнего ключа при удалении (CASCADE, SET NULL и др.)? Middle
-
Как можно реализовать отношение один-к-одному между двумя таблицами? Middle
-
Какие существуют операции над множествами (set operations) в SQL? Middle
-
Как найти пары записей (например, сотрудников) с одинаковым значением в определённом поле (например, с одинаковой зарплатой)? Middle
-
Как сгруппировать данные по кварталам даты (например, вычислить квартальную выручку)? Middle
Senior
-
Что такое материализованное представление? Senior
-
Что такое репликация баз данных и для чего она нужна? Senior
-
Какие существуют стратегии резервного копирования баз данных? Senior
-
Что такое партиционирование таблиц и зачем его применять? Senior
-
В чем разница между хранимой процедурой и функцией? Senior
-
Как предотвратить ситуацию deadlock в базе данных? Senior
-
Что такое "грязное" чтение (dirty read)? Senior
-
Что такое неповторяющееся чтение (non-repeatable read)? Senior
-
Что такое SAVEPOINT и как он используется? Senior
-
Что делает команда COMMIT? Senior
-
Что делает команда ROLLBACK? Senior
-
Что такое журнал транзакций (transaction log) и для чего он нужен? Senior
-
Что такое подготовленный запрос (prepared statement) и зачем он используется? Senior
-
Может ли столбец с UNIQUE ограничением содержать несколько NULL значений? Senior
-
Какие структуры данных используют индексы в реляционных СУБД? Senior
-
В чем разница между условием в секции ON и условием в WHERE при OUTER JOIN? Senior
-
Что такое последовательность (SEQUENCE) в базе данных? Senior
-
Как можно реализовать связь "многие ко многим" и чем она отличается от двух связей один-ко-многим? Senior
-
Что такое PIVOT (ротация таблицы) и где он применяется? Senior
-
Как получить 5 последних записей для каждой группы (например, 5 последних заказов каждого клиента)? Senior
-
Как определить максимальную глубину иерархии, например самую длинную цепочку "начальник-подчинённый" в таблице сотрудников? Senior
-
Как найти пользователей, которые приобрели все товары в заданной категории? Senior
-
В чем проблема использования оператора NOT IN с подзапросом, если подзапрос может возвращать NULL? Senior
-
Как найти самый длинный непрерывный период (последовательность) дат или записей? Senior
-
В каких случаях индекс может не использоваться оптимизатором запросов? Senior
-
Каковы потенциальные недостатки наличия слишком большого количества индексов в таблице? Senior