No SQL, quais tipos de joins
você usou e explique como eles funcionam?
Responder:
INNER JOIN
: retorna linhas com dados correspondentes de ambas as tabelas.LEFT JOIN
: Retorna todas as linhas da tabela à esquerda e as linhas correspondentes da tabela à direita.RIGHT JOIN
: Retorna todas as linhas da tabela da direita e as linhas correspondentes da tabela da esquerda.FULL JOIN
: Retorna todas as linhas de ambas as tabelas, incluindo linhas não correspondentes.
Explicar os conceitos de ACID em SQL e sua função no gerenciamento de transações
Resposta: ACID significa Atomicity, Consistency, Isolation, Durability
. Estas são propriedades essenciais no gerenciamento de transações em SQL:
Atomicity
garante que uma transação seja totalmente processada ou não processada.Consistency
garante que os dados devem aderir a regras, restrições e condições definidas.Isolation
garante que as transações simultâneas não interfiram umas nas outras.Durability
garante que, uma vez concluída a transação, as alterações no banco de dados sejam salvas de forma segura e permanente.
Qual é a diferença entre ROW_NUMBER(), RANK(), DENSE_RANK()
as funções no SQL?
Resposta: ROW_NUMBER(), RANK(), DENSE_RANK()
são todos usados para numerar linhas em um resultado de consulta, mas possuem as seguintes diferenças:
ROW_NUMBER()
: atribui números contínuos a linhas no resultado da consulta, sem considerar duplicatas.RANK()
: atribui números a linhas no resultado da consulta e pula o próximo número em caso de empate.DENSE_RANK()
: Atribui números às linhas no resultado da consulta e não pula o próximo número em caso de empate.
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.
Por exemplo, podemos usar funções como JSON_VALUE, JSON_QUERY, JSON_MODIFY(no SQL Server) ou operadores como ->, ->>, #>, #>>, etc.(no PostgreSQL) para manipular propriedades JSON.
SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName
FROM Customers;
Técnicas avançadas para otimização de consultas SQL e ajuste de desempenho do banco de dados
Resposta: Para otimizar as consultas SQL e o desempenho do banco de dados, podemos utilizar técnicas como:
- Usando índices para colunas consultadas com frequência.
- Otimização
JOIN
eWHERE
cláusulas para recuperação eficiente de dados. - Utilizando funções de janela e paginação quando necessário.
- Evitando
SELECT
* para recuperar apenas as colunas necessárias. - Usando dicas de consulta em alguns casos.
- Garantir a normalização dos dados e remover duplicatas.
- Empregar ferramentas de monitoramento de desempenho para rastrear e ajustar o banco de dados.
Explicar como usar SET
operações (UNION, INTERSECT, EXCEPT)
em SQL
Resposta: SET
as operações (UNION, INTERSECT, EXCEPT)
são usadas para combinar e manipular conjuntos de resultados de diferentes consultas.
UNION
: combina os resultados de duas ou mais consultas em um único conjunto de dados e remove duplicatas.INTERSECT
: retorna as linhas que aparecem em ambos os conjuntos de resultados da consulta.EXCEPT
: retorna as linhas que aparecem no primeiro conjunto de resultados da consulta, mas não no segundo.
Como usar funções de consulta como LEAD, LAG, FIRST_VALUE, LAST_VALUE
no SQL
Resposta: funções de consulta como LEAD, LAG, FIRST_VALUE, LAST_VALUE
são usadas para recuperar valores de linhas relacionadas dentro do mesmo resultado de consulta.
LEAD
: Obtém o valor de uma coluna da próxima linha no resultado da consulta.LAG
: Obtém o valor de uma coluna da linha anterior no resultado da consulta.FIRST_VALUE
: recupera o primeiro valor de uma coluna no resultado da consulta.LAST_VALUE
: recupera o último valor de uma coluna no resultado da consulta.