O que são perguntas para testar um conhecimento de SQL por programadores? [fechadas]

14

Quais são as perguntas para testar um conhecimento de SQL por programadores? Qual é a resposta para a pergunta? E o que uma falta de uma resposta correta significa em termos de tempo para entender o (s) conceito (s) relacionado (s) à questão?

GOOGLED: desafio do sql

    
por blunders 10.10.2010 / 22:13
fonte

5 respostas

20

Depende de quão difícil você quer que seja. Além disso, estou um pouco desconfiado em dar-lhe a resposta, porque a maioria dos problemas de SQL tem várias maneiras aceitáveis de fazer as coisas e também há maneiras de resolver problemas de SQL de maneira desleixada que causam outros problemas. A pessoa que "classifica" a resposta definitivamente precisa ser capaz de resolvê-la por conta própria.

Dito isto, eis alguns que surgiram da minha cabeça.

Nível extremamente fácil:
Dada uma tabela de funcionários com as colunas EmpID, FirstName, Lastname, HireDate e TerminationDate:
Escreva uma consulta para retornar todos os funcionários que ainda trabalham para a empresa com sobrenomes que começam com "Smith", classificados por sobrenome e nome.

Nível Fácil
Dada a tabela Employee acima, mais uma nova tabela "AnnualReviews" com as colunas EmpID e ReviewDate:
Escreva uma consulta para retornar todos os funcionários que nunca tiveram um comentário classificado por HireDate.

Nível médio Dada a tabela de empregados acima, escreva uma consulta para calcular a diferença (em dias) entre o empregado com menor e mais baixa qualidade que ainda trabalha para a empresa?

Nível difícil
Dada a tabela de funcionários acima, escreva uma consulta para calcular o período mais longo (em dias) que a empresa passou sem contratar nem demitir ninguém.

Nível mais difícil
Novamente usando as mesmas tabelas, escreva uma consulta que retorne a cada funcionário e para cada linha / funcionário inclua o maior número de funcionários que trabalhou para a empresa a qualquer momento durante o mandato e a primeira data em que o máximo foi atingido. Pontos extras por não usar cursores.

    
por 11.10.2010 / 04:36
fonte
4

Eu geralmente só faço entrevistas para especialistas em dados, então minhas perguntas tendem a ser difíceis. Mas uma coisa que eu exigiria de qualquer pessoa que escrevesse SQL seria o conhecimento de junções e quando usar uma junção esquerda versus uma junção interna. Qualquer um que não entenda que não tem nenhum negócio consultando um banco de dados de qualquer maneira ou formulário.

Outra coisa que gostaria de fazer é garantir que eles entendam como fazer um GROUP BY e usar as funções Aggregate.

E a diferença entre UNION e UNION ALL eliminou muitos candidatos pobres no meu trabalho.

    
por 30.10.2011 / 20:06
fonte
2

Eu perguntaria "Por que e como você deve limpar os valores de entrada fornecidos pelo usuário que serão usados em uma consulta SQL?"

Isso é necessário para evitar injeções de SQL e ser capaz de responder requer um bom conhecimento sobre sintaxe e comandos do SQL (como SELECT , UPDATE , DROP , DELETE , etc.), bem como esses podem ser contornados pelo uso de comentários SQL para quebrar uma consulta e injetar o que o usuário maligno pode desejar fazer.

    
por 10.10.2010 / 22:59
fonte
2

Eu participei do desenvolvimento de um teste técnico para programadores de bancos de dados. As questões eram o que eu considero bastante básicas: escrever as instruções CREATE TABLE para uma dada estrutura de tabela; faça algumas consultas simples; etc.

A maioria dos candidatos a emprego que se chamavam especialistas no SQL foi reprovado no teste. Um deles disse que, apesar de ter sido um desenvolvedor de SQL por muitos anos, ele nunca havia escrito uma instrução CREATE TABLE porque a GUI fazia isso por ele.

Tivemos experiências semelhantes com outros testes técnicos. Para a equipe de suporte do Windows, as tarefas são semelhantes a "criar um usuário de domínio", "adicionar uma impressora" e "alterar permissões em um arquivo". A maioria das pessoas não pode realizar essas tarefas, especialmente sob pressão. Nós achamos que se você pode fazer até mesmo as coisas simples, você provavelmente é muito competente.

    
por 31.10.2011 / 08:41
fonte
0

Se preferir fazer mais perguntas em aberto: faça perguntas gerais sobre os tipos de dados DATE, DATETIME .... Pergunte sobre diferenças entre diferentes implementações / produtos de fornecedores. Fale sobre ferramentas de linha de comando, carregadores em massa, impressoras bonitas ... talvez você possa aprender um novo truque durante a entrevista.

    
por 30.10.2011 / 21:49
fonte

Tags