Se seu objetivo é contratar um desenvolvedor SQL com habilidades voltadas para dados, é fundamental usar avaliações de habilidades e realizar entrevistas.
Avaliações de habilidades que incluem um teste de Nível Intermediário de SQLite (Codificação) lhe mostrarão quais candidatos têm as melhores habilidades. O processo de entrevistas o ajudará a discutir as vantagens do cargo, a manter os candidatos engajados e a saber se eles têm a experiência em SQL de nível sênior de que você precisa.
Você precisa de uma série de perguntas perspicazes para concluir uma entrevista com os candidatos. Mas como escolher as perguntas corretas? Faça as perguntas apresentadas nesse artigo a seus candidatos para avaliar a experiência e as competências deles.
Essa lista de 25 perguntas avançadas para entrevistas sobre SQL testa os conhecimentos dos candidatos sobre comandos, processos e bancos de dados.
A normalização é um método que os desenvolvedores usam para organizar os dados em um banco de dados, com o objetivo de minimizar a redundância de dados e melhorar sua integridade. Ela envolve a reestruturação do banco de dados para seguir uma forma normal específica.
As melhores respostas também descreverão algumas das formas normais mais usadas, como as seguintes:
1NF: todas as colunas da tabela contêm apenas valores atômicos (o que significa que não podem ser divididas). Cada coluna tem apenas um valor para cada linha da tabela.
2NF: o banco de dados satisfaz as condições de 1NF; além disso, todos os atributos que não são chaves são funcionalmente dependentes da chave primária.
3NF: as relações estão em 3NF se estiverem em 2NF e não tiverem dependências transitivas (o que significa que nenhuma coluna que não seja chave depende de outra coluna que não seja chave).
BCNF: Essa forma normal também é conhecida como forma normal de Boyce-Codd. Ela estende a 3NF de forma que as dependências funcionais devem ser chaves candidatas ou superchaves.
Os candidatos com conhecimentos avançados de SQL saberão que DDL significa linguagem de definição de dados. Eles precisam saber que essa linguagem apresenta os comandos SQL que os desenvolvedores usam para definir o esquema do banco de dados e criar, excluir e alterar objetos do banco de dados.
Os candidatos qualificados conseguirão citar alguns dos objetos que podem ser alterados com a DDL, como os seguintes:
Tabelas
Catálogos
Variáveis
Índices
Eles também conhecerão alguns exemplos de comandos de DDL, como:
CREATE****: os desenvolvedores usam esse comando para criar objetos do banco de dados
DROP****: os engenheiros de SQL usam o comando "drop" para excluir objetos do banco de dados
ALTER****: os desenvolvedores usam esse comando para alterar a estrutura do banco de dados
TRUNCATE****: os desenvolvedores de SQL usam esse comando para remover todos os registros da tabela
DML significa linguagem de manipulação de dados. Essa linguagem inclui os comandos que os desenvolvedores usam para manipular dados em um banco de dados. Abaixo estão alguns exemplos de componentes de comando de DML que os desenvolvedores podem usar para controlar o acesso a um banco de dados:
INSERT****: insere dados em uma tabela
UPDATE****: atualiza dados em uma tabela
DELETE****: exclui registros da tabela do banco de dados
Os conhecimentos de banco de dados é fundamental para os desenvolvedores de SQL, porque eles usam essa linguagem para gerenciar dados em bancos de dados. Verifique se os candidatos sabem usar sistemas como MySQL ou PostgreSQL com a linguagem de programação SQL para executar operações complexas de bancos de dados.
Você pode testar os conhecimentos de bancos de dados dos candidatos com nosso teste de habilidades de MySQL ou o teste on-line de PostgreSQL.
Aqui estão algumas das principais diferenças entre DDL e DML que os candidatos podem citar:
As instruções de DDL definem a estrutura e a organização de um banco de dados, enquanto a DML é usada para adicionar e modificar dados no banco de dados
Os comandos de DDL afetam todo o banco de dados ou objetos específicos do banco de dados, enquanto os comandos de DML afetam linhas ou conjuntos de dados específicos dentro das tabelas do banco de dados
A cláusula WHERE é mais usada em comandos de DML do que em comandos de DDL
Verifique se os candidatos também conseguem citar alguns exemplos de comandos de DDL e DML para comprovar seus conhecimentos de SQL.
ACID é a sigla de atomicidade, consistência, isolamento e durabilidade. Essas propriedades descrevem os recursos de processamento de transações e se aplicam à arquitetura de qualquer banco de dados relacional moderno. Os desenvolvedores precisam saber o que é ACID para garantir a maior integridade e consistência possível dos dados.
Para mostrar sua experiência em SQL, os candidatos precisam citar alguns métodos que os desenvolvedores podem usar para encontrar todas as duplicidades em uma tabela, como os seguintes:
Usando o comando GROUP BY para agrupar as linhas da tabela por colunas de destino e verificar se existem duplicidades
Usando o comando HAVING e a função COUNT para determinar se algum grupo tem várias entradas
Os desenvolvedores usam índices clusterizados para definir a ordem em que armazenam os dados em uma tabela. Os candidatos precisam saber que existe apenas um índice clusterizado por tabela, pois há apenas uma maneira de armazenar os registros.
Verifique se os candidatos sabem que os desenvolvedores criam índices clusterizados em uma coluna de chave primária, e que a chave primária permite criar o índice com base nessa coluna específica.
Os desenvolvedores precisam de conhecimentos de sintaxe em SQL para manipular dados em um banco de dados usando os comandos corretos e evitando erros. É importante verificar se os candidatos entendem comandos como SELECT e cláusulas como FROM. Eles também precisam saber como evitar erros de palavras-chave e o uso incorreto de aspas.
Lembre-se de fazer perguntas de acompanhamento sobre sintaxe e pesquisas para avaliar melhor os conhecimentos de sintaxe em SQL.
Um índice não agrupado é um tipo de índice que não classifica fisicamente as linhas de dados em uma tabela. A estrutura de um índice não agrupado é separada das linhas de dados. Ele usa uma estrutura de valor-chave na qual a chave contém os valores da coluna.
Esse tipo de índice pode ajudar os desenvolvedores a encontrar dados com mais eficiência, acelerando a recuperação de dados.
Os candidatos precisam saber a diferença entre índices clusterizados e não clusterizados. Eles devem explicar que os desenvolvedores usam índices clusterizados para classificar tabelas ou organizar dados em ordem alfabética, enquanto os registros de índices não clusterizados não correspondem à ordem física das linhas da tabela.
Se tiverem experiência com o uso de índices, é possível que os candidatos expliquem outras diferenças, como as seguir:
Os índices clusterizados são mais rápidos do que os não clusterizados
Os índices clusterizados exigem menos memória do que os não clusterizados
As tabelas podem ter apenas um índice clusterizado, mas vários não clusterizados
Os índices clusterizados definem a ordem dos dados em uma tabela, enquanto os índices não clusterizados definem a ordem dos dados em um índice
Desnormalização é quando os desenvolvedores adicionam intencionalmente redundância a bancos de dados relacionais normalizados. O objetivo da desnormalização é melhorar o desempenho de leitura do banco de dados nos casos em que a velocidade da consulta é mais importante do que uma estrutura de dados consistente ou a otimização do espaço.
Algumas ações que os desenvolvedores podem realizar para realizar a desnormalização são:
Uso de atributos extras em uma tabela
Adição de uma nova tabela
Criação de instâncias de tabelas
No contexto de bancos de dados, agrupamento é o conjunto de regras para classificação, propriedades de sensibilidade a maiúsculas e minúsculas e propriedades de sensibilidade a acentos para dados. Os desenvolvedores podem usar as configurações de agrupamento para indicar como o mecanismo do banco de dados deve gerenciar os dados de caracteres.
Verifique se os candidatos também sabem que os desenvolvedores podem acessar a lista de agrupamentos usando o seguinte comando:
SELECT * FROM sys.fn_helpcollations();
Para testar os conhecimentos dos candidatos sobre palavras-chave de SQL, pergunte se eles entendem o que a palavra-chave INNER JOIN faz. Os candidatos experientes saberão que essa palavra-chave seleciona registros com valores correspondentes em duas tabelas e une duas tabelas com base em sua coluna comum.
Os candidatos conseguem provar seus conhecimentos de palavras-chave SQL explicando que uma "outer join" recupera registros de duas tabelas, incluindo linhas não correspondentes. Eles também devem explicar que essa junção retorna as linhas restantes de uma tabela — em outras palavras, retorna valores de uma das tabelas ou de ambas.
Verifique se os candidatos sabem explicar que os desenvolvedores podem usar uma "full outer join" para retornar todas as linhas de ambas as tabelas, incluindo as linhas correspondentes e não correspondentes. Por outro lado, uma "outer join" retorna apenas as linhas correspondentes e as linhas não correspondentes de uma tabela.
Como os desenvolvedores de SQL podem usar as habilidades de PHP para interagir com sistemas populares de gerenciamento de bancos de dados SQL, como o MySQL, eles devem ter algum domínio dessa linguagem de script. Com esse conhecimento, eles podem criar praticamente qualquer tipo de site.
Portanto, é importante verificar se seus candidatos têm conhecimentos de PHP usando nosso teste de PHP (Codificação): Algoritmos de Nível Intermediário antes de escolher alguém para fazer parte de sua equipe.
Se sua empresa usa o Microsoft SQL Server, verifique se os candidatos sabem usar esse sistema de gerenciamento de bancos de dados relacionais para armazenar e recuperar dados. Para avaliar o conhecimento deles, faça-lhes perguntas de acompanhamento, como "Qual é a maneira ideal de interagir com o Microsoft SQL Server?"
Vale a pena avaliar as habilidades dos candidatos no Microsoft SQL Server, pois elas ajudam os desenvolvedores a realizar as seguintes tarefas:
Projetar bancos de dados
Manter bancos de dados
Validar a estabilidade dos bancos de dados
Para avaliar os conhecimentos dos candidatos sobre o Microsoft SQL Server, use nosso teste de Microsoft SQL Server para obter um método de contratação orientado por dados.
Ao responder a essa pergunta avançada da entrevista sobre SQL, é possível que os candidatos citem muitas vantagens de ter um índice, como as seguintes:
Os índices aceleram as consultas SELECT, permitindo que o banco de dados recupere os dados mais rapidamente
Os índices podem ser usados para garantir que os valores em uma coluna ou em várias colunas sejam exclusivos
Os desenvolvedores podem usar índices para classificar os dados em uma ordem específica
A indexação de texto completo permite que os desenvolvedores insiram e pesquisem grandes sequências de texto, tornando a busca mais eficiente
Faça essa pergunta avançada sobre SQL aos entrevistados para verificar se os conhecimentos deles correspondem a suas expectativas. Os candidatos precisam saber que os desenvolvedores usam uniões para combinar duas afirmações SELECT diferentes. Eles também precisam saber que as uniões eliminam dados duplicados das linhas que os desenvolvedores selecionam.
A seguir estão algumas das principais diferenças entre uma junção e uma união:
Uma junção busca registros que se combinam entre si em duas tabelas. Por sua vez, uma união combina dados de duas afirmações SELECTdiferentes.
Uma junção não elimina dados duplicados, enquanto uma união pode remover dados duplicados.
Verifique se os candidatos têm experiência suficiente com uniões e junções fazendo perguntas de acompanhamento, como "Descreva um projeto no qual você usou uma junção ou uma união para manipular dados".
Os desenvolvedores usam bloqueios compartilhados quando executam afirmações SELECT. Os bloqueios compartilhados reservam um recurso somente para fins de leitura e garantem que o desenvolvedor não altere o registro quando houver uma solicitação somente de leitura.
Dessa forma, os bloqueios compartilhados ajudam os desenvolvedores a garantir que várias solicitações somente de leitura possam acessar o mesmo recurso simultaneamente sem conflitos.
Os bloqueios compartilhados também impedem que outras transações modifiquem uma linha até que a transação seja concluída.
Candidatos experientes precisam saber que, quando as afirmações modificam dados, a transação mantém um bloqueio exclusivo nos dados. Um bloqueio exclusivo impede que outras transações acessem ou modifiquem os dados ao mesmo tempo para evitar conflitos.
Os desenvolvedores não podem remover o bloqueio até que a transação que o mantém emita um rollback ou um commit.
A transposição é um processo pelo qual os desenvolvedores podem alterar uma linha ou coluna para um formato específico para visualizar os dados de uma perspectiva diferente. Um método de transposição consiste em alterar uma coluna para uma linha ou vice-versa.
Verifique se os candidatos sabem que dois métodos comuns de transposição são a transposição dinâmica e a transposição unida e pergunte se eles podem explicar as vantagens desses métodos.
Os desenvolvedores podem encontrar vários problemas ao trabalhar com bancos de dados, portanto, precisam de habilidades de resolução de problemas para resolver essas questões e manter os dados seguros e eficientes. Eles devem usar essas habilidades para encontrar soluções para problemas do banco de dados e minimizar os transtornos que esses problemas podem gerar.
Use um teste de Resolução de Problemas para determinar se os candidatos conseguem resolver problemas e tomar as melhores decisões.
A maneira ideal de usar perguntas avançadas para entrevistas sobre SQL no processo seletivo é convidar os candidatos a preencher uma avaliação sobre SQL. Basta selecionar até cinco testes de habilidades para incluir na avaliação, enviá-la aos candidatos, aguardar o recebimento dos resultados e, em seguida, convidar os candidatos com melhor desempenho para uma entrevista.
Algumas vantagens de usar esse método são as seguintes:
É uma maneira fácil de criar um pool de candidatos
Você pode minimizar a parcialidade inconsciente durante a escolha dos candidatos para uma entrevista
Você não precisará analisar currículos ou perder os melhores talentos
Os resultados dos testes dos candidatos podem lhe dar ideias de outras perguntas a fazer durante a entrevista
Para avaliar uma gama completa de habilidades, você deve selecionar testes de habilidades técnicas e interpessoais e fazer perguntas avançadas para entrevistas sobre SQL que também testem tanto habilidades técnicas quanto interpessoais. Esse método o ajudará a reunir dados suficientes para avaliar os candidatos e verificar se as habilidades deles correspondem a suas exigências.
Com testes de pré-seleção e perguntas avançadas para entrevistas sobre SQL, será fácil contratar um candidato que atenda a suas expectativas. Esse método de contratação orientado por dados o ajudará a comparar rapidamente os candidatos e a excluir aqueles que não sejam qualificados.
Se quiser saber mais sobre a seleção completa de testes de pré-contratação que oferecemos, confira nossa biblioteca de testes de habilidades ou solicite uma rápida demonstração gratuita .
Agora você está pronto para contratar um desenvolvedor SQL especializado. Encontre os melhores talentos com testes de habilidades e perguntas avançadas para entrevistas sobre SQL.
Em minutos, você cria avaliações para selecionar as pessoas candidatas ideais, economizar tempo e contratar profissionais excelentes.
Sem spams. Cancele a assinatura quando quiser.
Com nossos testes, fica muito fácil encontrar a pessoa certa para sua vaga e tomar decisões acertadas e justas durante todo o processo.