SQL es el lenguaje de programación estándar para gestionar bases de datos (y uno de los lenguajes de programación más usados a nivel general). Es esencial para las organizaciones que buscan aprovechar todos los beneficios de los datos.
SQL es el lenguaje de programación estándar para gestionar bases de datos (y uno de los lenguajes de programación más usados a nivel general). Es esencial para las organizaciones que buscan aprovechar todos los beneficios de los datos.
Las empresas de todos los tamaños y sectores dependen de desarrolladores de SQL que consultan datos y los analizan. Para convertirse en una empresa impulsada por datos, es fundamental encontrar al especialista de SQL indicado.
Para contratar a las personas adecuadas, es importante organizar un proceso de reclutamiento de varias etapas que posibilite identificar a los candidatos que posean la experiencia de SQL indicada y una ética laboral compatible con tu organización. Las entrevistas permiten hacer hincapié en ambos aspectos; sin embargo, como demandan muchos recursos, recomendamos usarlas después de la prueba de habilidades de programación inicial, como las siguientes:
Una prueba de operaciones de bases de datos SQLite de baja complejidad para puestos que no requieren experiencia previa
Una prueba de consultas de SQLite de complejidad media para puestos que requieren experiencia
Una prueba de consultas de SQLite de complejidad alta para puestos que requieren mucha experiencia
Para aprovechar al máximo el proceso de entrevistas, utiliza las siguientes preguntas sobre SQL y las respuestas de muestra.
Dividimos las 50 preguntas en tres categorías (principiante, intermedio y avanzado) para que puedas adaptar el proceso de entrevistas a las necesidades de tu empresa.
Estas preguntas son ideales para puestos que no requieren experiencia previa con SQL Server, en los que es probable que los candidatos tengan una experiencia profesional limitada en el uso de SQL.
Respuesta de ejemplo:
Un sistema de gestión de bases de datos relacionales (SGBDR) hace referencia al software utilizado para almacenar, gestionar y consultar datos. Los datos se guardan en tablas y se pueden vincular a otros conjuntos de datos a partir de información compartida (por eso son “relacionales”).
Respuesta de ejemplo:
Estas son las diferencias principales entre un sistema de gestión de bases de datos relacionales (SGBDR) y un sistema de gestión de bases de datos (SGBD):
Un SGBDR almacena datos en una tabla relacional con filas y columnas, mientras que un SGBD los almacena como un archivo.
Un SGBDR ofrece acceso a varios usuarios (incluso en interacciones del extremo cliente-servidor), mientras que un SGBD solo admite un usuario.
Respuesta de ejemplo:
Estos son algunos de los SGBDR más usados:
Oracle Database
MySQL
Microsoft SQL Server
PostgreSQL
IBM DB2
SQLite
Respuesta de ejemplo:
SQL es un lenguaje de programación utilizado para llevar a cabo tareas relacionadas con los datos. Es el lenguaje de programación estándar de todos los SGBDR. En estas bases de datos, SQL permite a los usuarios crear tablas, actualizar datos, realizar consultas y llevar a cabo análisis.
Respuesta de ejemplo:
SQL es el lenguaje de programación que se utiliza en los SGBDR, mientras que MySQL es un ejemplo de un SGBDR. MySQL fue uno de los primeros sistemas de base de datos con código abierto en el mercado y continúa vigente al día de hoy.
Respuesta de ejemplo:
El comando CREATE TABLE se utiliza para crear una tabla nueva en un SGBDR. El usuario debe indicar el nombre de la tabla, los nombres de las columnas y los tipos de datos. También sirve para crear copias de tablas ya implementadas.
Respuesta de ejemplo:
Con SQL, el tipo de datos DATE se utiliza para almacenar datos o valores de tiempo en una base de datos. El formato para insertar fechas puede variar de un SGBDR a otro (por lo general, se usa AAAA-MM-DD).
Respuesta de ejemplo:
Una consulta es una solicitud de datos o información que se envía a una base de datos. Hay dos tipos importantes de consultas SQL:
Una consulta de selección es una consulta que agrupa datos de una tabla con fines analíticos.
Una consulta de acción es una consulta que cambia los contenidos de la base de datos a partir de criterios indicados.
Respuesta de ejemplo:
Una subconsulta es una consulta anidada en otro enunciado que requiere varios pasos. La subconsulta ofrece a la consulta principal información adicional necesaria para ejecutar una tarea (por ejemplo, cuando una consulta depende de los resultados de otra).
Respuesta de ejemplo:
Este es el proceso para ejecutar una consulta de selección en SQL:
El enunciado SELECT se utiliza para especificar las columnas que necesitas consultar.
El enunciado FROM se utiliza para especificar la tabla que contiene los datos.
El enunciado WHERE se utiliza para filtrar los datos en función de ciertas condiciones.
Respuesta de ejemplo:
Hay varios enunciados SQL que ejecutan consultas de acción. Sus objetivos y procedimientos varían de una a otra. Estas son algunas de las consultas de acción más importantes:
UPDATE modifica el valor de los campos de una tabla.
DELETE elimina registros de una tabla.
CREATE TABLE crea una tabla nueva.
INSERT INTO añade registros a la tabla.
Respuesta de ejemplo:
En SQL, las restricciones son un conjunto de reglas o condiciones implementadas en un SGBDR para especificar los datos que se pueden insertar, actualizar o eliminar en las tablas. El objetivo es garantizar la integridad de los datos y asegurarse de que la información almacenada en las tablas de la base de datos sea precisa.
Respuesta de ejemplo:
Estas operaciones combinan columnas con valores relacionados de dos o más tablas para crear una tabla nueva. En SQL, hay cuatro tipos de operaciones JOIN importantes:
JOIN devuelve registros cuyos valores coinciden en ambas tablas.
LEFT JOIN devuelve todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha.
RIGHT JOIN devuelve todos los registros de la tabla derecha y los registros coincidentes de la tabla izquierda.
FULL JOIN devuelve todos los registros de ambas tablas.
Respuesta de ejemplo:
Un índice de SQL almacena partes importantes de una tabla para que las búsquedas sean más ágiles y eficaces. En lugar de buscar en toda la base de datos, los usuarios solo deberán consultar el índice cuando necesiten obtener datos. Por lo tanto, los índices mejoran el rendimiento de los SGBDR.
Respuesta de ejemplo:
El valor NULL indica que el dato es desconocido. No es lo mismo que 0; si aparece un valor NULL, significa que no hay datos almacenados.
Respuesta de ejemplo:
En SQL, los comandos se utilizan para llevar a cabo tareas específicas en la base de datos. Hay cinco tipos importantes:
Los comandos de lenguaje de definición de datos (Data Definition Language, DDL) cambian la estructura de la base de datos.
Los comandos de lenguaje de manipulación de datos (Data Manipulation Language, DML) modifican los datos en las tablas de la base de datos.
Los comandos de lenguaje de control de datos (Data Control Language, DCL) gestionan el acceso de los usuarios a la base de datos.
Los comandos de lenguaje de control de transacciones (Transaction Control Language, TCL) gestionan las transacciones que realizan los comandos DML.
Los comandos de lenguaje de consultas de datos (Data Query Language, DQL) recuperan información de la base de datos.
Respuesta de ejemplo:
Un alias es un nombre temporal que se le asigna a una tabla o columna durante una consulta SQL. Su objetivo es disminuir la cantidad de código necesario para la consulta, y, de este modo, ahorrar tiempo y reducir la carga de trabajo.
Estas preguntas son ideales para puestos de SQL de nivel intermedio, donde los candidatos ya cuentan con experiencia en el uso de SQL
Respuesta de ejemplo:
La normalización es el proceso mediante el cual se dividen datos en tablas para eliminar datos redundantes y mejorar su integridad.
La desnormalización se utiliza para combinar varias tablas a fin de disminuir el tiempo necesario para efectuar consultas.
Respuesta de ejemplo:
La sintaxis para crear un índice puede variar de un SGBDR a otro. En la mayoría de los sistemas, se usa el enunciado CREATE INDEX para iniciar el proceso. El usuario debe indicar el nombre del índice y seleccionar las columnas que lo conformarán.
Respuesta de ejemplo:
Estas son algunas de las restricciones de SQL más utilizadas:
NOT NULL controla que la columna no contenga un valor NULL.
UNIQUE controla que todos los valores de la columna sean distintos.
DEFAULT especifica un valor por defecto en una columna cuando no se indica ninguno.
INDEX crea un índice para obtener datos.
CHECK controla los valores de una columna a partir de ciertas condiciones.
Respuesta de ejemplo:
Estas son las diferencias más importantes entre los índices agrupados y no agrupados:
Los índices agrupados definen el orden físico en el que se almacenan las tablas y las ordenan correctamente. Los índices no agrupados crean un orden lógico que no coincide con el orden físico de las filas en el disco.
Los índices agrupados ordenan las filas de datos en función de valores clave, mientras que los no agrupados usan una estructura independiente de las filas de datos.
A diferencia de los índices no agrupados, solo puede haber un índice agrupado por tabla.
Respuesta de ejemplo:
En SQL, hay tres tipos importantes de subconsultas:
Subconsultas de una fila: devuelven una fila en los resultados.
Subconsultas de varias filas: devuelven dos o más filas en los resultados.
Subconsultas correlacionadas: devuelven resultados en función de consultas externas.
Respuesta de ejemplo:
Con el cursor, los usuarios pueden procesar datos de un conjunto de resultados, una fila a la vez.
Los cursores son una alternativa a los comandos, que operan en todas las filas de un conjunto de resultados al mismo tiempo. A diferencia de los comandos, los cursores se pueden usar para actualizar datos fila por fila.
Respuesta de ejemplo:
La intercalación hace referencia a un conjunto de reglas o condiciones que influyen en el método de almacenamiento y ordenamiento de los datos. En SQL, hay varios tipos de intercalación, como los siguientes:
Distinguir mayúsculas de minúsculas: distingue entre caracteres en mayúscula y minúscula.
Distinguir acentos: distingue entre caracteres con tilde y sin tilde.
Distinguir ancho: distingue entre caracteres de ancho total y ancho medio.
Respuesta de ejemplo:
La función MOD se puede usar en la mayoría de los SGBDR como parte del enunciado WHERE de una consulta de selección para recuperar datos pares o impares de una tabla.
El formato es el siguiente:
Para números pares, se usa “MOD (nombre de columna, 2) = 1”.
Para números impares, se usa “MOD (nombre de columna, 2) = 0”.
Respuesta de ejemplo:
Para cambiar el nombre de una columna, sigue estos pasos:
Usa “ALTER TABLE nombre de la tabla” para seleccionar la tabla donde se encuentra la columna que quieres cambiar de nombre.
Usa “RENAME COLUMN nombre actual to nombre nuevo” para cambiar el nombre de la columna.
Respuesta de ejemplo:
Estas son las diferencias más importantes entre los comandos DELETE y TRUNCATE:
DELETE es un comando DML, mientras que TRUNCATE es DDL.
DELETE elimina registros y documenta cada eliminación en el registro de transacciones. TRUNCATE elimina asignaciones de páginas y documenta cada asignación eliminada en el registro de transacciones.
Por lo general, TRUNCATE suele ser más rápido porque hace menos uso del registro de transacciones.
Respuesta de ejemplo:
Sigue estos pasos para copiar datos de una tabla a otra:
Usa el enunciado INSERT INTO e indica como destino la tabla nueva.
Usa el enunciado SELECT para especificar las columnas que se deben copiar (selecciona ALL si necesitas copiar toda la tabla).
Usa el enunciado WHERE para especificar la tabla que deseas copiar.
Respuesta de ejemplo:
Hay varias formas de encontrar datos que pertenezcan a un grupo en particular (en este caso, los empleados de un determinado departamento):
Los enunciados SELECT, FROM y WHERE
Los enunciados SELECT, FROM, GROUP BY y HAVING
Los enunciados SELECT, FROM, INNER JOIN y WHERE
Respuesta de ejemplo:
Para eliminar la columna de una tabla, sigue estos pasos:
Usa “ALTER TABLE nombre de la tabla” para seleccionar la tabla donde se encuentra la columna que quieres eliminar.
Usa “DROP COLUMN nombre de la columna” para seleccionar la columna que quieres eliminar.
Respuesta de ejemplo:
Sigue estos pasos para usar el comando LIKE y buscar datos que empiecen con una determinada letra:
Usa el enunciado SELECT para especificar la columna donde se encuentran los nombres.
Usa el enunciado FROM para especificar la tabla donde se encuentra la columna.
Usa “WHERE nombre de la columna” seguido de “LIKE x%”, donde la “x” representa la letra que estás buscando.
Usa “ORDER BY nombre de la columna” para completar la consulta.
Respuesta de ejemplo:
Los valores agregados se utilizan para efectuar cálculos en un conjunto de valores a fin de obtener un solo valor. Estas son algunas de las funciones de agregamiento más usadas:
AVG calcula el promedio de los valores.
COUNT cuenta la cantidad total de filas en una tabla.
MIN encuentra el valor mínimo en una tabla.
MAX encuentra el valor máximo en una tabla.
SUM calcula la suma de los valores.
Respuesta de ejemplo:
Un esquema es una colección de objetos de bases de datos (como tablas, funciones, índices y procedimientos) relacionados con una base de datos.
Ayuda a segregar objetos de bases de datos para distintas aplicaciones y derechos de acceso. Por lo general, los esquemas se usan para definir quién puede ver determinados objetos en la base de datos.
Respuesta de ejemplo:
Las funciones escalares son funciones definidas por el usuario que se aplican a un conjunto de datos para devolver un único valor. Estas son algunas de las funciones escalares más comunes:
UCASE convierte los valores a letras mayúsculas.
LCASE convierte los valores a letras minúsculas.
MID extrae caracteres de un campo de texto, en función de los criterios especificados.
ROUND redondea datos numéricos a una determinada cantidad de decimales.
NOW devuelve la fecha y hora actual del sistema.
Recomendamos usar las siguientes preguntas avanzadas para entrevistas sobre SQL cuando necesites cubrir puestos sénior de SQL. Los candidatos ya deben contar con algunos años de experiencia en SQL.
Respuesta de ejemplo:
Una inyección SQL es un tipo de ciberataque que utilizan los hackers para insertar código SQL malicioso en la base de datos a fin de obtener acceso a información potencialmente valiosa o confidencial. Es muy común en aplicaciones o sitios web que utilizan bases de datos SQL.
Para evitarla, puedes crear varias cuentas de base de datos para limitar el acceso, o usar un firewall de aplicaciones web de terceros.
Respuesta de ejemplo:
Hay muchas formas de optimizar las consultas y mejorar el rendimiento. Por ejemplo, puedes hacer lo siguiente:
Especificar las columnas con SELECT en lugar de SELECT * (seleccionar todo)
Combinar elementos con INNER JOIN en lugar de WHERE
Definir filtros con WHERE en lugar de HAVING
Evitar bucles de enunciados en la estructura de la consulta
Evitar las subconsultas correlacionadas
Respuesta de ejemplo:
En SQL, el proceso de normalización se puede dividir en seis pasos o tipos:
Primera forma normal (1FN): sirve para garantizar que las filas y columnas siempre contengan valores únicos y sin repetir.
Segunda forma normal (2FN): sirve para eliminar las dependencias parciales.
Tercera forma normal (3FN): sirve para eliminar las dependencias funcionales transitivas.
Forma normal de Boyce-Codd (FNBC) o cuarta forma normal (4FN): sirve para garantizar que todas las dependencias funcionales sean una superclave de la tabla.
Quinta forma normal (5FN): sirve para garantizar que la descomposición no genere pérdida de datos.
Sexta forma normal (6FN): sirve para descomponer las variables de relación en componentes irreductibles.
Respuesta de ejemplo:
ACID es el acrónimo de atomicidad, coherencia, aislamiento y durabilidad. Estas propiedades son fundamentales para garantizar la integridad de los datos durante una transacción.
Función de cada propiedad:
Atomicidad: los cambios en los datos se realizan en una única operación unificada.
Coherencia: los valores de los datos son coherentes al comienzo y al final de la transacción.
Aislamiento: una transacción no puede ver el estado intermedio de otra transacción.
Durabilidad: los cambios en los datos sobreviven a la transacción.
Respuesta de ejemplo:
Los procedimientos almacenados son porciones de código SQL que se pueden almacenar y reutilizar. Estos son los tipos de procedimientos almacenados más importantes:
Procedimientos almacenados definidos por el usuario: procedimientos que crean los usuarios.
Procedimientos almacenados en el sistema: procedimientos predeterminados que se guardan permanentemente en el sistema.
Procedimientos almacenados temporalmente: procedimientos que se pierden cuando se cierra la sesión.
Procedimientos almacenados de manera remota: procedimientos que se crean y guardan en servidores remotos.
Respuesta de ejemplo:
Para encontrar al personal con el mismo salario, puedes usar la siguiente solución:
Usa el enunciado SELECT para especificar la tabla pertinente.
Usa el enunciado FROM para especificar la columna de personal.
Usa el enunciado WHERE para especificar los criterios del salario. Por ejemplo:
WHERE salario IN
(SELECT salario
FROM empleado
WHERE empleado.id_empleado <> empleado.id_empleado)
Respuesta de ejemplo:
Hay varias formas de eliminar filas duplicadas en una tabla. Por ejemplo, puedes hacer lo siguiente:
Usar expresiones de tabla comunes (CTE) con la función ROW_NUMBER para identificar y eliminar las filas duplicadas
Usar la función RANK con la operación PARTITION BY
Usar la operación GROUP BY con la función COUNT y, a continuación, reemplazar SELECT con DELETE FROM
Respuesta de ejemplo:
Un disparador, o trigger, es un procedimiento almacenado que se ejecuta tras un determinado evento; por ejemplo, cuando se añade un nuevo registro a la base de datos.
La forma de crear un disparador varía según el SGBDR. Algunos sistemas usan el enunciado CREATE TRIGGER, mientras que otros requieren que el usuario acceda a una carpeta de disparadores desde la barra de herramientas. Después de crearlo, el usuario debe escribir el código del disparador para definir sus condiciones y efectos.
Respuesta de ejemplo:
Estas son las diferencias más importantes entre HAVING Y WHERE:
WHERE se utiliza en operaciones de filas, mientras que HAVING, en operaciones de columnas.
En una consulta, WHERE aparece antes que GROUP BY, mientras que HAVING aparece después.
A diferencia de HAVING, WHERE no se puede usar con funciones de agregamiento.
Respuesta de ejemplo:
Para garantizar la seguridad, es fundamental cifrar las bases de datos que posean información confidencial. Hay distintos métodos de cifrado. Por ejemplo, puedes hacer lo siguiente:
Crear una clave maestra
Usar criptografía simétrica
Crear un certificado protegido con clave maestra
Respuesta de ejemplo:
Puedes usar una subconsulta correlacionada para encontrar en una tabla al empleado que gana el sexto mejor salario. Sigue estos pasos:
Usa el enunciado SELECT para especificar las columnas con el nombre y el salario del personal.
Usa el enunciado FROM para especificar la tabla pertinente.
Usa el enunciado WHERE para especificar los criterios del salario. Por ejemplo:
WHERE statement 6-1 = (SELECT COUNT(DISTINCT salario) FROM #Empleado e2
WHERE e2.salario > e1.salario)
Respuesta de ejemplo:
Hay varias formas de evitar entradas duplicadas durante una consulta. Por ejemplo, puedes hacer lo siguiente:
Crear un índice único
Añadir la palabra clave DISTINCT en el enunciado SELECT
Usar los comandos NOT EXISTS o NOT IN
Respuesta de ejemplo:
Estas son las diferencias más importantes entre los cursores implícitos y explícitos:
Los cursores implícitos se generan automáticamente tras ejecutar enunciados de selección. Los cursores explícitos deben estar explícitamente definidos por el usuario.
Los cursores implícitos solo pueden devolver valores de una sola fila a la vez, mientras que los cursores explícitos pueden devolver valores de varias filas.
Los cursores implícitos son menos eficaces y más propensos a errores que los explícitos.
Respuesta de ejemplo:
El procesamiento de transacciones en línea (OLTP) y el procesamiento analítico en línea (OLAP) son dos sistemas de procesamiento de datos diferentes dentro del campo de la ciencia de datos.
Los sistemas OLTP capturan, almacenan y actualizan datos con frecuencia, mientras que los OLAP se usan para consultar estos datos y efectuar análisis.
Respuesta de ejemplo:
SQL dinámico es una técnica de programación para construir enunciados SQL en tiempo de ejecución y no durante la compilación. Si bien es más complicado y menos eficaz que SQL estático, permite a los desarrolladores crear aplicaciones generales más flexibles.
Respuesta de ejemplo:
Pueden existir tres tipos de relaciones entre dos tablas de una base de datos:
Uno a uno: en esta relación, cada registro de una tabla se puede relacionar con un registro de otra tabla.
Uno a muchos: en esta relación, cada registro de una tabla se puede relacionar con uno o varios registros de otra tabla.
Muchos a muchos: en esta relación, cada registro de ambas tablas se puede relacionar con uno o varios registros de otra tabla.
La entrevista es una de las últimas (y más importantes) etapas del proceso de contratación. Como te permite evaluar las habilidades técnicas e interpersonales del candidato, es necesario elegir las preguntas correctas, ya que te darán la oportunidad de evaluar las habilidades de SQL y el comportamiento del candidato. Es fundamental encontrar candidatos que cumplan con los requisitos de ambas necesidades.
Las preguntas anteriores te permitirán asegurarte de que cumplan con la primera necesidad. Además, podrás evaluar correctamente las habilidades de programación SQL de los candidatos.
Los requisitos de SQL dependerán del sistema de base de datos de tu organización. Por lo tanto, deberás adaptar las preguntas a los requisitos del puesto. También podrás personalizar el proceso de selección en las etapas iniciales si incorporas evaluaciones específicas sobre habilidades de SQL.
Las evaluaciones de habilidades de SQL son un recurso muy valioso, ya que te permiten evaluar directamente las competencias de los candidatos, una ventaja que no ofrecen las preguntas para entrevistas. TestGorilla ofrece varias evaluaciones de SQL adaptadas a distintos requisitos profesionales y niveles de habilidad:
Una prueba de operaciones de bases de datos SQLite de baja complejidad para puestos que no requieren experiencia previa
Una prueba de consultas de SQLite de complejidad media para puestos que requieren experiencia
Una prueba de consultas de SQLite de complejidad alta para puestos que requieren mucha experiencia
Después de la evaluación de habilidades, puedes conducir una entrevista informal por teléfono y una tarea específica para el puesto con los candidatos preseleccionados. Con este sistema, podrás elegir a los mejores candidatos para las entrevistas, y disminuir el tiempo de selección y el costo de contratación.
Implementando una entrevista estructurada como parte de un proceso de selección riguroso y de varias etapas, podrás identificar al especialista en SQL más adecuado para tu empresa.
Recuerda que el objetivo del proceso de reclutamiento no es encontrar al candidato que posea todas las habilidades de SQL. Lo importante es encontrar al candidato que cumpla con los requisitos de tu empresa.
Si encuentras al candidato perfecto, transformarás tu estrategia de análisis de datos y tu organización estará siempre un paso adelante.
Con las pruebas de SQL que ofrece TestGorilla, podrás encontrar a los desarrolladores de SQL más adecuados con rapidez y sin prejuicios. Regístrate gratis y empieza a tomar mejores decisiones de selección hoy mismo.
Crea evaluaciones previas al empleo en minutos para evaluar a los candidatos, ahorrar tiempo y contratar a los mejores talentos.
Sin spam. Cancela la suscripción en cualquier momento.
Nuestras pruebas de selección identifican a los mejores candidatos y hacen tus decisiones de contratación más rápidas, fáciles y libres de prejuicios.