Interview Questions for SQL Developers: Common SQL Interview Q&A- Part 3

In SQL, what types of joins have you used, and explain how they work?

Answer:

  • INNER JOIN: Returns rows with matching data from both tables.
  • LEFT JOIN: Returns all rows from the left table and matching rows from the right table.
  • RIGHT JOIN: Returns all rows from the right table and matching rows from the left table.
  • FULL JOIN: Returns all rows from both tables, including non-matching rows.

 

Explain the ACID concepts in SQL and their role in transaction management

Answer: ACID stands for Atomicity, Consistency, Isolation, Durability. These are essential properties in transaction management in SQL:

  • Atomicity гарантирует, что транзакция либо полностью обработана, либо не обработана вообще.
  • Consistency гарантирует, что данные должны соответствовать определенным правилам, ограничениям и условиям.
  • Isolation гарантирует, что параллельные транзакции не будут мешать друг другу.
  • Durability гарантирует, что после завершения транзакции изменения в базе данных будут надежно и постоянно сохранены.

 

В чем разница между ROW_NUMBER(), RANK(), DENSE_RANK() функциями в SQL?

Ответ: ROW_NUMBER(), RANK(), DENSE_RANK() все они используются для нумерации строк в результате запроса, но имеют следующие отличия:

  • ROW_NUMBER(): присваивает непрерывные номера строкам в результатах запроса без учета дубликатов.
  • RANK(): присваивает номера строкам в результатах запроса и пропускает следующий номер в случае равенства.
  • DENSE_RANK(): присваивает номера строкам в результатах запроса и не пропускает следующий номер в случае ничьей.

 

How to use window functions in SQL, and provide an example.

Answer: Window functions allow performing calculations on a set of related rows without changing the main query's result. For example, we can use window functions to calculate running totals or retrieve top N rows within a result set.

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

How to use regular expressions in SQL for pattern matching

Answer: Regular expressions in SQL are used for complex text pattern searches. They are often used with the LIKE operator or functions like REGEXP_LIKE(in Oracle) or REGEXP_MATCHES(in PostgreSQL).

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

How to use JSON functions in SQL to work with JSON data

Answer: JSON functions in SQL allow querying, inserting, updating, and deleting data in JSON format in the database.

For instance, we can use functions like JSON_VALUE, JSON_QUERY, JSON_MODIFY(in SQL Server), or operators like ->, ->>, #>, #>>, etc.(in PostgreSQL) to manipulate JSON properties.

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

Advanced techniques for SQL query optimization and database performance tuning

Answer: To optimize SQL queries and database performance, we can use techniques such as:

  • Using indexes for frequently queried columns.
  • Optimizing JOIN and WHERE clauses for efficient data retrieval.
  • Utilizing window functions and pagination when necessary.
  • Avoiding SELECT * to retrieve only necessary columns.
  • Using query hints in some cases.
  • Ensuring data normalization and removing duplicates.
  • Employing performance monitoring tools to track and fine-tune the database.

 

Explain how to use SET operations (UNION, INTERSECT, EXCEPT) in SQl

Ответ: SET операции (UNION, INTERSECT, EXCEPT) используются для объединения наборов результатов разных запросов и управления ими.

  • UNION: объединяет результаты двух или более запросов в один набор данных и удаляет дубликаты.
  • INTERSECT: возвращает строки, которые появляются в обоих наборах результатов запроса.
  • EXCEPT: возвращает строки, которые появляются в первом наборе результатов запроса, но не появляются во втором.

 

Как использовать функции запросов, как LEAD, LAG, FIRST_VALUE, LAST_VALUE в SQL

Ответ. Такие функции запроса LEAD, LAG, FIRST_VALUE, LAST_VALUE используются для извлечения значений из связанных строк в одном и том же результате запроса.

  • LEAD: получает значение столбца из следующей строки в результате запроса.
  • LAG: получает значение столбца из предыдущей строки в результате запроса.
  • FIRST_VALUE: извлекает первое значение столбца в результате запроса.
  • LAST_VALUE: извлекает последнее значение столбца в результате запроса.