30 вопросов на собеседовании по SQL в 2024 году

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

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Базовые вопросы о базах данных и концепциях SQL

1. Что такое база данных?

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

2. Что такое СУБД и какие типы СУБД вы знаете?

СУБД расшифровывается как система управления базами данных. Это программная система, предназначенная для ведения базы данных и доступа к ней. Она определяет правила манипулирования данными. Существует два основных типа СУБД:

  1. Реляционная система управления базами данных (РСУБД). Это наиболее распространенная модель. РСУБД позволяет хранить связанные данные в нескольких таблицах.
  2. Нереляционная система управления базами данных. В ней данные хранятся не в табличной форме.

3. В чем разница между первичными и внешними ключами?

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

Внешний ключ – это столбец в одной таблице, который ссылается на первичный ключ в другой таблице.

В таблице может быть любое количество столбцов с внешними ключами, но только один – с первичными.

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

Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB и Microsoft Access.

5. Что такое SQL?

SQL расшифровывается как “Structured query language” – “язык структурированных запросов”. Он используется для доступа к реляционным базам данных и манипулирования ими. Например, с помощью SQL можно создавать и удалять таблицы, вставлять и обновлять данные.

6. Что означают термины DDL и DML?

DDL (data definition language) – это язык определения данных. Он включает в себя операторы SQL, которые определяют структуру базы данных: CREATE, ALTER и DROP.

DML (data manipulation language) – это язык манипулирования данными. Он включает операторы SQL, которые используются для манипулирования записями данных: INSERT, UPDATE, DELETE и т. д.

7. Что такое ограничения SQL?

Ограничения SQL (constraints) – это правила, которые накладывают определенные ограничения при вставке, удалении или обновлении данных. Вот пара примеров:

  • NOT NULL указывает, что столбец всегда должен иметь значение
  • UNIQUE гарантирует, что в определенном столбце не будет дубликатов значений.

8. Какие клаузулы используются в SQL?

Клаузулы (clauses) в SQL – это встроенные функции, используемые для получения данных из базы данных. Например:

  • WHERE
  • HAVING
  • AND
  • OR
  • GROUP BY
  • ORDER BY

9. Что означает NULL в SQL?

В SQL слово NULL означает, что значение для определенного поля отсутствует. Любой столбец в таблице можно настроить так, чтобы он допускал или не допускал значение NULL.

10. Какие возможные значения могут храниться в поле данных BOOLEAN?

Булевы значения могут быть либо True, либо False.

Вопросы по SQL-запросам

11. Как написать базовый SQL-запрос, чтобы получить все данные из таблицы?

SELECT * FROM имя_таблицы

12. Что такое подзапрос и как он используется в SQL?

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

13. Как объединить две таблицы в SQL?

В SQL для объединения двух таблиц используется оператор JOIN. JOIN позволяет объединить строки из двух или более таблиц на основе связанного столбца или набора столбцов.

14. Какие типы JOIN вы знаете?

  • INNER JOIN возвращает записи, которые имеют совпадающие значения в обеих таблицах
  • OUTER JOIN возвращает совпадающие и несовпадающие значения
  • LEFT JOIN возвращает все строки из левой таблицы и совпадающие строки из правой таблицы
  • RIGHT JOIN возвращает все строки из правой таблицы и совпадающие записи из левой таблицы.

15. Как с помощью SQL обновить данные в базе данных?

Чтобы обновить данные, мы используем оператор UPDATE. Например, у нас есть таблица “Customers” со столбцами “customer_id”, “name”, “email” и “phone”. Чтобы обновить адрес электронной почты клиента на основе его ID, мы используем следующий SQL-оператор:

UPDATE Customers

SET email = ‘new_email@example.com’

WHERE customer_id = 123;

16. Как избежать дублирования записей в запросе?

Чтобы избежать дублирования записей в запросе SQL, мы используем ключевое слово DISTINCT. Допустим, у нас есть таблица “Orders” со столбцами “order_id”, “customer_id”, “product_name” и “price”. Если мы хотим выбрать все уникальные продукты из таблицы, мы используем следующий SQL-оператор:

SELECT DISTINCT product_name

FROM Orders;

17. В чем разница между командами DELETE, TRUNCATE и DROP?

DELETE используется для удаления некоторых или всех строк из таблицы. Эту команду можно отменить.

TRUNCATE используется для удаления всех строк из таблицы. Откат невозможен.

DROP удаляет таблицу из базы данных. Откат невозможен.

18. В чем разница между выражениями HAVING и WHERE?

Выражение WHERE используется для фильтрации строк из набора результатов перед группировкой или агрегированием.

Выражение HAVING используется для фильтрации данных, которые соответствуют определенным критериям, заданным агрегатными функциями. Оно используется совместно с выражением GROUP BY.

19. Что такое агрегатные функции в SQL?

Агрегатные функции в SQL выполняют вычисления над набором значений и возвращают итоговое значение. Наиболее часто используемые агрегатные функции в SQL:

  • COUNT – возвращает количество строк в группе или таблице
  • SUM – возвращает сумму значений
  • AVG – возвращает среднее арифметическое значений
  • MAX – возвращает максимальное значение
  • MIN – возвращает минимальное значение

20. Расскажите о комментариях в SQL

SQL-комментарии – это строки текста, которые мы добавляем в SQL-запрос, чтобы предоставить информацию другим пользователям. Движок SQL игнорирует комментарии, поэтому они не влияют на выполнение наших запросов. Однострочные комментарии начинаются с двух тире (--) и заканчиваются в конце строки. Многострочные комментарии начинаются с косой черты и звездочки (/*) и заканчиваются звездочкой и косой чертой (*/).

Вопросы по тестированию БД

21. Что такое тестирование баз данных?

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

22. В чем разница между тестированием графического интерфейса и тестированием базы данных?

Во время тестирования пользовательского интерфейса QA-инженер проверяет элементы, которые пользователи могут видеть и с которыми они могут взаимодействовать. Они проверяют текстовые поля, выпадающие меню, кнопки и так далее. Чтобы выполнить этот вид тестирования, тестировщикам необходимо хорошо понимать бизнес-требования к конкретному приложению.

При тестировании баз данных QA-инженер обращает внимание на скрытые от пользователей вещи: процедуры хранения, таблицы, индексы и т. д. Для выполнения этого вида тестирования тестировщикам необходимы глубокие знания концепций баз данных и умение работать с SQL-запросами.

24. Как тестировать базу данных вручную?

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

25. Как вы использовали SQL на своей предыдущей работе?

Я использовал(а) его при работе с определенными типами тест-кейсов. Например:

  • Добавить пользователя и проверить в базе данных, был ли он создан
  • Удалить пользователя и проверить, был ли он удален из базы данных
  • Обновить информацию о пользователе и проверить, была ли она обновлена в базе данных.

26. Как бы вы использовали SQL для проверки правильности вставки данных в базу данных?

Я бы использовал(а) оператор SELECT для получения данных из БД и проверил(а), что возвращаемые значения соответствуют ожидаемым результатам.

27. Как бы вы проверили наличие NULL-значений?

NULL означает, что поле не имеет значения. Поэтому мы не можем использовать такие операторы сравнения, как < или >. Вместо этого мы используем IS NULL. Например:

SELECT * FROM table_name WHERE column_name IS NULL;

28. Как бы вы использовали SQL для выявления дубликатов записей в таблице?

Чтобы выявить дубликаты записей в таблице, я бы использовал(а) выражение GROUP BY и функцию COUNT в выражении HAVING, чтобы проверить, есть ли в какой-либо из групп более одной записи. Например, чтобы проверить наличие дублирующихся ID заказов в столбце OrderID таблицы Orders, я бы использовал(а) следующий запрос:

SELECT OrderID, COUNT(OrderID)

FROM Orders

GROUP BY OrderID

HAVING COUNT(OrderID) > 1SELECT OrderID, COUNT(OrderID)

29. Как проверить, сработал ли триггер?

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

30. Как бы вы подошли к написанию тест-кейсов для тестирования БД?

Я бы начал(а) с анализа требований, чтобы лучше понять ожидаемое поведение базы данных. Затем я бы определил(а) тестовые сценарии, которые необходимо протестировать. После этого я создал(а) бы тест-кейсы на основе тестовых сценариев. Я включил(а) бы в них описание тест-кейса, входные данные теста, ожидаемые выходные данные и шаги воспроизведения теста.

Заключение

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

Перевод статьи «Top 30 QA SQL Interview Questions in 2024».

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *