¿Cuáles son las preguntas para probar el conocimiento de SQL de un programador? [cerrado]

14

¿Cuáles son las preguntas para probar el conocimiento de SQL de un programador? ¿Cuál es la respuesta a la pregunta? ¿Y qué significaría la falta de una respuesta correcta en términos de tiempo que es probable que comprenda los conceptos relacionados con la pregunta?

GOOGLED: desafío de sql

    
pregunta blunders 10.10.2010 - 22:13
fuente

5 respuestas

20

Depende de lo difícil que quieras que sea. Además, desconfío un poco de darle una respuesta porque la mayoría de los problemas de SQL tienen múltiples formas aceptables de hacer las cosas y también hay formas de resolver los problemas de SQL de manera descuidada que causarán otros problemas. La persona que "califica" la respuesta definitivamente necesita poder resolverla por sí misma.

Dicho esto, aquí hay algunos que se me ocurrieron en la cabeza.

Nivel extremadamente fácil:
Dada una tabla de empleados con las columnas EmpID, FirstName, Lastname, HireDate y TerminationDate:
Escriba una consulta para devolver a todos los empleados que aún trabajan para la compañía con apellidos que comienzan con "Smith" ordenados por apellido y luego nombre.

Nivel fácil
Dada la tabla de empleados anterior, más una nueva tabla "Revisiones anuales" con las columnas EmpID y ReviewDate:
Escriba una consulta para devolver a todos los empleados que nunca han tenido una revisión ordenada por HireDate.

Nivel medio Teniendo en cuenta la tabla de empleados de arriba, escriba una consulta para calcular la diferencia (en días) entre el empleado con mayor o menor titular que aún trabaja para la empresa.

Nivel difícil
Dada la tabla de empleados anterior, escriba una consulta para calcular el período más largo (en días) que la empresa ha pasado sin contratar ni despedir a nadie.

Nivel más difícil
Nuevamente, utilizando las mismas tablas, escriba una consulta que devuelva a cada empleado y para cada fila / empleado incluya el mayor número de empleados que trabajaron para la compañía en cualquier momento durante su permanencia y la primera fecha en que se alcanzó el máximo. Puntos extra por no usar cursores.

    
respondido por el JohnFx 11.10.2010 - 04:36
fuente
4

En general, solo asisto a entrevistas para especialistas en datos, por lo que mis preguntas tienden a ser difíciles. Pero una cosa que requeriría de cualquiera que esté escribiendo SQL es el conocimiento de las combinaciones y cuándo usar una combinación a la izquierda frente a una combinación interna. Cualquier persona que no entienda que no tiene ningún tipo de negocio al consultar una base de datos de ninguna forma o forma.

Otra cosa que haría es asegurarme de que entiendan cómo hacer un GRUPO POR y usar las funciones de Agregado.

Y la diferencia entre UNION y UNION ALL ha eliminado a muchos candidatos pobres en mi trabajo.

    
respondido por el HLGEM 30.10.2011 - 20:06
fuente
2

Le preguntaría a "¿Por qué y cómo debería sanear los valores de entrada dados por el usuario que se usarán en una consulta SQL?"

Esto es necesario para evitar las inyecciones de SQL, y ser capaz de responder requiere un buen conocimiento sobre la sintaxis y los comandos de SQL (como SELECT , UPDATE , DROP , DELETE , etc.), también cómo se pueden evitar esos mediante el uso de comentarios SQL para interrumpir una consulta e inyectar lo que el usuario maligno podría desear hacer.

    
respondido por el gablin 10.10.2010 - 22:59
fuente
2

Participé en el desarrollo de una prueba técnica para programadores de bases de datos. Las preguntas fueron lo que considero bastante básicas: escriba las sentencias CREATE TABLE para una estructura de tabla dada; hacer algunas consultas simples; etc.

La mayoría de los solicitantes de empleo que se llamaron a sí mismos expertos en SQL suspendieron la prueba. Uno dijo que aunque había sido un desarrollador de SQL durante muchos años, nunca había escrito una declaración CREATE TABLE porque la GUI lo hizo por él.

Hemos tenido experiencias similares con otras pruebas técnicas. Para el personal de soporte de Windows, las tareas son similares a "crear un usuario de dominio", "agregar una impresora", "cambiar permisos en un archivo". La mayoría de las personas no pueden hacer esas tareas, especialmente bajo presión. Creemos que si puedes hacer incluso las cosas simples, probablemente seas bastante competente.

    
respondido por el Barry Brown 31.10.2011 - 08:41
fuente
0

Si prefiere hacer más preguntas abiertas: haga preguntas generales sobre los tipos de datos DATE, DATETIME ... Pregunte sobre las diferencias entre diferentes implementaciones / productos de proveedores. Hable sobre las herramientas de línea de comandos, cargadores masivos, impresoras bonitas ... tal vez pueda aprender un nuevo truco durante la entrevista.

    
respondido por el knb 30.10.2011 - 21:49
fuente

Lea otras preguntas en las etiquetas