Como linguagem de programação padrão para gerenciamento de banco de dados (e uma das linguagens de programação mais populares em todos os setores), o SQL é essencial para qualquer organização que queira aproveitar o poder dos dados.
Empresas de todos os tamanhos e setores dependem de desenvolvedores de SQL para consultar dados e realizar análises de dados; encontrar o especialista em SQL certo ou a equipe certa é uma etapa crucial para se tornar uma empresa orientada por dados.
Para fazer a contratação certa, é importante organizar um processo de recrutamento em várias etapas que identifique os candidatos com a experiência em SQL e a ética de trabalho certas para sua organização. As entrevistas podem sondar ambas as áreas, mas como consomem muitos recursos, recomendamos que você as utilize após um teste inicial de habilidades de programação, como, por exemplo:
Um teste de operações de banco de dados SQLite de baixa complexidade para funções de nível básico
Um teste de consulta SQLite de média complexidade para funções de nível intermediário
Umteste de consulta SQLite de alta complexidade para funções de nível sênior
Para aproveitar ao máximo seu processo de entrevista, considere usar nossas perguntas de entrevista sobre SQL Server e exemplos de respostas abaixo.
Dividimos as 50 perguntas nas categorias iniciante, intermediário e avançado, para que você possa adaptar o processo de entrevista às necessidades do seu negócio.
As perguntas de entrevista sobre SQL para iniciantes são mais usadas para funções de servidor SQL de nível básico, onde o candidato provavelmente terá experiência profissional limitada com SQL.
Exemplo de resposta:
Um sistema de gerenciamento de banco de dados relacional (SGBDR) refere-se ao software usado para armazenar, gerenciar e consultar dados. Os dados são armazenados em tabelas e podem ser vinculados a outros conjuntos de dados com base em informações compartilhadas, daí o nome “relacional”.
Exemplo de resposta:
As principais diferenças entre Sistemas de Gerenciamento de Banco de Dados Relacionais (SGBDR) e Sistemas de Gerenciamento de Banco de Dados (SGBD) são:
Um SGBDR armazena dados em uma tabela relacional com linhas e colunas, enquanto um SGBD armazena dados como um arquivo
Um SGBDR fornece acesso a vários usuários (incluindo interação cliente-servidor), enquanto um SGBD suporta apenas usuários únicos
Exemplo de resposta:
Alguns dos SGBDRs mais populares são:
Oracle Database
MySQL
Microsoft SQL Server
PostgreSQL
IBM DB2
SQLite
Exemplo de resposta:
SQL é uma linguagem de programação usada para executar tarefas relacionadas a dados; todo SGBDR usa SQL como linguagem de programação padrão. Nesses bancos de dados, o SQL permite aos usuários criar tabelas, atualizar dados, fazer consultas e realizar análises.
Exemplo de resposta:
SQL é a linguagem de programação usada em um SGBDR, enquanto MySQL é um exemplo de SGBDR. O MySQL foi um dos primeiros sistemas de banco de dados de código aberto do mercado e ainda é bastante popular hoje.
Exemplo de resposta:
O comando CREATE TABLE é usado para criar uma nova tabela em um SGBDR. Este comando solicita que os usuários preencham o nome da tabela, os nomes das colunas e os tipos de dados. O mesmo comando também pode ser usado para fazer cópias de tabelas existentes.
Exemplo de resposta:
Com SQL, o tipo de dados DATE é usado para armazenar dados ou valores de tempo no banco de dados. O formato para inserção de datas pode variar dependendo do SGBDR, mas geralmente é 'AAAA-MM-DD'.
Exemplo de resposta:
Uma consulta é uma solicitação de dados ou informações de um banco de dados. Existem dois tipos principais de consultas SQL:
Uma consulta select é uma consulta que agrupa dados de uma tabela para fins analíticos
Uma consulta de ação é uma consulta que altera o conteúdo do banco de dados com base em critérios especificados
Exemplo de resposta:
Uma subconsulta é uma consulta incorporada em outra instrução que requer várias etapas. A subconsulta fornece à consulta anexa informações adicionais necessárias para executar uma tarefa, como quando a conclusão de uma consulta depende primeiramente dos resultados de outra.
Exemplo de resposta:
O processo para realizar uma consulta select em SQL é o seguinte:
A instrução SELECT é usada para especificar as colunas que você deseja consultar
A instrução FROM é usada para especificar o determinado tabela que contém os dados
A instrução WHERE é usada para filtrar dados com base em condições especificadas
Exemplo de resposta:
Existem diversas instruções SQL para executar uma consulta de ação. Seus propósitos e procedimentos variam. Algumas das instruções de ação importantes incluem:
UPDATE modifica os valores dos campos em uma tabela
DELETE remove registros de uma tabela
CREATE TABLE cria uma nova tabela
INSERT INTO adiciona registros a uma tabela
Exemplo de resposta:
Restrições SQL são um conjunto de regras ou condições implementadas em um SGBDR para especificar quais dados podem ser inseridos, atualizados ou excluídos em suas mesas. Isso é feito para manter a integridade dos dados e garantir que as informações armazenadas nas tabelas do banco de dados sejam precisas.
Exemplo de resposta:
A cláusula join combina colunas com valores relacionados de duas ou mais tabelas para criar uma nova tabela. Existem quatro tipos principais de cláusulas join no SQL:
JOIN retorna registros com valores correspondentes em ambas as tabelas
LEFT JOIN retorna todos os registros da tabela esquerda e os registros correspondentes da tabela direita
RIGHT JOIN retorna todos os registros da tabela direita e registros correspondentes da tabela esquerda
FULL JOIN retorna todos os registros de ambas as tabelas
Exemplo de resposta:
Um índice SQL armazena partes importantes de uma tabela de banco de dados para permitir uma pesquisa rápida e eficiente. Em vez de pesquisar todo o banco de dados, os usuários só precisam consultar o índice durante a recuperação dos dados. Os índices, portanto, ajudam a melhorar o desempenho em um SGBDR.
Exemplo de resposta:
Um valor NULL indica que os dados são desconhecidos. Isto não é o mesmo que 0; valores NULL significam que nenhum dado é armazenado.
Exemplo de resposta:
Comandos SQL são usados para executar tarefas específicas no banco de dados. Existem cinco tipos principais:
Comandos de Data Definition Language (DDL) alteram a estrutura do banco de dados
Comandos de Data Manipulation Language (DML) modificam dados em tabelas de banco de dados
Comandos de Data Control Language (DCL) gerenciam o acesso do usuário ao banco de dados
Comandos de Transaction Control Language (TCL) gerenciam transações feitas por comandos DML
Comandos de Data Query Language (DQL) recuperam informações do banco de dados
Exemplo de resposta:
Aliases são nomes temporários dados a tabelas ou colunas durante uma consulta SQL específica. Seu objetivo é reduzir a quantidade de código necessária para aquela consulta, economizando tempo e esforço.
Você pode usar essas perguntas intermediárias de entrevista sobre SQL abaixo para cargos em SQL de nível médio, onde os candidatos já têm alguma experiência profissional no uso de SQL.
Exemplo de resposta:
Normalização é o processo de dividir dados em tabelas para remover dados redundantes e melhorar a integridade dos dados.
Desnormalização é usada para combinar múltiplas tabelas para reduzir o tempo necessário para realizar consultas.
Exemplo de resposta:
A sintaxe para criar um índice pode variar dependendo do SGBDR. Na maioria dos sistemas, a instrução CREATE INDEX é usada para iniciar o processo. O usuário é então solicitado a nomear o índice e selecionar as colunas que irão compor o índice.
Exemplo de resposta:
Aqui estão algumas das restrições SQL mais comumente usadas:
NOT NULL garante que uma coluna não pode conter um valor NULL
UNIQUE garante que todos os valores em uma coluna sejam diferentes
DEFAULT fornece um valor padrão para uma coluna quando nenhum é especificado
INDEX cria um índice para fins de recuperação de dados
CHECK verifica valores em uma coluna em relação a certas condições especificadas
Exemplo de resposta:
As principais diferenças entre índices clusterizados e não clusterizados são:
Os índices clusterizados definem a ordem física na qual as tabelas são armazenadas e as classificam de acordo, enquanto os índices não clusterizados criam uma ordem lógica que não corresponde à ordem física das linhas no disco
Os índices clusterizados classificam as linhas de dados com base em seus valores-chave, enquanto os índices não clusterizados usam uma estrutura separada das linhas de dados
Só pode haver um índice clusterizado por tabela, considerando que pode haver vários índices não clusterizados por tabela
Exemplo de resposta:
Existem três tipos principais de subconsultas SQL. São elas:
Subconsultas de linha única, que retornam uma linha nos resultados
Subconsultas de múltiplas linhas, que retornam duas ou mais linhas nos resultados
Subconsultas correlacionadas, que retornam resultados de acordo com consultas externas
Exemplo de resposta:
O cursor permite que os usuários processem dados de um conjunto de resultados, uma linha por vez.
Os cursores são uma alternativa aos comandos, que operam em todas as linhas de um conjunto de resultados ao mesmo tempo. Ao contrário dos comandos, os cursores podem ser usados para atualizar dados linha por linha.
Exemplo de resposta:
Ordenação refere-se a um conjunto de regras ou condições que influenciam como os dados são armazenados e ordenados. Existem vários tipos de ordenação SQL, incluindo:
Case sensitive, que distingue entre caracteres maiúsculos e minúsculos
Accent sensitive, que distingue entre caracteres acentuados e não acentuados
Width sensitive, que distingue entre caracteres completos caracteres de largura total e meia largura
Exemplo de resposta:
A função MOD pode ser usada na maioria dos SGBDRs como parte da instrução WHERE em uma consulta de seleção para recuperar entradas de dados pares ou ímpares em uma mesa.
A formatação é a seguinte:
Para números pares, use 'MOD (nome da coluna, 2) = 1'
Para números ímpares, use 'MOD (nome da coluna, 2) = 0'
Exemplo de resposta:
Uma coluna pode ser renomeada seguindo estas etapas:
Use 'ALTER TABLE nome da tabela' para selecionar a tabela com a coluna que deseja renomear
Use 'RENAME COLUMN nome antigo para novo nome' para renomear a coluna
Exemplo de resposta:
As principais diferenças entre os comandos DELETE e TRUNCATE são:
DELETE é um comando DML, enquanto TRUNCATE é um comando DDL
DELETE remove registros e registra cada exclusão no log de transações, enquanto TRUNCATE desaloca páginas e registra cada desalocação no log de transações
TRUNCATE é geralmente considerado mais rápido, pois faz menos uso do log de transações
Exemplo de resposta:
Os dados de uma tabela podem ser copiados para outra seguindo estas etapas:
Use a instrução INSERT INTO e especifique o destino como a nova tabela
Use a instrução SELECT para especificar as colunas a serem copiadas (selecione todas se você deseja copiar a tabela completa)
Use a instrução WHERE para especificar a tabela que deseja copiar
Exemplo de resposta:
Encontrar entradas de dados pertencentes a um grupo específico (neste caso, funcionários pertencentes a um departamento específico) pode ser alcançado em poucos caminhos. Isso inclui:
Usar instruções SELECT, FROM e WHERE
Usar instruções SELECT, FROM, GROUP BY e HAVING
Use instruções SELECT, FROM, INNER JOIN e WHERE
Exemplo de resposta:
Uma coluna em uma tabela pode ser excluída seguindo estas etapas:
Use 'ALTER TABLE nome da tabela' para selecionar a tabela com a coluna que deseja excluir
Use 'DROP COLUMN nome da coluna' para selecionar a coluna que deseja excluir
Exemplo de resposta:
Você pode recuperar entradas de dados que começam com uma letra específica usando o comando LIKE seguindo estas etapas:
Use a instrução SELECT para especificar a coluna com os nomes que você deseja verificar
Use a instrução FROM para especificar a tabela que contém essa coluna
Use 'WHERE nome da coluna' seguido de 'LIKE x%', com x representando a letra que você está procurando
Use 'ORDER by nome da coluna ' para completar a consulta
Exemplo de resposta:
Valores de agregação são usados para realizar cálculos em um conjunto de valores para retornar um único valor. Algumas das funções de agregação mais utilizadas são:
AVG calcula o conjunto médio de valores
COUNT conta o número total de linhas em uma tabela
MIN encontra o valor mínimo em uma tabela
MAX encontra o valor máximo em uma tabela
SUM calcula o soma dos valores
Exemplo de resposta:
Um esquema refere-se a uma coleção de objetos de banco de dados (como tabelas, funções, índices e procedimentos) associados a um banco de dados.
O esquema ajuda a segregar objetos de banco de dados para diferentes aplicativos e direitos de acesso; geralmente é usado para definir quem pode e quem não pode visualizar objetos específicos no banco de dados.
Exemplo de resposta:
Funções escalares são funções definidas pelo usuário aplicadas a um conjunto de dados para retornar um único valor. Algumas das funções escalares mais comuns incluem:
UCASE converte valores em letras maiúsculas
LCASE converte valores para letras minúsculas
MID extrai dados textuais com base em critérios especificados
ROUND arredonda os dados numéricos para um número especificado de casas decimais
NOW retorna a data e hora atuais do sistema
Recomendamos usar AS perguntas de entrevista sobre SQL avançado abaixo ao recrutar para cargos seniores de SQL, onde os candidatos têm pelo menos alguns anos de experiência com SQL.
Exemplo de resposta:
Uma injeção de SQL é um tipo de ataque cibernético no qual hackers inserem código SQL malicioso no banco de dados para obter acesso a dados potencialmente valiosos ou informação sensível. É uma ocorrência bastante comum em aplicativos da web ou sites que usam um banco de dados baseado em SQL.
É possível evitar injeções de SQL criando múltiplas contas de banco de dados para limitar o acesso ou usando um firewall de aplicativo web de terceiros.
Exemplo de resposta:
Existem várias maneiras de otimizar consultas e melhorar o desempenho. Por exemplo:
Especifique colunas específicas com SELECT em vez de usar SELECT * (selecionar todas)
Faça junções com INNER JOIN em vez de WHERE
Defina filtros usando WHERE em vez de HAVING
Evite instruções em loop na estrutura de consulta
Evite subconsultas correlacionadas
Exemplo de resposta:
O processo de normalização SQL pode ser dividido em seis etapas ou tipos. Isso inclui:
Primeira forma normal (1NF) para garantir que linhas e colunas sempre contenham valores singulares e únicos
Segunda Forma Normal (2NF) para remover todas as dependências parciais
Terceira Forma Normal (3NF) para remover todas as dependências funcionais transitivas
Forma Normal Boyce-Codd (BCNF) ou Quarta Forma Normal (4NF) para garantir todas as dependências funcionais são uma superchave para a tabela
Quinta Forma Normal (5NF) para garantir que a decomposição não resulte em perda de dados
Exemplo de resposta:
ACID é um acrônimo para Atomicidade, Consistência, Isolamento e Durabilidade. Estas são as quatro propriedades principais para garantir a integridade dos dados durante uma transação.
A função de cada propriedade é a seguinte:
Atomicidade: As alterações nos dados são executadas como uma operação única e unificada
Consistência: Os valores dos dados são consistentes no início e no final da transação
Isolamento: O estado intermediário de uma transação fica oculto de outras transações
Durabilidade: As alterações nos dados permanecem as mesmas após a transação está concluído
Exemplo de resposta:
Procedimentos armazenados são pedaços de código SQL que podem ser salvos e reutilizados. Os principais tipos de procedimentos armazenados são:
Procedimentos armazenados definidos pelo usuário, que são criados pelos usuários
Procedimentos armazenados do sistema são procedimentos padrão colocados permanentemente no sistema
Procedimentos armazenados temporários são procedimentos que são descartados quando a sessão é fechada
Procedimentos armazenados remotos, que são criados e armazenados em servidores remotos
Exemplo de resposta:
Para encontrar funcionários com o mesmo salário, a seguinte solução pode ser usada:
Use a instrução SELECT para especificar a tabela relevante
Use a instrução FROM para especificar a coluna do funcionário
Use o Instrução WHERE para especificar os critérios salariais, por exemplo:
'WHERE salario IN
(SELECT salario
FROM funcionario
WHERE funcionario.id_do_funcionario <>funcionario.id_do_funcionario)'
Exemplo de resposta:
Existem várias maneiras de remover linhas duplicadas de uma tabela. Isso inclui:
Usar Expressões de Tabela Comuns (CTE) com a função ROW_NUMBER para identificar e remover linhas duplicadas
Usar a função RANK com a cláusula PARTITION BY
Usando a cláusula GROUP BY com a função COUNT e, em seguida, substituindo SELECT por DELETE FROM
Exemplo de resposta:
Um gatilho é um tipo de procedimento armazenado executado quando ocorre um evento específico, como quando um novo registro é adicionado ao base de dados.
A criação do gatilho varia dependendo do SGBDR. Alguns sistemas apresentam uma instrução CREATE TRIGGER, enquanto outros exigem que os usuários naveguem até uma pasta de gatilhos na barra de ferramentas. Uma vez criado, o usuário deve escrever o código do gatilho, especificando suas condições e efeitos.
Exemplo de resposta:
As principais diferenças entre as cláusulas HAVING e WHERE do SQL são:
O WHERE é usada em operações de linha, enquanto a cláusula HAVING é usada em operações de coluna
A cláusula WHERE vem antes de GROUP BY em uma consulta, enquanto a cláusula HAVING vem depois de GROUP BY
A cláusula WHERE não pode ser usada com funções agregadas, ao contrário da cláusula HAVING
Exemplo de resposta:
Criptografar bancos de dados com informações confidenciais é crucial por motivos de segurança. A criptografia pode ser implementada de diversas maneiras. Por exemplo, você poderia:
Criar uma chave mestra
Usar criptografia simétrica
Crie um certificado protegido pela chave mestra
Exemplo de resposta:
Uma subconsulta correlacionada pode ser usada para encontrar o sexto funcionário com maior salário em uma tabela. As etapas são as seguintes:
Use a instrução SELECT para especificar o nome do funcionário e as colunas de salário
Use a instrução FROM para especifique a tabela relevante
Use a instrução WHERE para especificar os critérios salariais, por exemplo:
'‘Instrução WHERE 6-1 = (SELECT COUNT(DISTINCT salario) FROM #Funcionario e2
WHERE e2.salario > e1.salario)'
Exemplo de resposta:
Existem vários métodos para evitar entradas duplicadas ao fazer uma consulta, como:
Crie um índice exclusivo
Adicione a palavra-chave DISTINCT à instrução SELECT
Use os comandos NOT EXISTS ou NOT IN
Exemplo de resposta:
As principais diferenças entre um cursor implícito e um cursor explícito são:
Cursores implícitos são criados automaticamente quando as instruções select são executadas, enquanto os cursores explícitos precisam ser definidos explicitamente pelo usuário
Os cursores implícitos só podem recuperar dados de uma única linha por vez, enquanto os explícitos podem recuperar dados de múltiplas linhas
Cursores implícitos são menos eficientes e mais propensos a erros em comparação com cursores explícitos
Exemplo de resposta:
O processamento de transações on-line (OLTP) e o processamento analítico on-line (OLAP) são dois sistemas de processamento de dados diferentes no campo da ciência de dados.
Os sistemas OLTP capturam, armazenam e atualizam dados regularmente, enquanto os sistemas OLAP são usados para consultar e realizar análises desses dados.
Exemplo de resposta:
SQL dinâmico é uma técnica de programação usada para construir instruções SQL em tempo de execução, e não em tempo de compilação. O SQL dinâmico é mais desafiador e menos eficiente que o SQL estático, mas permite que os desenvolvedores criem aplicativos mais flexíveis e de uso geral.
Exemplo de resposta:
Três tipos de relacionamentos podem existir entre um par de tabelas de banco de dados. São eles:
Um para um, onde cada registro em uma tabela pode ser relacionado a um registro na tabela emparelhada
Um para muitos, onde cada registro em uma tabela pode estar relacionado a um ou mais registros na tabela emparelhada
Muitos para muitos, onde cada registro em ambas as tabelas pode ser relacionado a um ou mais registros na tabela emparelhada
A entrevista é uma das últimas e mais importantes etapas do processo de recrutamento. Nele, você avalia habilidades sociais e técnicas, portanto, precisa escolher as perguntas da entrevista com sabedoria: elas lhe dão a oportunidade de avaliar as habilidades e o comportamento de SQL dos candidatos. Encontrar a combinação certa em ambas as frentes é imperativo.
As perguntas acima cobrem a primeira parte e permitem avaliar com precisão as habilidades de programação em SQL dos candidatos.
Os requisitos de SQL variam dependendo do sistema de banco de dados usado pela sua organização. Com isso em mente, adapte suas perguntas, sempre que possível, aos requisitos da função. Também é possível personalizar seu processo de seleção em seus estágios iniciais, incorporando uma avaliação de habilidades SQL direcionada.
As avaliações de habilidades em SQL são um recurso inestimável, pois permitem avaliar a competência do candidato em primeira mão; algo que as perguntas da entrevista não são capazes de oferecer. A TestGorilla oferece diversas avaliações de SQL adaptadas a diferentes requisitos de negócios e níveis de habilidade:
Um teste de operações de banco de dados SQLite de baixa complexidade para posições de nível de entrada
Um teste de Consultas SQLite de complexidade média para posições de nível médio
Um teste de Consultas SQLite de alta complexidade para cargos de nível sênior
As avaliações de habilidades são melhor utilizadas após a seleção inicial, mas podem até substituir essa etapa, pois permitem filtrar rapidamente os candidatos inadequados.
Você pode acompanhá-los com uma entrevista informal por telefone e uma tarefa específica para o cargo para os candidatos pré-selecionados. Este sistema ajuda você a selecionar os melhores candidatos para uma entrevista e reduz o tempo de contratação e custo por contratação.
Implementando uma entrevista estruturada como parte de um processo seletivo rigoroso e de vários estágios, você pode identificar o especialista em SQL certo para sua empresa.
Lembre-se: o objetivo do recrutamento não é encontrar o candidato com o conjunto de habilidades em SQL mais amplo, mas aquele que melhor atenda às suas necessidades de negócios.
Encontrar o ajuste perfeito transformará sua estratégia de análise de dados, permitindo que sua organização permaneça à frente da curva nos próximos anos.
Os testes de SQL da TestGorilla podem ajudar você a encontrar os desenvolvedores SQL certos de forma rápida e sem vieses. Comece hoje mesmo gratuitamente e comece a melhorar suas decisões de contratação.
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.