Mais de 35 perguntas e respostas obrigatórias sobre SQL

Prepare-se para sua próxima entrevista SQL com esta lista de mais de 35 perguntas e respostas obrigatórias. Este artigo abrange uma ampla variedade de tópicos SQL, desde instruções SELECT básicas até operações JOIN avançadas. Ao ler este artigo, você estará no caminho certo para sua próxima entrevista SQL

A maioria dos aplicativos de software usa algum banco de dados e os Sistemas de Gerenciamento de Banco de Dados Relacional (RDBMS) são os mais populares entre todos os SGBDs. Como desenvolvedor de software, a maioria das empresas espera que você conheça SQL. SQL é a linguagem usada para trabalhar com bancos de dados relacionais, como SQL Server, MySQL e Oracle. Aqui está uma lista das 35 perguntas mais populares sobre entrevistas SQL e suas respostas.   

Q1. O que é SQL?

A linguagem de consulta estruturada (SQL) é usada em sistemas de gerenciamento de banco de dados relacional (RDBMS) para consultar, atualizar e excluir dados. SQL é uma linguagem de consulta padrão para RDBMS. As consultas da linguagem SQL também são conhecidas como comandos SQL ou instruções SQL. Existem quatro tipos de junções no SQL.

Q2. Quais são os tipos de Joins no SQL?

Existem quatro tipos de junções no SQL.

  1. INNER JOIN: Retorna todas as linhas quando há pelo menos uma correspondência em AMBAS as tabelas.
  2. LEFT JOIN: Retorna todas as linhas da tabela da esquerda e as linhas correspondentes da tabela da direita.
  3. RIGHT JOIN: retorna todas as linhas da tabela da direita e as linhas correspondentes da tabela da esquerda.
  4. FULL JOIN: Retorna todas as linhas quando há correspondência em UMA das tabelas.

Q3. Qual é a junção padrão no SQL? Dê um exemplo de consulta.

As junções padrão no SQL são INNER JOIN. Aqui está um exemplo que é aplicado a duas tabelas.

Exemplo 

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

Q4. Descreva todas as junções com exemplos em SQL?

SQL LEFT JOIN

A palavra-chave LEFT JOIN retorna todas as linhas da tabela esquerda (tabela1) com as linhas correspondentes na tabela direita (tabela2). O resultado é NULL no lado direito quando não há correspondência. 

SQL LEFT JOIN Syntax
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

SQL RIGHT JOIN

A junção à direita retorna todas as linhas na tabela à direita, ou seja, a tabela 2, com as correspondentes na tabela à esquerda (tabela 1).

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

SQL COMPLETO EXTERIOR

A junção completa retorna todas as linhas da tabela esquerda (tabela1) e da tabela direita (tabela2).

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

Q5. O que são Union e Union All? Explique as diferenças.

UNIÃO SQL

O operador UNION combina o conjunto de resultados de duas ou mais instruções SELECT.

Observe que cada instrução SELECT dentro de UNION deve ter o mesmo número de colunas. As colunas também devem ter tipos de dados semelhantes. Além disso, as colunas em cada instrução SELECT devem estar na mesma ordem.

Observação: o operador UNION seleciona apenas valores distintos por padrão.

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

SQL UNIÃO TODOS

SQL UNION ALL Syntax
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

Permite valores duplicados.

Q6. Diferencie o índice clusterizado e não clusterizado no SQL?

Um índice clusterizado é aquele em que a ordem do índice é organizada de acordo com a ordem física das linhas na tabela. Por esse motivo, só pode haver um índice clusterizado por tabela. Normalmente, esta é a chave primária.

Um índice não clusterizado é aquele em que a ordem do índice não é pela ordem física das linhas na tabela.

Criar sintaxe de índice 

CREATE INDEX [ CLUSTERED | NONCLUSTERED ] PIndex ON Persons (LastName, FirstName)

Aqui

Q7. Explique a diferença entre procedimento armazenado e função definida pelo usuário?

Procedimento armazenado

Os procedimentos armazenados são códigos reutilizáveis ​​em um banco de dados compilado pela primeira vez e seu plano de execução é salvo. O código compilado é executado toda vez que é chamado.

Função

Uma função é um objeto de banco de dados no SQL Server. É um conjunto de instruções SQL que aceita apenas parâmetros de entrada, executa ações e retorna o resultado. Ele é compilado toda vez que é invocado. A função pode produzir apenas um único valor ou uma tabela. Não podemos usar funções para Inserir, Atualizar e Excluir registros na(s) tabela(s) do banco de dados.

Diferença básica

A função deve retornar um valor, mas em Stored Procedure isso é opcional (Procedure pode retornar zero ou n valores).

As funções podem ter apenas parâmetros de entrada, enquanto os procedimentos podem ter parâmetros de entrada/saída.

As funções podem ser chamadas a partir do procedimento, enquanto os procedimentos não podem ser chamados a partir da função.

Diferenças Avançadas

  • O procedimento permite instruções SELECT e DML(INSERT/UPDATE/DELETE) , enquanto a função permite apenas instruções SELECT.
  • Os procedimentos não podem ser utilizados em uma instrução SELECT, enquanto as funções podem ser incorporadas a uma instrução SELECT.
  • Procedimentos armazenados não podem ser usados ​​nas instruções SQL em qualquer lugar na seção WHERE/HAVING/SELECT, enquanto funções podem ser.
  • A característica mais crucial dos procedimentos armazenados sobre a função é a retenção e a reutilização do plano de execução, enquanto no caso de uma função, ela será sempre compilada.
  • Funções que retornam tabelas podem ser tratadas como outro conjunto de linhas. Isso pode ser usado em JOINS com outras tabelas.
  • As funções embutidas podem ser consideradas exibições que usam parâmetros e podem ser usadas em JOINS e outras operações de conjuntos de linhas.
  • Um bloco try-catch pode lidar com uma exceção em um procedimento, enquanto um bloco try-catch não pode ser usado em uma função.
  • Podemos usar transações em stored procedures, mas não em funções.

Q8. O que são cursores e por que usamos cursores no SQL Server?

Um cursor SQL é um objeto de banco de dados usado para recuperar dados de um conjunto de resultados, uma linha por vez. Um cursor SQL é usado quando os dados precisam ser atualizados linha por linha.

Em bancos de dados relacionais, as operações são feitas em um conjunto de linhas. Por exemplo, uma instrução SELECT retorna um conjunto de linhas chamado conjunto de resultados. Às vezes, a lógica do aplicativo deve funcionar com uma linha por vez, em vez de todo o conjunto de resultados simultaneamente. Isso pode ser feito usando cursores. 

Q9. O que são gatilhos e quando usar um gatilho

Um gatilho é um tipo especial de procedimento armazenado ou programa armazenado que é acionado ou executado automaticamente quando algum evento (inserir, excluir e atualizar) ocorre.

Se você escrever um gatilho para uma operação de inserção em uma tabela, ele criará uma tabela chamada "INSERTED" na memória após disparar o gatilho. Em seguida, ele faz a operação de inserção e as instruções dentro do gatilho são executadas. Podemos consultar a tabela "INSERTED" para manipular ou usar a(s) linha(s) inserida(s) do gatilho. Da mesma forma, escrever um gatilho para uma operação de exclusão em uma tabela cria uma tabela na memória chamada "DELETED" e, em seguida, exclui a linha.

Usamos um gatilho quando queremos que algum evento aconteça automaticamente em determinados cenários desejáveis.

Q10. O que são visualizações no SQL Server

Visualizações são objetos de banco de dados como tabelas virtuais sem armazenamentos físicos e contendo dados de uma tabela ou de várias tabelas. Uma View não possui armazenamento físico, portanto, não contém nenhum dado. Quando atualizamos, inserimos ou aplicamos qualquer operação na View, essas operações são aplicadas na(s) tabela(s) em que a view foi criada.

Existem dois tipos de visualizações: 

  1. Visualização do sistema
  2. Visualização Definida pelo Usuário

As visualizações definidas pelo usuário são essenciais, portanto, descrevo apenas as visualizações definidas pelo usuário. Eles são dois tipos.

  1. Visualização Simples
  2. Visão complexa

Q11. Como encontrar o Nth Maior Salário em SQL?

Escrevi a consulta abaixo para descobrir o enésimo salário mais alto (por exemplo: aqui estou encontrando o  3º salário mais alto ).

SELECT TOP 1 Salary AS 'Higest Salary',Name FROM (SELECT DISTINCT TOP 3 Salary,Name FROM tblSalary ORDER BY Salary DESC) a ORDER BY Salary ASC

Q12. Qual é a diferença entre Count e Count_BIG?

A função Count retorna o valor que o tipo de dado é INT. A função Count_Big retorna um valor cujo tipo de dado é BIG_INT.

Q13. Qual é a diferença entre os tipos de dados CHAR e VARCHAR?

O tipo de dados CHAR.

  • É um tipo de dados de comprimento fixo.
  • Usado para armazenar caracteres não Unicode
  • Ocupa 1 byte de espaço para cada caractere

Sobre o tipo de dados VARCHAR.

  • É um tipo de dados de comprimento variável.
  • Usado para armazenar caracteres não Unicode
  • Ocupa 1 byte de espaço para cada caractere

Q14. Qual é a diferença entre os tipos de dados NCHAR e NVARCHAR?

O tipo de dados NCHAR.

  • É um tipo de dados de comprimento fixo
  • Usado para armazenar caracteres Unicode (por exemplo, os idiomas árabe, alemão e assim por diante)
  • Ocupa 2 bytes de espaço para cada caractere

O tipo de dados NVARCHAR:

  • É um tipo de dados de comprimento variável
  • Usado para armazenar caracteres Unicode
  • Ocupa 2 bytes de espaço para cada caractere

Q15. O que são as funções Cast() e Convert() no SQL Server?

A função Cast() é usada para converter uma variável de tipo de dados ou dados de um tipo de dados para outro tipo de dados. A função Cast() fornece um tipo de dados para um parâmetro dinâmico (?) ou um valor NULL.

Sintaxe

CAST ( [Expression]

AS Datatype)

A função CONVERT() pode exibir dados de data/hora em vários formatos. Quando você converte expressões de um tipo para outro, muitas vezes será necessário dentro de um procedimento armazenado ou outra rotina converter dados de um tipo DateTime para um tipo varchar. A função Convert é usada para essas coisas.

Sintaxe

CONVERT(data_type(length), expression, style)

Q16. Qual é o valor limite máximo para o tipo de dados inteiro?

O tipo de dados bigint representa um valor inteiro. Pode ser armazenado em 8 bytes.

Fórmula

2^(n-1) é a fórmula do valor máximo de um tipo de dados Bigint.

Na fórmula anterior, N é o tamanho do tipo de dados. O operador ^ calcula a potência do valor.

Int representa um valor inteiro que pode ser armazenado em 4 bytes. INT é a forma abreviada de um inteiro.

Fórmula

2^(n-1) é a fórmula para encontrar o máximo de um tipo de dados INT.

Na fórmula anterior, N é o tamanho do tipo de dados. O operador ^ calcula a potência do valor.

Q17. O que são comandos de confirmação e reversão no SQL Server?

Commit é usado para mudanças permanentes. Quando usamos o Commit em qualquer consulta, a alteração feita por essa consulta será permanente e visível. Não podemos fazer rollback após o commit.

Sintaxe

begin tran tranName

Command for operation

commit tran tranName

Rollback é usado para desfazer as alterações feitas por qualquer comando, mas somente antes de um commit ser feito. Não podemos reverter dados que foram confirmados no banco de dados com a ajuda da palavra-chave commit.

Sintaxe

begin tran tranName

Command for operation

Rollback tran tranName

Q18. O que é função de valor escalar no SQL Server?

Uma função com valor escalar no SQL Server 2012 retorna um único valor de qualquer tipo de dados T-SQL. Uma instrução CREATE FUNCTION é usada para criar uma função com valor escalar. O nome da função não deve ter mais de 128 caracteres. Não é uma regra, mas convencionalmente, o nome da função deve começar com o prefixo fn.

O valor é retornado por uma função com valor escalar usando a cláusula RETURNS. Até 1.024 parâmetros de entrada podem ser definidos para funções com valor escalar. Uma função com valor escalar, no entanto, não pode conter um parâmetro de saída.

Q19. O que são Pivot e Unpivot no SQL Server?

PIVOT e UNPIVOT são dois operadores relacionais usados ​​para converter uma expressão de tabela em outra. PIVOT é usado quando queremos transferir dados do nível da linha para o nível da coluna, e UNPIVOT é usado para converter dados do nível da coluna para o nível da linha. Os operadores relacionais PIVOT e UNPIVOT são usados ​​para gerar relatórios multidimensionais. Hoje vamos discutir os dois operadores. Os operadores relacionais PIVOT e UNPIVOT geram uma tabela interativa que combina e compara rapidamente uma grande quantidade de dados.

Q20. O que são tipos de tabela definidos pelo usuário e parâmetros com valor de tabela?

Os conceitos de User-Defined Table Types (UDTTs) e Table-Valued Parameters (TVPs) foram introduzidos no SQL Server 2008. Antes do SQL Server 2008, não era possível passar uma variável de tabela em um procedimento armazenado como um parâmetro; depois do SQL Server agora, podemos passar o parâmetro com valor de tabela para enviar várias linhas de dados para um procedimento armazenado ou uma função sem criar uma tabela temporária ou passar tantos parâmetros.

Antes de passar a variável de tabela, primeiro precisamos criar uma variável de tabela definida pelo usuário. Portanto, agora criamos um tipo de tabela definido pelo usuário.

Q21. Explique TRY_PARSE, TRY_CONVERT e TRY_CAST

TRY_PARSE

Ele converte o tipo de dados de string em tipo de dados de destino (data ou numérico). Por exemplo, os dados de origem são um tipo de string e devemos convertê-los em um tipo de data. Se a tentativa de conversão falhar, ela retornará um valor NULL.

TRY_CONVERT

Ele converte o valor em um tipo de dados especificado e retorna NULL se a conversão falhar; por exemplo, o valor de origem está no formato de string e precisa do formato de data/inteiro. Então isso nos ajudará a conseguir o mesmo.

TRY_CAST

Ele converte o valor em um tipo de dados especificado e retorna NULL se a conversão falhar; por exemplo, o valor de origem está no formato de string e precisamos dele no formato duplo/inteiro. Então isso nos ajudará a alcançá-lo.

Q22. O que a função @@FETCH_STATUS faz no SQL Server?

Para localizar a instrução FETCH mais recente no SQL Server 2012, usamos a função de sistema @@FETCH_STATUS. Podemos usar a função de sistema @@FETCH_STATUS com um loop while no SQL Server 2012. A função de sistema @@FETCH_STATUS retorna três valores no SQL Server 2012, que são explicados a seguir.

Quando a função do sistema @@FETCH_STATUS retorna 0, o FETCH é próspero e igual a zero.

Quando a função do sistema @@FETCH_STATUS retorna -1, o FETCH não é bem-sucedido.

Quando a função do sistema @@FETCH_STATUS retorna -2, o FETCH não é bem-sucedido porque a linha foi excluída.

Q23. Diferença entre Row_Number() Rank() e Dense_Rank()

Row_number desempenha um papel muito importante no servidor SQL. A função Row_Number pode ajudar a executar ordenações de linhas mais complexas no formato de relatório, permitindo a cláusula over a no padrão SQL.

Sintaxe

ROW_NUMBER () OVER ([PARTITION BY value_exp, ... [ n ]] ORDER BY_clause)
  • Função Rank () -  A função atribuirá um valor exclusivo a cada linha distinta, mas deixará um grupo entre os grupos.
  • Dense_Rank()-  A função é similar a Rank com apenas uma diferença. Isso não deixará lacunas entre os grupos.

Q24. Qual é a utilidade de @@IDENTITY e SCOPE_IDENTITY?

@@IDENTITY não está limitado a um escopo específico. @@IDENTITY retornará o último valor de identidade inserido em uma tabela. Suponha que criamos uma tabela e definimos o valor de identidade como verdadeiro para uma coluna na tabela. Depois disso, quando inserimos dados na tabela, obtemos o último valor de identidade usando @@IDENTITY. Se a instrução não afetou nenhuma tabela com colunas de identidade, @@IDENTITY retornará NULL. Você também pode acessar o valor @@IDENTITY em seu aplicativo.

SCOPE_IDENTITY retorna os últimos valores de identidade gerados em qualquer tabela na sessão atual. Você sempre obterá o último valor inserido por sua instrução de inserção na coluna de identidade, independentemente de a inserção ocorrer com suas instruções de inserção em qualquer tabela ou se você executar qualquer procedimento que faça qualquer operação de inserção em qualquer tabela.

Q25. Diferença entre Depois do Gatilho vs Em Vez do Gatilho

Após disparar o gatilho após a execução de uma consulta de ação, isso pode ser instruções DDL como Create, Alter e Drop ou instruções DML como Insert, Update e Delete.

Em vez disso, os gatilhos Trigger disparam antes da execução de uma consulta de ação que só pode ser instruções DML como Insert, Update e Delete, mas após a execução dessa consulta. Os dados da tabela não serão afetados; em outras palavras, se você deseja inserir ou atualizar os dados da tabela, precisará escrevê-los no gatilho usando tabelas virtuais "inseridas" ou "excluídas".

Q26. Diferença entre as funções IsNull () e Coalesce ()?

A função ISNULL() substitui NULL pelo valor de substituição especificado. Esta função contém apenas dois argumentos.

A função Coalesce() retorna o primeiro valor não nulo entre seus argumentos. Esta função não limita o número de argumentos; todos eles devem ser do mesmo tipo de dados.

Q27. O que são índices agrupados e índices não agrupados?

No SQL Server, os índices clusterizados são uma consideração crítica na arquitetura geral do banco de dados. Eles geralmente são negligenciados, mal compreendidos ou considerados sem importância se o banco de dados for pequeno. Eles determinam a ordem lógica na qual os dados da tabela são armazenados porque o nível folha/inferior do índice clusterizado consiste nas páginas de dados reais da tabela. Um índice clusterizado classifica e armazena as linhas ou exibições de dados da tabela em ordem com base na chave do índice clusterizado.

Os índices não clusterizados são armazenados separadamente da tabela. Eles são criados fora da tabela do banco de dados e contêm uma lista classificada de referências à própria tabela. No SQL Server 2005 e anteriores, um máximo de 249 índices não clusterizados podem ser criados em uma tabela, mas agora no SQL Server 2008, esse limite foi aumentado e agora 999 índices não clusterizados podem ser criados em uma única tabela. Os índices não clusterizados são a classificação das colunas, não cópias da tabela; você especifica esse "ponto" de volta para as páginas de dados no índice clusterizado. O índice clusterizado escolhido é muito importante porque afeta todos os outros índices.

Q28. Explicar a aplicação cruzada e a aplicação externa

CROSS APPLY para trabalhar como uma INNER JOIN linha por linha. CROSS APPLY retorna apenas linhas da tabela externa que produzem um conjunto de resultados da função com valor de tabela. Em outras palavras, o resultado de CROSS APPLY não contém nenhuma linha da expressão da tabela do lado esquerdo para a qual nenhum resultado é obtido da expressão da tabela do lado direito.

OUTER APPLY retorna ambas as linhas que produzem um conjunto de resultados e aquelas que não produzem, com valores NULL nas colunas produzidas pela função com valor de tabela. OUTER APPLY para trabalhar como LEFT OUTER JOIN.

Q29. O que é tabela temporária no SQL Server

As tabelas temporárias estão disponíveis apenas para a sessão que as criou.

Essas tabelas são destruídas automaticamente no término do procedimento ou sessão que as criou.

O uso de tabelas temporárias no MS SQL Server é mais amigável ao desenvolvedor e elas são amplamente utilizadas no desenvolvimento. As tabelas temporárias locais são visíveis apenas na sessão atual.

Tabelas temporárias são criadas usando a mesma sintaxe de CREATE TABLE, exceto que o nome da tabela começa com um sinal '#'. Quando a tabela consiste em um único sinal '#', ela é definida como uma tabela temporária local e seu escopo é limitado à sessão em que é criada.

Q30. Como você pode excluir dados de tabelas de um único banco de dados

O procedimento armazenado "sp_MSforeachtable" nos permite processar facilmente algum código em cada tabela em um único banco de dados. Isso significa que ele é usado para processar um único comando T-SQL ou vários comandos T-SQL diferentes em cada tabela do banco de dados.

Q31. Explique a função Row_Number?

As funções de classificação fornecem um recurso excelente de atribuição de numeração aos registros no conjunto de resultados em SQL. Row_Number é uma dessas funções disponíveis no SQL Server que nos permite atribuir classificações ou números às linhas dos dados do conjunto de resultados. Valores diferentes são atribuídos a linhas diferentes com base no tipo de função de classificação usada.

Essa função funciona atribuindo uma classificação contínua aos registros sem pular nenhum número no conjunto de resultados, seja ele particionado ou não. No final da discussão, veremos o que queremos dizer com classificação contínua e não pular nenhum registro.

Q32. O que é chave substituta no SQL Server?

Uma chave substituta no SQL Server é um identificador exclusivo para cada linha da tabela. Usando esta chave, podemos identificar uma linha individual. Não há nenhum significado comercial para chaves substitutas. É apenas uma chave. Esse tipo de chave é gerado pelo banco de dados ou por meio de outro aplicativo (não fornecido pelo usuário).

Uma chave substituta é um identificador exclusivo para cada linha e pode ser usada como uma chave primária. Há apenas um requisito para uma chave primária substituta: cada linha deve ter um valor exclusivo para essa coluna. Uma chave substituta também é conhecida como chave artificial ou chave de identidade. Pode ser usado em data warehouses.

Q33. Como recuperar linhas excluídas no SQL Server?

Podemos recuperar linhas excluídas se soubermos quando os dados são excluídos. Podemos atingir esse objetivo usando LSN ( Log Sequence Numbers ). A Microsoft diz: "Cada registro no log de transações do SQL Server é identificado exclusivamente por um número de sequência de log (LSN)". Usaremos esses LSNs para recuperar nossos dados excluídos.

Para recuperar linhas excluídas da tabela no banco de dados, o banco de dados deve ser FULL Recovery ou BULK-LOGGED Recovery Model.

Q34. O que é normalização e seus tipos?

Às vezes, um design de banco de dados que parece bom à primeira vista pode ter problemas ocultos. Um desses tipos de problema são os valores não atômicos. Isso significa que o valor armazenado em uma única coluna no banco de dados é uma combinação de vários valores, o que torna o banco de dados mais difícil de trabalhar porque você sempre precisará de expressões para extrair o valor individual. E vem com um grande impacto no desempenho também.

Um projeto de banco de dados sofre redundância se permitir que várias cópias do mesmo fato (dados) sejam armazenadas, o que é ruim por vários motivos, conforme mencionado abaixo -

  • Os mesmos dados são armazenados em vários lugares
  • O espaço de armazenamento é desperdiçado
  • Impacto no desempenho
  • A possibilidade de dados conflitantes (inconsistência de dados)

O terceiro problema que pode prejudicar o banco de dados são as Anomalias de Modificação.

Q35. O que é bloqueio no SQL Server?

Como todos sabemos, vários usuários precisam acessar bancos de dados simultaneamente. Portanto, os bloqueios entram em cena para evitar que os dados sejam corrompidos ou invalidados quando vários usuários tentam executar operações como ler, gravar e atualizar o banco de dados.

"O bloqueio é definido como um mecanismo para garantir a integridade e consistência dos dados enquanto permite o acesso simultâneo aos dados. Ele é usado para implementar o controle de simultaneidade quando vários usuários acessam um banco de dados para manipular seus dados simultaneamente."

Q36. O que é propriedade ACID?

Para qualquer negócio, as transações que compreendem muitas operações individuais e até mesmo outras transações desempenham um papel fundamental.

As transações são essenciais para manter a integridade dos dados para várias operações relacionadas e quando vários usuários atualizam o banco de dados simultaneamente.

Quatro propriedades caracterizam uma transação, muitas vezes chamadas de propriedades ACID: atomicidade, consistência, isolamento e durabilidade.

Q37. Por que o nível de isolamento é necessário?

O isolamento é uma das propriedades das transações SQL. Isolar/separar transações umas das outras para manter a integridade dos dados no banco de dados é chamado de isolamento.

Antes de ir para a parte de implementação do isolamento, entenderemos por que o isolamento é necessário no banco de dados.

Durante o desenvolvimento de aplicativos significativos de rede pública/empresarial em que muitos usuários acessam o mesmo banco de dados e a mesma tabela, ao mesmo tempo, podem ocorrer situações de simultaneidade de dados. Discutiremos esta situação em 4 partes.

  • Perda de Dados
  • Leitura Suja
  • Leitura Fantasma
  • Análise de inconsistência

Q38. Qual é a diferença entre Excluir, Truncar e Soltar?

A diferença entre TRUNCATE, DELETE e DROP está entre as perguntas de entrevista mais comuns. Aqui estão algumas das diferenças comuns entre eles.

Q39. O que é SQL Injection e como evitá-lo?

Existem muitas vulnerabilidades, permitindo que hackers roubem dados de organizações, e o SQL Injection é um deles. É talvez uma das técnicas de ataque de camada de aplicativo mais comuns de hoje. Quando a codificação imprópria do aplicativo da web é feita, um hacker pode injetar comandos SQL. Usando comandos SQL, um hacker pode roubar seus dados, modificar seus detalhes e excluir seus dados permanentemente.

Em termos simples, a injeção de SQL nada mais é do que uma técnica em que usuários mal-intencionados podem injetar comandos SQL em uma instrução SQL por meio da entrada da página da Web, e essa entrada pode quebrar a segurança do aplicativo da Web.

Conclusão

Espero que você tenha gostado deste artigo. Eu perdi alguma coisa que você pode achar que é necessário? Você achou este post útil? Por favor, compartilhe-me suas valiosas sugestões e feedback.

#sql

1.40 GEEK