28th Nov 2023 24 minutos de leitura As 29 principais perguntas da entrevista sobre o SQL Server Tihomir Babic sql server perguntas de entrevistas sql Índice SQL Server e T-SQL: O que você precisa saber Perguntas gerais da entrevista sobre o SQL Server 1. O que é o SQL Server? 2. Você pode explicar as diferentes edições do SQL Server? 3. Quais são os principais componentes do SQL Server? Perguntas da entrevista sobre SQL/T-SQL 4. O que é T-SQL? Qual é a diferença entre SQL e T-SQL? 5. Quais são os diferentes tipos de junções no SQL Server? 6. Qual é o objetivo das cláusulas GROUP BY e HAVING no T-SQL? 7. O que é uma subconsulta em T-SQL? 8. Quais são os diferentes tipos de subconsultas? 9. Qual é a diferença entre UNION e UNION ALL? 10. Liste as funções mais comuns no SQL Server. 11. Qual é a finalidade das funções COALESCE() e NULLIF()? 12. O que é Funções de Janela (Window Functions) em SQL no SQL Server? 13. Encontre as Top N Rows no SQL Server. 14. O que o ROLLUP, GROUPING SETS e CUBE fazem no T-SQL? 15. O que é um CTE no SQL Server? 16. Explique o que é um CTE recursivo e como escrevê-lo no SQL Server. Perguntas intermediárias da entrevista sobre o SQL Server 17. Como você cria uma tabela no SQL Server? 18. O que é uma chave primária? O que é uma chave estrangeira? 19. Qual é a diferença entre os comandos DELETE e TRUNCATE? 19. Qual é a diferença entre uma tabela e uma visualização no SQL Server? 20. Você pode explicar os diferentes tipos de índices no SQL Server? 21. Qual é a diferença entre uma função e um procedimento armazenado? 22. Qual é a diferença entre uma tabela temporária e uma variável de tabela? 23. O que é um acionador? Quando você usaria um? 24. Qual é a diferença entre Commit e Rollback? SQL Avançado Perguntas da entrevista sobre o servidor 25. Você pode explicar os diferentes tipos de replicação no SQL Server? 26. Explique os diferentes tipos de bloqueios no SQL Server. 27. Qual é a diferença entre um deadlock e um livelock? 28. Qual é a diferença entre uma visualização materializada e uma não materializada? 29. Qual é a diferença entre transações implícitas e explícitas? Está pegando o jeito das perguntas da entrevista sobre o SQL Server? Procurando um emprego no SQL Server? Leia estas 29 perguntas obrigatórias para entrevistas sobre o SQL Server e você estará bem preparado. E não se preocupe em procurar as respostas - nós também as fornecemos! A primeira versão do Microsoft SQL Server foi lançada em 1989 e tem uma história rica. Desde então, ele percorreu um longo caminho, tornando-se um dos mecanismos de banco de dados mais usados no setor de dados. Nos últimos dez anos, ele tem sido o terceiro mecanismo de banco de dados mais popular. Fonte: https://db-engines.com/en/ranking_trend Se o seu (próximo) emprego exigir trabalhar com bancos de dados relacionais, há uma boa chance de que você precise fazer isso no SQL Server. Por exemplo, os modeladores de dados projetam e implementam bancos de dados com a ajuda de administradores de bancos de dados. Para fazer isso, os modeladores de dados usarão o SQL Server para criar tabelas e seus atributos, definir relacionamentos entre as tabelas, definir restrições, tipos de dados e assim por diante. Em seguida, o banco de dados deve ser preenchido com dados, que é o trabalho de um engenheiro de dados. Eles usam o SQL Server para consultar, integrar, transformar e carregar dados. Quando tudo estiver pronto, o administrador do banco de dados garante o acesso e a segurança dos dados: ele fornece ou revoga o acesso aos dados, mantém e faz backup do banco de dados, monitora seu desempenho e o atualiza e até mesmo o recupera quando necessário. Há também toda uma gama de trabalhos de dados relacionados principalmente ao uso dos dados do banco de dados. Isso inclui analistas de dados, analistas financeiros, analistas quantitativos, desenvolvedores de BI, estatísticos e cientistas de dados. Espera-se que eles sejam capazes de buscar os dados de forma independente, o que exige habilidades em SQL. SQL Server e T-SQL: O que você precisa saber Embora o conhecimento necessário sobre o SQL Server varie de cargo para cargo, um aspecto que todos têm em comum é o conhecimento de T-SQL - o dialeto de SQL do SQL Server. Para estar pronto para a entrevista de emprego, você deve ser fluente em T-SQL. A melhor maneira de conseguir isso é por meio da experiência de trabalho, da solução de perguntas reais da entrevista e do aproveitamento de cursos interativos de SQL. Para a última categoria, sugerimos nosso curso de aprendizado SQL de A a Z in MS SQL Server. Ele consiste em sete cursos interativos que abrangem tudo, desde os conceitos básicos de T-SQL até extensões GROUP BY, consultas recursivas e expressões de tabela comuns. Há muitos cursos bons disponíveis; aqui estão os cinco que sugerimos para iniciantes no SQL Server. Além disso, você também deve aprimorar seus conhecimentos técnicos sobre o SQL Server, pois a entrevista também incluirá perguntas não relacionadas ao SQL. Abordaremos aqui o maior número possível de perguntas de entrevista sobre o SQL Server. No entanto, nenhum trabalho de dados exige apenas conhecimento do SQL Server. Então, como você se prepara para as outras partes da entrevista? O ponto de partida deve ser sempre a descrição do cargo. Leia atentamente os requisitos. Eles podem incluir outras linguagens de programação (por exemplo, Python), análise estatística, ETL, design de banco de dados, aprendizado de máquina e assim por diante. Visualize o plano de ação que o deixará preparado em todas essas frentes. E use todas as fontes disponíveis, como artigos, vídeos do YouTube, cursos, conjuntos de dados práticos, plataformas com perguntas de entrevistas e todos os tipos de tutoriais diferentes. Agora, vamos começar com as perguntas da entrevista sobre o SQL Server. Perguntas gerais da entrevista sobre o SQL Server Os entrevistadores geralmente gostam de fazer algumas perguntas gerais sobre o SQL Server como aquecimento. Vamos começar com algumas fáceis. 1. O que é o SQL Server? Resposta: O SQL Server é o sistema de gerenciamento de banco de dados relacional (RDBMS) da Microsoft. Ele garante o armazenamento, a integridade, a segurança e o acesso aos dados. Em outras palavras, ele permite a criação, o armazenamento, a atualização, a exclusão e a recuperação de dados. 2. Você pode explicar as diferentes edições do SQL Server? Resposta: Há cinco edições do SQL Server. O nível de entrada é o SQL Server Express, um banco de dados gratuito para aprendizado e criação de pequenos aplicativos de desktop e servidor. É usado principalmente por indivíduos e pequenas organizações que exigem apenas funcionalidades básicas de RDBMS. OSQL Server Developer é licenciado para um usuário. É usado como um sistema de desenvolvimento e teste, não como um servidor de produção. Ele tem todas as funcionalidades da edição Enterprise, mas em um ambiente que não é de produção. Ele é usado por desenvolvedores e testadores. O SQL Server Web foi projetado para hosts da Web e pontos de acesso virtual (VAPs) da Web. Ele permite que eles compartilhem (a baixo custo) seus serviços e aplicativos executados no SQL Server. O SQL Server Standard fornece recursos essenciais de gerenciamento de dados e Business Intelligence para pequenas organizações com recursos mínimos de TI. Ele oferece quase tudo o que o SQL Enterprise oferece, mas com algumas limitações. O SQL Enterprise é a edição ideal para grandes organizações. Ele oferece virtualização ilimitada, acesso à nuvem via Azure e o melhor desempenho, análise de dados e segurança. É também a edição mais cara do SQL Server. 3. Quais são os principais componentes do SQL Server? Resposta: O SQL Server é composto por vários componentes. O mecanismo de banco de dados lida com o armazenamento, a segurança e a transformação de dados. O aplicativo do SQL Server inicia, interrompe e pausa o trabalho de outros componentes. Seu executável é sqlservr.exe. O SQL Server Agent é um agendador de tarefas que é ativado com qualquer evento. Seu executável é sqlagent.exe. O SQL Server Browser recebe as solicitações de entrada do SQL Server e fornece as informações sobre as instâncias do SQL Server instaladas no computador. Seu executável é ssqlbrowser.exe. O SQL Server Full-Text Search permite executar pesquisas de texto completo nos dados baseados em caracteres armazenados nas tabelas do banco de dados. Seu executável é fdlauncher.exe. O SQL Server VSS Writer possibilita o backup e a restauração do banco de dados por meio da criação de cópias de sombra quando o servidor SQL não está em execução. Seu executável é sqlwriter.exe. O SQL Server Analysis Services (SSAS) é um componente de análise e mineração de dados, bem como de geração de relatórios e visualização de dados por meio da conectividade com ferramentas como o PowerBI e o Excel. Ele também permite o uso de Python e R para análises avançadas. Seu executável é smsmdsrv.exe. O SQL Server Reporting Services (SSRS) é um componente de geração de relatórios que permite criar, implementar e gerenciar relatórios gráficos, móveis e impressos. Seu executável é ReportingServicesService.exe. O SQL Server Integration Services (SSIS) é uma ferramenta ETL para armazenamento, extração, transformação, carregamento e integração de dados. Seu executável é MsDtsSrvr.exe. Perguntas da entrevista sobre SQL/T-SQL Estas são as perguntas da entrevista sobre o SQL Server que se relacionam diretamente com o T-SQL e seus comandos. A maioria delas não exige demonstrações de codificação, mas você ainda precisa ter um bom conhecimento de T-SQL para responder. Se você estiver interessado em praticar a codificação antes da entrevista, aqui estão algumas perguntas da entrevista sobre codificação de SQL. 4. O que é T-SQL? Qual é a diferença entre SQL e T-SQL? Resposta: T-SQL é um dialeto de SQL usado para comunicação com o banco de dados do SQL Server. O SQL é uma linguagem de código aberto desenvolvida pela IBM, enquanto o T-SQL é criado e de propriedade da Microsoft. O SQL é uma linguagem não procedimental, o que significa que ele executa uma consulta SQL por vez. Por outro lado, o T-SQL é uma linguagem procedural. Isso significa que as consultas são executadas como um bloco em uma ordem logicamente estruturada. Além disso, o T-SQL tem algumas instruções, palavras-chave e funções que não existem no SQL padrão. Para obter mais detalhes sobre isso, dê uma olhada no artigo que destaca as 14 diferenças entre SQL e T-SQL. 5. Quais são os diferentes tipos de junções no SQL Server? Resposta: Há cinco tipos diferentes de JOINs no SQL Server: (INNER) JOIN LEFT (OUTER) JOIN RIGHT (OUTER) JOIN FULL (OUTER) JOIN CROSS JOIN JOIN é uma união interna que retorna as linhas correspondentes de ambas as tabelas unidas. LEFT JOIN é uma junção externa que retorna todas as linhas da primeira tabela (esquerda) e somente as linhas correspondentes da segunda tabela (direita). RIGHT JOIN faz o mesmo, mas a partir da direita; retorna todas as linhas da tabela direita e as linhas correspondentes da tabela esquerda. FULL JOIN é uma união externa que combina LEFT JOIN e RIGHT JOIN: retorna todas as linhas da tabela da esquerda e todas as linhas da tabela da direita. CROSS JOIN retorna um produto cartesiano, ou seja, retorna todas as combinações de todas as linhas das tabelas unidas. Nossa Folha de consulta SQL JOIN explica muito bem cada uma dessas uniões usando exemplos. Se você quiser se aprofundar mais, aqui estão 10 perguntas de entrevista sobre SQL JOIN. 6. Qual é o objetivo das cláusulas GROUP BY e HAVING no T-SQL? Resposta: GROUP BY organiza em grupos as linhas com os mesmos valores em uma ou mais colunas. Ela é frequentemente (mas nem sempre) usada com funções de agregação. Você pode encontrar mais detalhes neste artigo sobre GROUP BY, e há 5 exemplos de GROUP BY em outro artigo. HAVING é usado para filtrar grupos com base em uma condição especificada. Como ela filtra grupos, as funções de agregação são permitidas nessa cláusula. Aqui está um artigo que explica HAVING em mais detalhes. 7. O que é uma subconsulta em T-SQL? Resposta: Uma subconsulta ou consulta interna é uma consulta colocada dentro de outra consulta (chamada de consulta externa). No T-SQL, as subconsultas podem ser usadas nas instruções SELECT, INSERT, UPDATE e DELETE. Elas são colocadas nas cláusulas FROM, WHERE ou HAVING do comando T-SQL permitido. 8. Quais são os diferentes tipos de subconsultas? Resposta: Há vários tipos de subconsultas. Uma subconsulta escalar é uma subconsulta que retorna precisamente um valor (uma linha e uma coluna) como resultado. Ela é usada nas cláusulas FROM, WHERE e HAVING. Uma subconsulta de várias linhas é uma subconsulta que retorna várias linhas e uma ou mais colunas. Elas são usadas nas mesmas cláusulas que as subconsultas escalares, mas com os operadores IN, NOT IN, ANY, ALL, EXISTS ou NOT EXISTS. As subconsultas correlacionadas usam um valor da consulta externa. Ela é avaliada uma vez para cada linha da consulta externa. As subconsultas não correlacionadas funcionam de forma independente da consulta externa; elas não dependem dos resultados da consulta externa. Você pode ler mais sobre os diferentes tipos de subconsultas. 9. Qual é a diferença entre UNION e UNION ALL? Resposta: Tanto o UNION quanto o UNION ALL mesclam os resultados de duas ou mais consultas em um único conjunto de resultados. A diferença é que UNION não inclui duplicatas, enquanto UNION ALL inclui. Você pode saber mais sobre sua sintaxe e uso neste artigo sobre UNION vs. UNION ALL. 10. Liste as funções mais comuns no SQL Server. Resposta: Aqui estão as categorias de funções e funções mais comumente usadas no SQL Server. Funções de cadeia de caracteres: CONCAT() - Mesclam duas ou mais cadeias de caracteres. LEFT() RIGHT() & - Retorna o número especificado de caracteres da extremidade esquerda ou direita de uma cadeia de caracteres ou de uma posição declarada na cadeia de caracteres. SUBSTRING() LEN() - Retorna o número de caracteres na cadeia de caracteres. LTRIM(), RTRIM() & TRIM() - Remove espaços ou outros caracteres da esquerda, da direita ou de uma posição especificada na cadeia de caracteres. REPLACE() - Substitui todas as ocorrências de uma substring especificada por outra string. LOWER() e UPPER() - Torna todos os caracteres em minúsculas ou maiúsculas, respectivamente. Funções numéricas: ABS() - Retorna o valor absoluto. ROUND() - Arredonda um número para uma casa decimal especificada. Funções de data e hora: DATEDIFF() - Retorna a diferença entre duas datas especificadas. CURRENT_TIMESTAMP() - Retorna a data e a hora atuais. DATEADD() - Adiciona uma data ou um intervalo de tempo a uma data e retorna uma nova data. DAY(), MONTH(), YEAR() - Retorna o dia, o mês ou o ano de uma data. Funções agregadas: COUNT() - Conta o número de linhas retornadas por uma consulta. SUM() - Retorna a soma dos valores. AVG() - Retorna o valor médio. MIN() - Retorna o valor mínimo. MAX() - Retorna o valor máximo. Outras funções: CAST() & CONVERT() - Converte um valor de um tipo de dados para um tipo de dados especificado. COALESCE() - Retorna o primeiro valor nãoNULL ISNULL() - Retorna o valor especificado se a expressão for NULL ou se a expressão for diferente. NULLIF() - Retorna NULL se duas expressões forem iguais. 11. Qual é a finalidade das funções COALESCE() e NULLIF()? Resposta: COALESCE() retorna o primeiro valor nãoNULL. NULLIF() retorna NULL se duas expressões forem iguais. Veja como você pode usar COALESCE() no SQL. 12. O que é Funções de Janela (Window Functions) em SQL no SQL Server? Resposta: Essas funções realizam cálculos no conjunto de linhas relacionadas à linha atual. Elas são semelhantes às funções agregadas, mas, diferentemente delas, as funções de janela não condensam o resultado em uma única linha. Isso permite a exibição simultânea dos valores agregados e individuais das linhas. As funções de janela no SQL Server são usadas para classificação, agregação e análise. Você pode revisar os conceitos mais importantes das funções de janela com a nossa Folha de dicas do SQL Funções de Janela (Window Functions) em SQL . Você pode praticar o que aprendeu nesses 11 exercícios de função de janela do SQL. E se quiser se preparar para a entrevista de emprego, teste seus conhecimentos com estas 10 perguntas de entrevista sobre funções de janela do SQL. 13. Encontre as Top N Rows no SQL Server. Resposta: Se quisermos retornar as 5 primeiras linhas da tabela album tabela, poderíamos fazer isso da seguinte forma: SELECT TOP 5 * FROM albums; 14. O que o ROLLUP, GROUPING SETS e CUBE fazem no T-SQL? Resposta: Todos eles são extensões de GROUP BY. ROLLUP permite criar vários conjuntos de agrupamento e adicionar subtotais e totais gerais. Com o GROUPING SETS, você pode definir vários conjuntos de agrupamento, o que é como combinar várias cláusulas GROUP BY em uma única consulta. O CUBE permite que você crie grupos para possíveis combinações de colunas e adicione subtotais. 15. O que é um CTE no SQL Server? Resposta: Um CTE ou Common Table Expression é o resultado temporário nomeado de uma instrução SELECT. Eles são semelhantes às subconsultas, mas, diferentemente delas, os CTEs podem ser usados várias vezes na mesma consulta. Eles também são semelhantes às tabelas temporárias. Entretanto, o resultado do CTE não é armazenado na memória do banco de dados; o CTE precisa ser executado sempre que seu resultado for usado por uma consulta. Os resultados do CTE podem ser referenciados nas declarações SELECT, INSERT, UPDATE, DELETE e MERGE. Veja mais detalhes no artigo que explica os CTEs no SQL Server. Para aprofundar seu conhecimento, aqui estão sete exemplos de CTE com os quais você pode aprender. 16. Explique o que é um CTE recursivo e como escrevê-lo no SQL Server. Resposta: Um CTE recursivo faz referência a si mesmo. Como um CTE regular, um CTE recursivo no SQL Server é escrito usando a cláusula WITH. A primeira parte de um CTE recursivo é um membro de âncora, que gera o resultado base do CTE. Esse resultado é mesclado com o resultado de outra consulta, que é chamada de membro recursivo porque faz referência ao membro âncora. Essa mesclagem é feita usando UNION ALL. O uso de UNION não funcionaria (ao contrário de outros bancos de dados). A terceira parte de um CTE recursivo é a condição de término, que especifica as condições que interromperão a recursão; caso contrário, ela poderia continuar indefinidamente. Este artigo sobre CTEs recursivos ensinará a você como transformar a resposta acima em código. Perguntas intermediárias da entrevista sobre o SQL Server Vamos agora dar uma olhada nas perguntas para usuários intermediários do SQL Server. 17. Como você cria uma tabela no SQL Server? Resposta: As tabelas no SQL Server são criadas com o comando CREATE TABLE. Nele, você especifica o nome da tabela, os nomes das colunas e o tipo de dados que cada coluna aceitará. A sintaxe é a seguinte: CREATE TABLE table_name ( column_1 datatype, column_2 datatype, column_3 datatype, … ); 18. O que é uma chave primária? O que é uma chave estrangeira? Resposta: A chave primária é uma coluna (ou uma combinação de colunas) que garante a identificação exclusiva das linhas em uma tabela. Uma chave estrangeira é uma coluna ou uma combinação de colunas em uma tabela que faz referência à chave primária em outra tabela. 19. Qual é a diferença entre os comandos DELETE e TRUNCATE? Resposta: Embora possam parecer semelhantes, eles pertencem a categorias diferentes de comandos SQL. DELETE é um comando de Linguagem de Manipulação de Dados (DML) usado para excluir todas ou algumas das linhas (usando a cláusula WHERE ) da tabela. TRUNCATE é um comando da linguagem de definição de dados (DDL). Ele exclui todas as linhas da tabela; não é possível usá-lo para excluir apenas algumas linhas. Outra diferença é que TRUNCATE não registra as alterações de cada linha no log, portanto, é mais rápido do que DELETE. DELETE apaga linha por linha, com cada exclusão registrada no log. 19. Qual é a diferença entre uma tabela e uma visualização no SQL Server? Resposta: Uma tabela é um objeto de banco de dados que é o principal armazenamento de dados em bancos de dados relacionais. Ela consiste em linhas e colunas e é armazenada na memória. Uma visualização é uma consulta armazenada que resulta em uma tabela virtual contendo linhas e colunas de dados. Uma visualização não contém dados em si e os gera somente quando é executada. Isso melhora a facilidade de uso e a segurança dos dados. Também economiza memória, pois o resultado da visualização não é armazenado na memória. 20. Você pode explicar os diferentes tipos de índices no SQL Server? Resposta: Esses índices são compatíveis com o SQL Server: Hash Não agrupado otimizado para memória Com cluster Não agrupado Único Armazenamento de colunas Índice com colunas incluídas Índice em colunas computadas Filtrado Espacial XML Texto completo As duas principais categorias de índices são clusterizados e não clusterizados. Os índices agrupados fazem parte da estrutura da tabela e determinam a ordem física de armazenamento e classificação com base no valor da chave do índice. Só pode haver um índice clusterizado por tabela. Ao procurar os dados, a consulta percorre a tabela linha por linha até encontrar o índice especificado. Os índices não agrupados contêm valores-chave, sendo que cada valor-chave tem um ponteiro para a linha de dados que contém o valor-chave. Isso significa que a consulta vai diretamente para a linha de dados com um índice especificado; não há necessidade de percorrer todos os dados antes dela. Esses índices são estruturados e armazenados separadamente das tabelas indexadas. 21. Qual é a diferença entre uma função e um procedimento armazenado? Resposta: As funções são rotinas que retornam valores calculados e não podem fazer alterações nos objetos do banco de dados. Elas devem ter pelo menos um parâmetro e retornar algum resultado. No SQL Server, há uma distinção entre funções incorporadas e funções definidas pelo usuário. As funções incorporadas vêm com o SQL Server e são divididas nas seguintes categorias: As funções agregadas executam um cálculo em um grupo de linhas (ou seja, usando GROUP BY e valores de coluna compartilhados) e retornam um único valor para todo o grupo. As funções analíticas executam cálculos no conjunto de linhas relacionadas à linha atual. Essas são funções de janela agregada. As funções de manipulação de bits tornam mais eficiente o trabalho com informações binárias. As funções de classificação (ou seja, funções de janela de classificação) classificam as linhas e/ou os dados em uma ordem específica. As funções deconjunto de linhas contêm conjuntos de linhas com todos os valores de coluna. Elas podem ser referenciadas em vez de tabelas em instruções T-SQL. As funções escalares recebem um parâmetro e retornam um valor. As funções definidas pelo usuário têm todas as características das funções incorporadas, mas são criadas pelos usuários. Você pode criá-las, armazená-las e chamá-las sempre que quiser. Os procedimentos armazenados são instruções SQL pré-compiladas que executam repetidamente um conjunto de ações. Diferentemente das funções, os procedimentos armazenados não precisam de um parâmetro, não precisam retornar um resultado e podem modificar objetos do banco de dados. INSERTOs comandos , UPDATE e DELETE são permitidos nos procedimentos armazenados, mas não nas funções. As funções funcionam com SELECT, WHERE e HAVING; os procedimentos armazenados não funcionam. Os procedimentos armazenados podem usar transações e chamar funções. Entretanto, as funções não podem usar transações nem podem chamar procedimentos armazenados. 22. Qual é a diferença entre uma tabela temporária e uma variável de tabela? Resposta: As tabelas temporárias são o armazenamento temporário de um resultado de consulta. Elas só estão disponíveis para a sessão em que foram criadas. Uma variável de tabela é uma variável local que, como a tabela temporária, armazena dados temporariamente. As variáveis de tabela são usadas em funções, procedimentos armazenados e lotes. Como as tabelas temporárias são tabelas reais, elas são mais adequadas para grandes quantidades de dados do que as variáveis de tabela. Isso significa que você pode usar os comandos SELECT INTO, ALTER TABLE e TRUNCATE com tabelas temporárias. É possível criar índices ou fazer qualquer coisa que você faria com uma tabela "regular". As tabelas temporárias também podem ser usadas em transações e procedimentos armazenados, mas não podem ser usadas nas funções. 23. O que é um acionador? Quando você usaria um? Resposta: Um acionador é um tipo de procedimento armazenado que é executado automaticamente (ou seja, é acionado) quando ocorre um evento específico. Os acionadores de DML são ativados quando um usuário tenta modificar os dados na tabela usando INSERT, UPDATE ou DELETE. Os acionadores de DDL são executados quando os usuários usam CREATE, ALTER ou DROP. Há também acionadores de logon que são ativados quando um usuário estabelece uma conexão com o SQL Server. Um exemplo de uso de um acionador DML é em uma tabela que armazena dados sobre funcionários, incluindo o salário. Você pode criar um acionador para cada vez que alguém alterar as informações sobre um funcionário; o acionador armazenará as informações alteradas em uma tabela separada. Dessa forma, você poderia ter uma visão geral do histórico das alterações nas informações de cada funcionário. 24. Qual é a diferença entre Commit e Rollback? Resposta: COMMIT TRANSACTION salva permanentemente todas as modificações de dados feitas por uma transação. ROLLUP TRANSACTION permite que você desfaça todas as alterações ocorridas desde a última confirmação das alterações da transação. SQL Avançado Perguntas da entrevista sobre o servidor Vamos nos aprofundar no conhecimento do SQL Server e abordar várias perguntas avançadas da entrevista. Você pode encontrar mais perguntas avançadas e exemplos de codificação neste artigo. 25. Você pode explicar os diferentes tipos de replicação no SQL Server? Resposta: A replicação transacional é uma replicação quase em tempo real da cópia do banco de dados principal (publicador) para o banco de dados para o qual ela é replicada (assinante). Na replicação de mesclagem, todas as alterações feitas off-line são feitas sempre que os dois bancos de dados são conectados. É semelhante à replicação transacional, mas as alterações são feitas tanto no publicador quanto no assinante. A replicação de instantâneos faz um instantâneo da cópia do banco de dados principal em um determinado momento e replica seus dados para outro banco de dados. A replicação ponto a ponto é uma variação da replicação de transação que permite a replicação em qualquer número de servidores. A replicação transacional bidirecional replica dados entre dois servidores, com ambos os servidores publicando e assinando os dados do outro servidor. A replicação de assinaturas atualizáveis ocorre quando, após a alteração ter sido feita no banco de dados do assinante, esses dados são primeiro passados para uma cópia do banco de dados principal. Somente depois disso é que são replicados para outros assinantes. 26. Explique os diferentes tipos de bloqueios no SQL Server. Resposta: No gerenciamento de banco de dados, os bloqueios são um meio de o SQL Server garantir a simultaneidade das transações em um ambiente em que vários usuários acessam o mesmo banco de dados ao mesmo tempo. Quando o SQL Server processa uma consulta, ele decide quais recursos de dados serão usados e como. Ao concluir uma consulta, ele também decide o tipo de bloqueio que será aplicado para proteger o recurso de dados. Veja a seguir os tipos de modos de bloqueio no SQL Server: O modo de bloqueiocompartilhado (S) é usado para instruções somente de leitura, por exemplo, SELECT. Ele torna os dados disponíveis somente para leitura. Isso significa que, enquanto a consulta estiver sendo executada, ele não permitirá que os dados sejam alterados. O modo de bloqueioUpdate (U) é usado em dados que serão atualizados. Ao contrário do modo de bloqueio S, somente uma transação pode manter um bloqueio U; isso garante que os deadlocks sejam evitados. Quando a transação estiver pronta para atualizar os dados, o modo de bloqueio mudará para bloqueio X. O modo de bloqueioexclusivo (X) é usado para garantir que somente uma transação possa atualizar os mesmos dados de cada vez. É usado com comandos como INSERT, UPDATE e DELETE. O modo de bloqueio deintenção (I) garante que uma hierarquia de bloqueio seja estabelecida. Ele informa outras transações sobre a intenção de impor um bloqueio S ou X, impedindo assim que outra transação os imponha. Há três bloqueios de intenção: intenção compartilhada (IS), intenção exclusiva (IX) e compartilhada com intenção exclusiva (SIX). O modo de bloqueio deesquema (Sch) é usado para operações dependentes de esquema. O bloqueio de modificação do esquema (Sch-M) para instruções DDL (CREATE, ALTER, DROP) impede o acesso aos dados enquanto a estrutura do objeto está sendo modificada. O bloqueio de estabilidade do esquema (Sch-S) é usado quando transações dependentes do esquema estão sendo executadas. Ele permitirá todos os outros bloqueios, exceto o Sch-M. O modo de bloqueioBulk Update (BU) é imposto quando os dados são copiados em massa e a dica TABLOCK é especificada. O modo de bloqueio de intervalo de chaves é usado em níveis de isolamento de transações serializáveis. Isso evita leituras fantasmas, ou seja, quando a mesma consulta retorna resultados diferentes a cada vez que é executada. 27. Qual é a diferença entre um deadlock e um livelock? Resposta: Um deadlock ocorre quando dois ou mais processos bloqueiam a aquisição de um bloqueio entre si. Em outras palavras, é quando cada processo tem um bloqueio em uma parte dos dados e tenta adquirir um bloqueio em outra parte dos dados que está bloqueada por outro processo. O SQL Server encerrará um dos processos. Caso contrário, o deadlock continuaria para sempre. Um livelock ocorre quando os bloqueios compartilhados se sobrepõem, impedindo que outro processo adquira um bloqueio exclusivo. 28. Qual é a diferença entre uma visualização materializada e uma não materializada? Resposta: As visualizações materializadas são visualizações lógicas de dados com sua saída salva em uma tabela, exigindo que a consulta seja executada apenas uma vez. Elas aumentam o desempenho, pois o resultado pode ser indexado (é uma tabela!). Por outro lado, o resultado pode não ser recente se a saída da visualização materializada não tiver sido atualizada. As visualizações não materializadas também são visualizações lógicas de dados, mas sua saída não é salva em lugar algum. Uma desvantagem é que você deve executar a visualização sempre que quiser usar o resultado. Em uma observação mais positiva, você tem a garantia de obter os dados mais recentes. 29. Qual é a diferença entre transações implícitas e explícitas? Resposta: As transações explícitas são iniciadas com BEGIN TRANSACTION; a alteração nos dados é confirmada com COMMIT TRANSACTION. Para as transações implícitas, o SQL Server toma a iniciativa de iniciá-las implicitamente (sem o comando BEGIN TRANSACTION ). Ainda assim, elas precisam ser confirmadas ou revertidas explicitamente pelo usuário. Se o modo implícito estiver ativado, essas são as palavras-chave que iniciarão a transação implícita: BEGIN TRANSACTION CREATE UPDATE DELETE DROP FETCH INSERT OPEN GRANT REVOKE SELECT ALTER TRUNCATE Está pegando o jeito das perguntas da entrevista sobre o SQL Server? Esperamos que sim! As 29 perguntas de entrevista que apresentamos (e respondemos) incluem perguntas gerais, de T-SQL, intermediárias e avançadas sobre o SQL Server. A categoria de perguntas sobre T-SQL contém o maior número de perguntas, o que reflete sua importância. Como dissemos no início, escrever consultas T-SQL é um requisito compartilhado por todos os trabalhos de dados que trabalham com bancos de dados relacionais de qualquer forma. Portanto, ao se preparar para uma entrevista, você não deve descartar outras perguntas como desnecessárias. Em termos de gerenciamento de tempo, você deve se concentrar em dominar o T-SQL. O SQL de A a Z no MS SQL Server é uma plataforma perfeita para isso! Agora, cabe a você praticar e ser um craque na entrevista de emprego! Tags: sql server perguntas de entrevistas sql