Меню Закрыть

Sql вопросы на собеседовании

Содержание

Главное меню » Базы данных » Учебное пособие по SQL » 14 наиболее часто используемых запросов SQL на собеседовании (вопрос/ответ)

Эти запросы проверят ваши SQL навыки на работу, как внутреннее и внешнее соединение, фильтрация записей с помощью условий WHERE и HAVING, группировка записей с помощью предложения GROUP BY, вычисление суммы, среднего и подсчета записей с помощью совокупной функции как AVG(), SUM () и COUNT (), поиск записей с помощью символов подстановки в операторе LIKE, поиска записей в связанном с использованием BETWEEN и IN, запросы DATE и TIME и т.д. Если вы столкнулись с каким – либо интересным запросом в SQL или у вас есть какие – либо проблемы и поиск решения, вы можете разместить его здесь на благо каждого.

SQL Query. Вопросы и ответы

Вопрос 1: SQL-запрос, чтобы найти вторую самую высокую зарплату работника

Ответ: Есть много способов найти вторую самую высокую зарплату работника в SQL, вы можете использовать либо в SQL объединение или подзапрос, чтобы решить эту проблему. Вот SQL-запрос с использованием подзапроса:

См как найти вторую самую высокую зарплату в SQL с большим количеством способов решения этой проблемы.


Вопрос 2: SQL-запрос, чтобы найти максимальную зарплату от каждого отдела.

Ответ: Вы можете найти максимальную зарплату для каждого отдела, группируя все записи по DeptId, а затем с помощью функции MAX(), чтобы вычислить максимальную зарплату в каждой группе или каждого отдела.

Эти вопросы становятся более интересными, если Интервьюер попросит вас напечатать название отдела вместо отдела ID, в этом случае, вам нужно соединить таблицу Employee с Department с использованием внешнего ключа DeptID, убедитесь, что вы используете LEFT or RIGHT OUTER JOIN включая отделов без каких – либо сотрудников. Вот запрос

В этом запросе мы использовали RIGHT OUTER JOIN, потому что нам нужно название отдела из таблицы Department, который находится на правой стороне JOIN, даже если нет никакого упоминания о dept_id в таблице сотрудников.

Вопрос 3: Написать SQL – запрос для отображения текущей даты.

Ответ: SQL имеет встроенную функцию под названием GetDate(), которая возвращает текущую временную метку. Это будет работать в Microsoft SQL Server, другие производители, такие как Oracle и MySQL также имеет эквивалентные функции.


Вопрос 4: Напишите SQL запрос, чтобы проверить дату в передаваемом запросе, является ли дата данного формата или нет .

Ответ: SQL имеет функцию IsDate(), которая используется для проверки переданное значение, является дата или не указанного формата, он возвращает 1 (истина) или 0 (ложь), соответственно. Помните IsDate() является функцией MSSQL и он может не работать на Oracle, MySQL или любой другой базе данных, но не было бы что – то подобное.

Она возвращает 0, потому что прошло дата не в правильном формате.


Вопрос 5: Напишите SQL запрос, чтобы напечатать имя отдельного работника у которого поле DOB составляет от 01/02/1965 до 31/11/1970.

Ответ: Этот SQL-запрос является сложным, но вы можете использовать BETWEEN, чтобы получить все записи, у которых дата выпадает между двумя датами.

Вопрос 6: написать SQL запрос, где найти количество сотрудников в зависимости от пола , чье поле DOB между 01/02/1965 до 31/11/1970.

Вопрос 7: Напишите SQL запрос, чтобы найти сотрудника, чья зарплата равна или превышает 20000.

Вопрос 8: Напишите SQL запрос, чтобы найти имя сотрудника, чье имя начинается с ‘M’

Вопрос 9: Найти все записи о сотрудниках, содержащие слово “Роман”, независимо от того, был ли он, как РОМАН, Роман, или роман.

Вопрос 10: Напишите SQL запрос, чтобы найти год от даты.

Ответ: Вот как вы можете найти год от даты в SQL Server 2008

Вопрос 11: Написать SQL – запрос для поиска дубликатов строк в базе данных? а затем написать SQL запрос, чтобы удалить их?
Ответ: Вы можете использовать следующий запрос для выбора различных записей:

Вопрос 12: Существует таблица, которая содержит два столбца Student и Marks, вам нужно найти всех студентов, чьи оценки являются больше, чем средние оценки, т.е. список студентов выше среднего.

Ответ: Этот запрос можно записать с помощью подзапросов, как показано ниже:

Читайте также:  Драйвера для ati radeon hd 4800 series


Вопрос 13: Как вы находите всех сотрудников, которые являются также менеджерами?
Вы дали стандартную таблицу сотрудников с дополнительной колонкой mgr_id , которая содержит идентификатор сотрудника менеджера.

Ответ: Вы должны знать о автообъединение, чтобы решить эту проблему. В автообъединение, вы можете присоединить два экземпляра одной и той же таблицы, чтобы выяснить дополнительные подробности, как показано ниже

Запрос покажет имя сотрудника и имя менеджера в два столбца, например

Один из последующих изменит этот запрос, чтобы включать в себя сотрудников, которые не имеют статус менеджера. Для того, чтобы решить, что, вместо этого использовать inner join, просто используйте left outer join, он также будет включать сотрудников без менеджеров.

Вопрос 14: У вас есть композитный индекс из трех колонок, как вы обеспечиваете значение двух столбцов в WHERE на выборку? Будет ли индекс использоваться для этой операции?

Например, если индекс находится на EmpId, EmpFirstName и EmpSecondName и вы пишете запрос типа

Если данные в две колонки являются вторичными индексами столбца, то индекс не будет ссылаться, но если данные 2 колонок содержат первичный индекс (первый столбец при создании индекса), то индекс будет ссылаться. В этом случае индекс будет использоваться, поскольку EmpId и EmpFirstName являются первичные столбцы.

Надеюсь, что эта статья поможет вам принять быструю практику всякий раз, когда вы собираетесь присутствовать на любом собеседовании и нет так много времени на чтение книг.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Техническое собеседование может грозить не только общением по теме вакантной должности. Подборка занятных вопросов по SQL для подготовки.

Дублирование записей с одним полем:

Дублирование записей с несколькими полями:

Какой будет результат выполнения запроса:

Объясните свой ответ.

Результат будет выглядеть следующим образом:

Оператор EXISTS – это отвлекающий маневр. Тут всегда будет true, т. к. ID не является членом dbo.docs. Таким образом, ID будет ссылаться на таблицу envelope, сравнивая себя с самим собой.

Неверное выражение BillingYear в условии WHERE. Несмотря на то, что он определен как алиас в выборке SELECT перед WHERE, логический порядок обработки условий отличается. Программисты привыкли к тому, что операторы выполняются сверху вниз или слева направо, но в T-SQL это происходит в другом порядке.

Правильный запрос будет выглядеть так:

Напишите один запрос для вычисления суммы всех положительных и отрицательных значений x.

1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1

Написать запрос, чтобы установить 2 вместо и установить 3 вместо 1.

В таблице Emp 10 записей, а в Dept – 5. Сколько строк будет отображаться в результате следующего SQL-запроса:

Объясните свой ответ.

Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.

Ключевое место – AND a!=X. Это дает вам все плюшки UNION DISTINCT, избегая при этом просадки производительности.

NVARCHAR способен хранить значения в формате Unicode – каждый символ занимает 2 байта, а кодировка занимает 65 536 символов.

VARCHAR хранит значения в формате SACII – каждый символ занимает байт, а кодировка занимает 256 символов.

План запросов – это "карта", отображающая графически или в виде текста способы получения данных, последовательность операций, сортировки, группировки и т. д. Эти планы очень полезны разработчику для понимания и анализа характеристик производительности запроса или хранимой процедуры.

Во многих системах SQL план выполнения можно получить с помощью ключевого слова EXPLAIN. В Microsoft SQL Server Query Analyzer имеет в раскрывающемся меню параметр “Show Execution Plan”. Если его активировать, то при выполнении запроса план будет отображаться в отдельном окне.

Это один из распространенных вопросов по SQL на собеседованиях.

Выбор четных записей:

Выбор нечетных записей:

Как NVL(exp1, exp2), так и NVL2(exp1, exp2, exp3) исследуют значение exp1 на предмет NULL. Функция NVL заменяет значение, если встречается NULL. Функция NVL2 проверяет значение exp1. Если оно не NULL, то возвращается exp2, иначе – exp3.

Важен. Когда строится составной индекс, сначала индексируется первый столбец, а потом строятся индексы других столбцов, на основании главного (первого).

Однорядные функции одновременно работают только с одной строкой, а многорядные функции – с данными из нескольких строк.

Читайте также:  Как посмотреть сообщения в облаке

Команда GROUP BY объединяет все записи, имеющие одинаковые значения в определенном поле или любой группе полей.

Если в запросе не используется GROUP BY, то условия WHERE и HAVING эквивалентны.

Но при использовании GROUP BY:

  • Условие HAVING используется для фильтрации значений из группы (т. е. для проверки условий после выполнения агрегации в группы).
  • Условие WHERE используется для фильтрации записей из результата до срабатывания какой-либо группировки.

Этот запрос вернет 10 записей, т. к. TRUNCATE выполняется в транзакции.

Да, можно. Например, так:

Это еще один из популярных вопросов по SQL.

IN:

  • Работает результирующим набором.
  • Не применяется во вложенных запросах.
  • Сравнивает все значения в списке результатов
  • Имеет сравнительно низкую производительность при работе с большими результатами и подзапросами.

EXISTS:

  • Работает с виртуальными таблицами.
  • Используется со связанными запросами.
  • Выводит результаты сравнения, если true.
  • Обладает высокой производительностью, что облегчает обработку больших подзапросов.
Мы рассмотрели основные из распространенных вопросов по SQL.

Среди них встречаются не совсем понятные и очевидные, но это делает их более интересными. Тренируйтесь, пробуйте, читайте и у вас получится пройти собеседование на должность вашей мечты.

Мы что-то упустили? Напишите нам о каверзных вопросах по SQL, которые вам встречались.

Коллеги, добрый день. Сегодня мне бы хотелось обсудить с вами вопросы, которые кажутся для меня наиболее интересными для обсуждения с кандидатом на позицию Администратор MS SQL Server. Раз тема называется «Топ 10», то я выбрал для вас 10 наиболее интересных вопросов в порядке возрастания сложности. Как бонус ниже «Топ 10» будут приведены дополнительные вопросы, которые так же могут быть интересными.

Топ 10 вопросов для собеседования на позицию Администратор MS SQL Server:

1. Расскажите о вашем опыте работы и какие задачи выполняли лично?

2. Назовите основной инструмент управления Microsoft SQL Server?

3. Какие средства мониторинга и поиска узких мест MS SQL Server вы знаете?

4. Какие виды backup существуют и чем они отличаются?

5. Какие три операции необходимо регулярно выполнять с БД, чтобы поддерживать её работоспособность на должном уровне?

6. Каковы плюсы и минусы использования индексов?

7. Что такое «join»?

8. Что такое триггер?

9. Знаете ли вы что такое DMV? Для чего их можно использовать?

10. Какие способы обеспечения отказоустойчивости вы знаете?

Примерно такие бы вопросы я задал человеку, претендующему на данную вакансию. Как многие уже наверное знают, собеседование это гораздо больше чем вопросы по технологии, важно понять что за человек сидит перед тобой и личные качества человека имеют не последнюю роль. Как и обещал вот дополнительные, интересные вопросы для собеседования.

Дополнительные вопросы:

1. Очень интересный и очень простой вопрос для тех, кто понимает работу SQL Server звучит следующим образом — «В каких случаях запрос select * from table where >

2. Что такое журнал транзакций?

3. Отличие функций от хранимых процедур

4. Какая разница между «where» и «having» выражениями?

5. Почему выражения «group by» или «order by» дорогие для выполнения (снижают производительность)?

6. Какие манипуляции необходимо выполнить, чтобы ускорить работу БД и запросов?

7. Что такое нормализация и денормализация? Зачем используется денормализация?

8. Что такое покрывающие индексы?

9. Какие службы Microsoft SQL Server вы знаете и для чего они нужны?

10. Что такое репликация? Какие виды репликации Вы знаете? Чем они отличаются?

11. Без чего нельзя добавить таблицу в репликацию?

12. Какая разница между varchar и nvarchar

Вопросы от опытных администраторам вам

1. Как вы изучаете новые вещи?

  • Если вы не развиваетесь, то это существенно уменьшает ваши шансы остаться в профессии

2. Я менеджер, а вы администратор MS SQL Server, объясните мне почему мы не должны перенести проекты на Oracle или MySQL?

  • Очень желательно если вы разбираетесь в конкурентах и знаете их слабые и ваши сильные стороны

3. Менеджеру нужен новый экземпляр SQL Server, что вы у него спросите?

  • Здесь нет однозначного ответа. Кто-то хочется услышать про возможность виртуализации, критичность и редакцию SQL Server, кто-то про Collation, требования к самому серверу или размер данных

4. Напишите скрипт, который реализует следующую логику: «Напечатайте числа от 1 до 100, для чисел кратных трем, выведите «Три» вместо числа,для кратных пяти — «Пять». Для чисел, кратных как трем так и пяти выведите «ТриПять».

  • Достаточно распространённый вопрос за границей, его можно решить разными способами.

5. В каких случаях и почему некластерный индекс может быть быстрее кластерного?

Читайте также:  Как настроить микрофон на ноутбуке виндовс 7

6. Что делать, если диск с tempdb пропал. Как запустить SQL Server?

А какие вопросы кажутся важными вам? Пишите в комментариях, почту ([email protected]) и вконтакте (https://vk.com/sqlcom).

3 комментария на «Топ 10 вопросов для собеседования на позицию Администратор MS SQL Server»

Добрый день!
А можно-ли получить правильные ответы? 🙂

Извиняюсь за долгий ответ.
1..Расскажите о вашем опыте работы и какие задачи выполняли лично?

Конечно, здесь всем хочется услышать максимально впечатляющие результаты. Крайне рекомендую заранее отрепетировать ответ на данный вопрос, чтобы произвести впечатление. Использовать свой или чужой опыт, остается на ваше усмотрение.

2. Назовите основной инструмент управления Microsoft SQL Server?

Sql Server Management Studio

3. Какие средства мониторинга и поиска узких мест MS SQL Server вы знаете?

Sql profiler, Performance Monitor, Waits and Latch (dmv), Top expensive queries (dmv), Data collector. Можно добавить любые не штатные средства мониторинга (scom,zabbix и др. специализированные продукты)

4. Какие виды backup существуют и чем они отличаются?

Полный (Full), разностный иначе дифференциальный (Diff) и лога (Log). Более детально рекомендую изучить самостоятельно, каждый администратор должен знать данный вопрос досконально.

5. Какие три операции необходимо регулярно выполнять с БД, чтобы поддерживать её работоспособность на должном уровне?

Обновление индексов, статистики и проверка целостности бд (check db)

6. Каковы плюсы и минусы использования индексов?

Ускоряют получение данных, замедляют обновление/вставку

7. Что такое «join»?

Способ объединения таблиц. Могут спросить какие бывают. Это Inner join, left join, right join, full join, cross join. Описывать каждый из них — отдельный разговор

8. Что такое триггер?

Реакция/действия на изменение/добавление/удаление данных в таблицах

9. Знаете ли вы что такое DMV? Для чего их можно использовать?

Database Management View, представления для получения разнообразной информации о состоянии sql server (подключения, ожидания, latch, использование реcурсов и др)

10. Какие способы обеспечения отказоустойчивости вы знаете?

Mirroring, Log Shipping, Failover Cluster, Alwayson

1. Очень интересный и очень простой вопрос для тех, кто понимает работу SQL Server звучит следующим образом — «В каких случаях запрос select * from table where >

2. Что такое журнал транзакций?

Каждая база данных SQL Server имеет журнал транзакций, в котором фиксируются все изменения данных, произведенные в каждой из транзакций.
Журнал транзакций — это важная составляющая базы данных. Если система даст сбой, этот журнал поможет вам вернуть базу данных в согласованное состояние. (MSDN)

3. Отличие функций от хранимых процедур

В отличие от функций, хранимые процедуры не возвращают значения вместо своих имён и не могут быть использованы в запросе напрямую.

4. Какая разница между «where» и «having» выражениями?

where выполняется до group by, a having — после

5. Почему выражения «group by» или «order by» дорогие для выполнения (снижают производительность)?

потому что они требуют создания временных таблиц

6. Какие манипуляции необходимо выполнить, чтобы ускорить работу БД и запросов?

7. Что такое нормализация и денормализация? Зачем используется денормализация?

Нормализация — приведение БД к нормальному виду, в котором отсутствуют избыточность данных. Денормализация — обратный процесс. Используется для ускорения выполнения запроса

8. Что такое покрывающие индексы?

когда все столбцы запроса попадают в индекс, такой индекс называют покрывающим.

9. Какие службы Microsoft SQL Server вы знаете и для чего они нужны?

10. Что такое репликация? Какие виды репликации Вы знаете? Чем они отличаются?

11. Без чего нельзя добавить таблицу в репликацию?

12. Какая разница между varchar и nvarchar

в первом на хранение символа отводится один байт, во втором — два.

Вот всё, что знаю/помню. Поправьте, если где облажался

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.