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
andWHERE
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
: извлекает последнее значение столбца в результате запроса.