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

