Вопросы по базам данных на собеседовании

Главное меню » Базы данных » Учебное пособие по 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, вам нужно найти всех студентов, чьи оценки являются больше, чем средние оценки, т.е. список студентов выше среднего.

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


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

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

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

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

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

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

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

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

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

Коллеги, добрый день. Сегодня мне бы хотелось обсудить с вами вопросы, которые кажутся для меня наиболее интересными для обсуждения с кандидатом на позицию Администратор 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. В каких случаях и почему некластерный индекс может быть быстрее кластерного?

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

А какие вопросы кажутся важными вам? Пишите в комментариях, почту (freeman-dima@mail.ru) и вконтакте (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

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

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

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

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

Собеседование на любую техническую должность, как правило, требует подготовки и занимает немало времени. И не всегда понятно, что нужно конкретно изучать инженеру данных. Некоторые позиции требуют Hadoop, другие — SQL, а третьи — понимания статистики.

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

Вы также можете использовать чек-лист, который поможет отслеживать прогресс и ничего не забыть.

Почти неизбежно, что вам, как инженеру данных, зададут вопросы по SQL.

20 ноября в 18:30, Москва, беcплатно

  • объединение с фильтрацией;
  • последовательные объединения;
  • формирование подзапросов.

Базовые задачи на знание SQL

Эти первые несколько проблем помогут вам на разных концепциях понять, какой у вас уровень.

Комплексные запросы

Задача: В городе X построен новый стадион. Каждый день его посещает много людей, и статистика сохраняется в виде следующих столбцов: id, дата посещения, количество людей.

Напишите запрос, чтобы отобразить записи, которые имеют 3 или более последовательных строк и количество человек более 100 (включительно).

Задача: В таблице находится список сотрудников.

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

Дополнительно: Таблица содержит все отделы компании:

Для приведённых выше таблиц ваш запрос SQL должен возвращать следующие строки (порядок строк не имеет значения).

Задача: Для заданной таблицы напишите SQL-запрос, чтобы найти идентификаторы всех дат с более высокой температурой по сравнению с предыдущими датами.

Например, верните следующие идентификаторы для приведённой выше таблицы:

Aggregation

Задача: таблица Trips содержит все поездки такси. Каждая поездка имеет уникальный идентификатор, в то время как Client_Id и Driver_Id являются внешними ключами для Users Id в таблице Users . Статус является типом ENUM («завершено», «отменено водителем», «отменено клиентом»).

Напишите SQL запрос, чтобы найти число отменённых заявок среди незаблокированных пользователей с 1 по 3 октября 2013 года.

Расширенные объединения (Advanced Join)

Задача: Мэри — учитель в средней школе, и у неё есть таблица seat, в которой записаны имена учеников с их соответствующими местами.

Столбец ID является неизменным. Мэри хочет поменять местами соседствующих студентов.

Можете ли вы написать запрос SQL для вывода результата Мэри?

Простые объединения (Simple Joins)

Задача: Кетти даёт Еве задание создать отчёт, содержащий три столбца: Имя, Оценка и Отметка. Кетти не нужны имена тех учеников, которые получили оценку ниже 8. Отчёт должен быть составлен в порядке убывания по классам — более высокие оценки вводятся первыми. Если у двух и более учеников одинаковые оценки (8–10), упорядочите их по алфавиту. Наконец, если оценка ниже 8, используйте « NULL » в качестве имени и перечислите их по оценкам в порядке убывания. Если у двух и более учеников одинаковые оценки (1–7), упорядочите учеников по их оценкам в порядке возрастания.

Напишите запрос, чтобы помочь Еве.

Ранжирование количества строк и аналитические функции

Задача: написать запрос SQL, чтобы получить n-ую самую высокую зарплату из таблицы Employee:

Сложные запросы Self Join

Задача: Приведена таблица, содержащая два столбца: X и Y .

Две пары ( X 1 , Y 1 ) и ( X 2 , Y 2 ) называются симметричными парами, если X 1 = Y 2 и X 2 = Y 1 .

Напишите запрос для вывода всех таких симметричных пар в порядке возрастания величины X .

Дополнительно

Если вам нужно больше задач SQL:

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

Решение SQL задач после просмотра обучающих видео

Как только вы закончите смотреть видео по SQL, посмотрите задачи ниже. Если остались пробелы, запишите темы, в которых вы ещё слабы, и больше работайте над ними.

Базы данных, ETL и хранилища данных

Чтобы разобраться с вопросами по проектированию баз данных, ETL и хранилищ данных, посмотрите несколько видеороликов. А также рассмотрите несколько концепций баз данных, которые вы могли бы попробовать разработать самостоятельно.

Самостоятельная практика и возникающие проблемы

Перечислим несколько бизнес-систем, которые вы можете попытаться разработать. Сначала рекомендуется создать реляционную базу данных, а затем подумать о том, как бы вы разработали ETL и DW, которые полагаются на неё:

  • Приложение для знакомств;
  • Прокат велосипедов;
  • Приложения Music Streaming;
  • Сайта поиска работы;
  • Веб-сайта Udemy.

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

Задачи по программированию

Инженеры данных обычно используют несколько языков, и Python среди них наиболее распространённый. Если требуется много работать с Hadoop, то хорошо подойдёт Java, а если вы работаете в Windows, то также Powershell.

Обычно вопросы бывают двух типов: прикладные и по алгоритмам и структурам данных.

Алгоритмы и структуры данных

Задачи перед подготовкой:

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

Структуры данных

Big O

Ещё варианты прохождения интервью:

Задачи после изучения

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

Если вы всё ещё чувствуете, что нуждаетесь в помощи, подумайте о прохождении курса по алгоритмам и структурам данных.

Задачи оперативного программирования

Будет полезно знать, как использовать массивы и словари. Вот некоторые задачи, которые отлично подходят для подготовки.

  • Задача с кенгуру;
  • Побить рекорды;
  • Найти строку;
  • itertools.permutations ();
  • Без понятия!
  • День программиста;
  • Таблица лидеров;
  • Порядок слов;
  • Шерлок Холмс и Квадраты чисел;
  • Выровнять массив (функция equalize Array );
  • Яблоки и апельсины;
  • Python. Больше практики.

Проектирование систем

Вопросы по проектированию систем встречаются не так часто. Тем не менее, лучше быть к ним готовым.

Потратив некоторое время на просмотр видео, вы будете готовы ко всему, что интервьюер может попросить вас сделать:

Курсы

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

Англоязычные курсы на Udemy:

Заключение

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

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