Curso
Tanto si eres un candidato en busca de una nueva oportunidad para aplicar tus conocimientos de SQL como si eres un responsable de contratación que va a entrevistar a un candidato para un puesto vacante en tu empresa, es imprescindible conocer las preguntas y respuestas más habituales en las entrevistas sobre SQL.
En este artículo, examinaremos 84 preguntas y respuestas esenciales sobre SQL para principiantes y profesionales de nivel intermedio. Estas preguntas y respuestas te ayudarán a prepararte mejor para la entrevista y a saber qué esperar de tu entrevistador/entrevistado.
Si deseas ampliar tus conocimientos y habilidades, te recomendamos que eches un vistazo a nuestros cursos completos sobre ingeniería de datos, tecnologías de nube y AWS.
Preguntas de entrevista sobre SQL de un vistazo
A lo largo de este artículo, exploraremos una serie de preguntas y respuestas de entrevistas sobre SQL para profesionales de nivel principiante e intermedio. Si buscas una visión general, a continuación te ofrecemos algunos consejos útiles:
Para principiantes
- Preguntas generales. Prepárate para responder preguntas sobre tu experiencia, los dialectos SQL con los que estás familiarizado y tu nivel de competencia.
- Preguntas técnicas. Estos cubrirán los conceptos básicos de SQL, como qué es, sus aplicaciones, sentencias SQL, comandos SQL y tipos de consultas SQL, entre otros.
Para practicantes de nivel intermedio
-
Funciones en SQL. Debes conocer las funciones agregadas y escalares, así como las funciones integradas y definidas por el usuario.
-
Comandos avanzados. Las preguntas pueden abarcar temas como uniones, claves primarias y externas, índices y relaciones SQL.
-
Diseño de bases de datos. Prepárate para preguntas sobre normalización, desnormalización y las diferencias entre varias sentencias SQL como
DELETE,TRUNCATEyDROP. -
Consultas avanzadas. Es posible que te pregunten sobre subconsultas, tanto anidadas como correlacionadas, así como sobre cómo realizar tareas específicas, como encontrar el enésimo valor más alto en una columna.
Preguntas generales sobre SQL para entrevistas de trabajo
Antes de hacerte preguntas técnicas, es posible que el entrevistador te haga algunas preguntas generales sobre tu experiencia general con SQL.
No te preocupes si tu experiencia en SQL es limitada: es algo que tu entrevistador probablemente ya sabe por tu currículum. Dado que están interesados en hablar contigo de todos modos, tu perfil se consideró adecuado para su empresa. lgo, no pasa nada si solo has trabajado con un dialecto SQL. Recuerda que todos los dialectos SQL son bastante similares. Por lo tanto, estar familiarizado con solo uno de ellos es una base sólida para aprender cualquier otro.
1. ¿Qué es SQL?
Son las siglas de Structured Query Language (lenguaje de consulta estructurado) y es un lenguaje de programación utilizado para interactuar con sistemas de gestión de bases de datos relacionales (RDBMS). Esto incluye recuperar, actualizar, insertar y eliminar datos de las tablas.
2. ¿Qué son los dialectos SQL? Da algunos ejemplos.
Las distintas versiones de SQL, tanto gratuitas como de pago, también se denominan dialectos SQL. Todos los dialectos de SQL tienen una sintaxis muy similar y solo varían ligeramente en cuanto a funcionalidades adicionales. Algunos ejemplos son Microsoft SQL Server, PostgreSQL, MySQL, SQLite, T-SQL y Oracle.
3. ¿Cuáles son las principales aplicaciones de SQL?
Con SQL, podemos:
- Crear, eliminar y actualizar tablas en una base de datos.
- acceder, manipular y modificar datos en una tabla
- Recuperar y resumir la información necesaria de una tabla o varias tablas.
- agregar o eliminar determinadas filas o columnas de una tabla
Preguntas de entrevista sobre SQL para principiantes
Tu entrevistador puede romper el hielo empezando con las preguntas más fáciles:
4. ¿Qué es una instrucción SQL?
También conocido como comando SQL. Es una cadena de caracteres que el motor SQL interpreta como un comando válido y ejecuta en consecuencia. Algunos ejemplos de sentencias SQL son SELECT, CREATE, DELETE, DROP, REVOKE, etc.
5. ¿Qué es una consulta SQL?
Una consulta es un fragmento de código escrito en SQL para acceder o modificar datos de una base de datos.
Hay dos tipos de consultas SQL: consultas para la recuperación de datos y consultas para la modificación de datos. Los primeros se utilizan para recuperar los datos necesarios (esto también incluye limitar, agrupar, ordenar los datos, extraerlos de varias tablas, etc.), mientras que los segundos se utilizan para crear, añadir, eliminar, actualizar y renombrar los datos.
6. ¿Qué es una subconsulta SQL?
También se denomina consulta interna, consulta dentro de otra consulta o consulta externa. Una subconsulta puede aparecer en cláusulas como « SELECT », « FROM », « WHERE », « UPDATE », etc. También es posible tener una subconsulta dentro de otra subconsulta. La subconsulta más interna se ejecuta primero y su resultado se pasa a la consulta (o subconsulta) que la contiene.
7. ¿Qué es una unión SQL?
Cláusula utilizada para combinar y recuperar registros de dos o varias tablas. Las tablas SQL se pueden unir en función de la relación entre las columnas de esas tablas. Echa un vistazo a nuestras tutorial sobre uniones SQL para obtener más contexto, además de nuestra guía dedicada a las preguntas de entrevista sobre uniones SQL.
8. ¿Qué es un comentario SQL?
Una aclaración comprensible para los humanos sobre lo que hace una parte concreta del código. Los comentarios del código SQL pueden ser de una sola línea (precedidos por un doble guión --) o abarcar varias líneas (como se muestra a continuación: /*comment_text*/). Cuando se ejecuta el motor SQL, ignora los comentarios del código. El propósito de añadir comentarios al código SQL es hacer que el código sea más comprensible para las personas que lo lean en el futuro.
9. ¿Qué es un alias SQL?
Nombre temporal que se le da a una tabla (o a una columna de una tabla) mientras se ejecuta una determinada consulta SQL. Los alias se utilizan para mejorar la legibilidad del código y hacerlo más compacto. Un alias se introduce con la palabra clave AS:
SELECT col_1 AS column
FROM table_name;
Preguntas técnicas sobre SQL para entrevistas de trabajo
Ahora, pasemos a las preguntas técnicas de la entrevista sobre SQL y algunas posibles respuestas.
Al responder preguntas técnicas, la mejor estrategia es dar respuestas lo más precisas posible. Puede parecer un intento de desviarse del tema principal. Además, puede provocar preguntas adicionales sobre las que puedes sentirte menos seguro.
En definitiva, SQL permite consultar una base de datos de múltiples maneras. Además, SQL se integra fácilmente con otros lenguajes de programación, como Python o R, por lo que podemos aprovechar su potencia combinada.
10. ¿Qué tipos de comandos SQL conoces?
- Lenguaje de definición de datos (DDL) : para definir y modificar la estructura de una base de datos.
- Lenguaje de manipulación de datos (DML) : para acceder, manipular y modificar datos en una base de datos.
- Lenguaje de control de datos (DCL) : permite controlar el acceso de los usuarios a los datos de la base de datos y otorgar o revocar privilegios a un usuario específico o a un grupo de usuarios.
- Lenguaje de control de transacciones (TCL) : para controlar las transacciones en una base de datos.
- Lenguaje de consulta de datos (DQL) : permite realizar consultas sobre los datos de una base de datos para recuperar la información necesaria.
11. Da algunos ejemplos de comandos SQL comunes.
-
DDL:
CREATE,ALTERTABLE,DROP,TRUNCATEyADD COLUMN -
DML:
UPDATE,DELETE, yINSERT -
DCL:
GRANTyREVOKE -
TCL:
COMMIT,SET TRANSACTION,ROLLBACKySAVEPOINT -
DQL: –
SELECT
12. ¿Qué es un DBMS y qué tipos de DBMS conoces?
Son las siglas de Database Management System (sistema de gestión de bases de datos), un paquete de software que se utiliza para realizar diversas operaciones con los datos almacenados en una base de datos, como acceder, actualizar, manipular, insertar y eliminar datos. Existen varios tipos de DBMS, como los relacionales, jerárquicos, de red, gráficos u orientados a objetos. Estos tipos se basan en la forma en que los datos se organizan, estructuran y almacenan en el sistema.
13. ¿Qué es un RDBMS? Da algunos ejemplos de RDBMS.
Son las siglas de «Sistema de gestión de bases de datos relacionales». Es el tipo más común de DBMS utilizado para trabajar con datos almacenados en múltiples tablas relacionadas entre sí mediante claves compartidas. El lenguaje de programación SQL está diseñado para interactuar con RDBMS. Algunos ejemplos de RDBMS son MySQL, PostgreSQL, Oracle, MariaDB, etc.
14. ¿Qué son las tablas y los campos en SQL?
Una tabla es un conjunto organizado de datos relacionados almacenados en forma tabular, es decir, en filas y columnas. Un campo es otro término para referirse a una columna de una tabla.
15. ¿Qué tipos de subconsultas SQL conoces?
- Una sola fila : devuelve como máximo una fila.
- Varias filas : devuelve al menos dos filas.
- Varias columnas : devuelve al menos dos columnas.
- Correlacionado : una subconsulta relacionada con la información de la consulta externa.
- Anidado : una subconsulta dentro de otra subconsulta.
16. ¿Qué es una restricción y por qué se utilizan?
Conjunto de condiciones que definen el tipo de datos que se pueden introducir en cada columna de una tabla. Las restricciones garantizan la integridad de los datos en una tabla y bloquean acciones no deseadas.
17. ¿Qué restricciones SQL conoces?
-
DEFAULT– proporciona un valor predeterminado para una columna. -
UNIQUE– solo permite valores únicos. -
NOT NULL– solo permite valores no nulos. -
PRIMARY KEY– solo permite valores únicos y estrictamente no nulos (NOT NULLyUNIQUE). -
FOREIGN KEY– Proporciona claves compartidas entre dos o más tablas.
18. ¿Qué tipos de uniones conoces?
-
(INNER) JOIN– devuelve solo los registros que satisfacen una condición de unión definida en ambas (o todas) las tablas. Es una unión SQL predeterminada. -
LEFT (OUTER) JOIN– Devuelve todos los registros de la primera tabla y aquellos registros de la segunda tabla que satisfacen una condición de unión definida. -
RIGHT (OUTER) JOIN– Devuelve todos los registros de la tabla derecha y aquellos registros de la tabla izquierda que satisfacen una condición de unión definida. -
FULL (OUTER) JOIN– devuelve todos los registros de ambas (o todas) las tablas. Se puede considerar como una combinación de uniones izquierda y derecha.
Nota: FULL OUTER JOIN es compatible con PostgreSQL, SQL Server, Oracle y MySQL 8.0 y superior, pero MySQL solo lo permite a través de UNION patrones; por su parte, SQLite no admite RIGHT JOIN, que se puede emular utilizando LEFT JOIN en combinación con UNION.
19. ¿Qué es una clave primaria en SQL?
Una columna (o varias columnas) de una tabla a la que se ha aplicado la restricción « PRIMARY KEY » para garantizar que los valores de esa columna sean únicos y no nulos. En otras palabras, una clave principal es una combinación de las restricciones « NOT NULL » (único) y « UNIQUE » (no nulo). La clave principal identifica de forma única cada registro de la tabla. Cada tabla puede definir como máximo un PRIMARY KEY (que puede ser compuesto). Se recomienda encarecidamente utilizar un PRIMARY KEY , pero no es un requisito imprescindible para todos los motores.
20. ¿Qué es una clave única en SQL?
Una columna (o varias columnas) de una tabla a la que se ha aplicado la UNIQUE restricción se impuso para garantizar valores únicos en esa columna, incluido un posible NULL valor (el único).
Nota:
- : Solo se permite un
NULL, a menos que utilices un índice filtrado. - PostgreSQL / Oracle / MySQL: Se permiten múltiples
NULLporqueNULL <> NULL.
21. ¿Qué es una clave externa en SQL?
Una columna (o varias columnas) de una tabla a la que se ha aplicado la restricción « FOREIGN KEY » (o « UNIQUE ») para vincularla a la clave principal de otra tabla (o varias tablas). El propósito de las claves externas es mantener conectadas varias tablas de una base de datos.
22. ¿Qué es un índice SQL?
Estructura de datos especial relacionada con una tabla de base de datos y utilizada para almacenar sus partes importantes y permitir una búsqueda y recuperación más rápida de los datos. Los índices son especialmente eficaces en bases de datos grandes, donde mejoran significativamente el rendimiento de las consultas.
23. ¿Qué tipos de índices conoces?
- Índice único : no permite duplicados en una columna de la tabla y, por lo tanto, ayuda a mantener la integridad de los datos.
- Índice agrupado: define el orden físico de los registros de una tabla de base de datos y realiza búsquedas de datos basadas en los valores clave. Una tabla solo puede tener un índice agrupado.
- Índice no agrupado: mantiene el orden de los registros de la tabla que no coinciden con el orden físico de los datos reales en el disco. Significa que los datos se almacenan en un lugar y el índice no agrupado, en otro. Una tabla puede tener varios índices no agrupados.
24. ¿Qué es un esquema?
Conjunto de elementos estructurales de una base de datos, como tablas, procedimientos almacenados, índices, funciones y desencadenadores. Muestra la arquitectura general de la base de datos, especifica las relaciones entre los distintos objetos de una base de datos y define los diferentes permisos de acceso para ellos. Lee nuestra guía sobre el esquema de la base de datos para obtener una comprensión más profunda.
25. ¿Qué es un operador SQL?
Un carácter reservado, una combinación de caracteres o una palabra clave que se utiliza en consultas SQL para realizar una operación específica. Los operadores SQL se utilizan habitualmente con la cláusula « WHERE » (o «AND») para establecer una condición (o condiciones) con la que filtrar los datos.
26. ¿Qué tipos de operadores SQL conoces?
-
Aritmética (
+,-,*,/, etc.) -
Comparison (
>,<,=,>=, etc.) -
Compuesto (
+=,-=,*=,/=, etc.) -
Logical (
AND,OR,NOT,BETWEEN, etc.) -
String (
%,_,+,^, etc.) -
Establecer (
UNION,UNION ALL,INTERSECT, yMINUS(oEXCEPT))
27. ¿Qué es una cláusula?
Condición impuesta a una consulta SQL para filtrar los datos y obtener el resultado deseado. Algunos ejemplos son WHERE, LIMIT, HAVING, LIKE, AND, OR, ORDER BY, etc.
28. ¿Cuáles son algunas de las instrucciones más comunes que se utilizan con la consulta SELECT?
Los más comunes son FROM, GROUP BY, JOIN, WHERE, ORDER BY, LIMIT, y HAVING.
29. ¿Cómo se crea una tabla en SQL?
Uso de la instrucción « CREATE TABLE ». Por ejemplo, para crear una tabla con tres columnas de tipos de datos predefinidos, aplicamos la siguiente sintaxis:
CREATE TABLE table_name (col_1 datatype,
col_2 datatype,
col_3 datatype);
30. ¿Cómo actualizar una tabla?
Usando la instrucciónUPDATE. La sintaxis es:
UPDATE table_name
SET col_1 = value_1, col_2 = value_2
WHERE condition;
31. ¿Cómo eliminar una tabla de una base de datos?
Uso de la instrucción « DROP TABLE ». La sintaxis es: DROP TABLE table_name;.
32. ¿Cómo obtener el recuento de registros en una tabla?
Usando la COUNT() función agregada con el asterisco como argumento: SELECT COUNT(*) FROM table_name;.
33. ¿Cómo ordenar los registros de una tabla?
Usando la ORDER BY declaración:
SELECT * FROM table_name
ORDER BY col_1;
Podemos especificar que necesitamos un orden descendente utilizando la palabra clave « DESC »; de lo contrario, el orden será ascendente por defecto. Además, podemos ordenar por más de una columna y especificar para cada una de ellas, por orden ascendente o descendente por separado. Por ejemplo:
SELECT * FROM table_name
ORDER BY col_1 DESC, col_3, col_6 DESC;
34. ¿Cómo seleccionar todas las columnas de una tabla?
Uso del asterisco * con la instrucción « SELECT ». La sintaxis es: SELECT * FROM table_name;.
35. ¿Cómo seleccionar registros comunes de dos tablas?
Uso de la INTERSECT declaración:
SELECT col1, col2 FROM table_1
INTERSECT
SELECT col1, col2 FROM table_2;
Nota: INTERSECT requiere el mismo número de columnas y tipos compatibles.
36. ¿Qué es la instrucción DISTINCT y cómo se utiliza?
Esta instrucción se utiliza junto con la instrucción « SELECT » para filtrar los duplicados y devolver solo los valores únicos de una columna de una tabla. La sintaxis es:
SELECT DISTINCT col_1
FROM table_name;
37. ¿Qué son las relaciones? Da algunos ejemplos.
Las relaciones son las conexiones y correlaciones entre entidades, lo que básicamente significa cómo dos o más tablas de una base de datos están relacionadas entre sí. Por ejemplo, podemos encontrar un ID del mismo cliente en una tabla con datos de ventas y en una tabla de clientes.
38. ¿Qué es un valor NULL? ¿En qué se diferencia del cero o del espacio en blanco?
Un valor « NULL » indica la ausencia de datos para una celda determinada de una tabla. En cambio, cero es un valor numérico válido y una cadena vacía es una cadena legal de longitud cero.
39. ¿Cuál es la diferencia entre SQL y nosql?
Las bases de datos SQL son relacionales, estructuradas y utilizan tablas con esquemas predefinidos, mientras que las bases de datos nosql son no relacionales, sin esquemas y están diseñadas para manejar datos no estructurados o semiestructurados.
40. ¿Cuáles son algunos de los retos más comunes a la hora de trabajar con bases de datos SQL?
Entre los retos se incluyen el ajuste del rendimiento para grandes conjuntos de datos, la gestión de estrategias de indexación, la garantía de la integridad de los datos con restricciones, el manejo de transacciones simultáneas y la optimización de la ejecución de consultas.
Preguntas de entrevista sobre SQL de nivel intermedio
En esta sección, repasamos las preguntas y respuestas más populares sobre SQL de nivel intermedio para que sepas qué puedes esperar de tu entrevistador.
41. ¿Qué es una función en SQL?
Objeto de base de datos que representa un conjunto de sentencias SQL utilizadas con frecuencia para una tarea determinada. Una función toma algunos parámetros de entrada, realiza cálculos u otras manipulaciones con ellos y devuelve el resultado. Las funciones ayudan a mejorar la legibilidad del código y evitan la repetición de los mismos fragmentos de código.
42. ¿Qué tipos de funciones SQL conoces?
- Funciones agregadas : trabajan con varios registros, normalmente agrupados, de las columnas proporcionadas de una tabla y devuelven un único valor (normalmente por grupo).
- Las funciones escalares : trabajan con cada valor individual y devuelven un único valor.
Por otro lado, las funciones SQL pueden ser integradas (definidas por el sistema) o definidas por el usuario (creadas por el usuario para sus necesidades específicas).
43. ¿Qué funciones agregadas de SQL conoces?
-
AVG()– devuelve el valor promedio -
SUM()– devuelve la suma de los valores -
MIN()– devuelve el valor mínimo -
MAX()– devuelve el valor máximo -
COUNT()– devuelve el número de filas, incluidas las que tienen valores nulos.
44. ¿Qué funciones escalares SQL conoces?
-
LEN()(en otros dialectos SQL –LENGTH()) devuelve la longitud de una cadena, incluidos los espacios en blanco. -
UCASE()(en otros dialectos SQL –UPPER()) devuelve una cadena convertida a mayúsculas. -
LCASE()(en otros dialectos SQL –LOWER()) devuelve una cadena convertida a minúsculas. -
INITCAP() : devuelve una cadena convertida a mayúsculas (es decir, cada palabra de la cadena comienza con una letra mayúscula). -
MID()(en otros dialectos SQL –SUBSTR()) extrae una subcadena de una cadena. -
ROUND()– devuelve el valor numérico redondeado al número de decimales especificado. -
NOW()– devuelve la fecha y hora actuales.
45. ¿Qué son las funciones de manipulación de casos en SQL?
Las funciones de manipulación de mayúsculas y minúsculas representan un subconjunto de las funciones de caracteres y se utilizan para cambiar el caso de los datos de texto. Con estas funciones, podemos convertir los datos en mayúsculas, minúsculas o mayúsculas iniciales.
-
UCASE()(en otros dialectos SQL –UPPER()) – devuelve una cadena convertida a mayúsculas. -
LCASE()(en otros dialectos SQL –LOWER()) devuelve una cadena convertida a minúsculas. -
INITCAP()– devuelve una cadena convertida a mayúsculas (es decir, cada palabra de la cadena comienza con una letra mayúscula).
46. ¿Qué son las funciones de manipulación de caracteres en SQL?
Las funciones de manipulación de caracteres representan un subconjunto de las funciones de caracteres y se utilizan para modificar los datos de texto.
-
CONCAT()– une dos o más valores de cadena añadiendo la segunda cadena al final de la primera. -
SUBSTRING()/SUBSTR(): devuelve una parte de una cadena que cumple con los puntos inicial y final proporcionados. -
LENGTH()(en otros dialectos SQL –LEN()) devuelve la longitud de una cadena, incluidos los espacios en blanco. -
REPLACE()– reemplaza todas las apariciones de una subcadena definida en una cadena proporcionada por otra subcadena. -
INSTR()– devuelve la posición numérica de una subcadena definida en una cadena proporcionada. -
LPAD()yRPAD()– devuelve el relleno del carácter del lado izquierdo/derecho para el valor justificado a la derecha/justificado a la izquierda. -
TRIM()– elimina todos los caracteres definidos, así como los espacios en blanco, de la izquierda, la derecha o ambos extremos de una cadena proporcionada.
47. ¿Cuál es la diferencia entre variables locales y globales?
Solo se puede acceder a las variables locales dentro de la función en la que se han declarado. En cambio, las variables globales, que se declaran fuera de cualquier función, se almacenan en estructuras de memoria fijas y pueden utilizarse en todo el programa.
48. ¿Cuál es la diferencia entre SQL y PL/SQL?
SQL es un lenguaje estándar para consultar y gestionar bases de datos relacionales, utilizado principalmente para la manipulación y recuperación de datos. PL/SQL (Procedural Language/SQL) es una extensión de SQL utilizada en bases de datos Oracle que incluye construcciones de programación procedimental como bucles, condiciones y gestión de excepciones, lo que permite implementar lógica empresarial compleja dentro de la base de datos. Tenemos otro artículo sobre las 20 preguntas y respuestas más frecuentes en entrevistas sobre PL/SQL, que te resultará muy útil si sabes que te van a preguntar sobre tus conocimientos de Oracle.
49. ¿Cuál es la diferencia entre LEFT JOIN y LEFT OUTER JOIN?
No hay diferencia entre LEFT JOIN y LEFT OUTER JOIN. Son intercambiables. SQL permite que la palabra clave « OUTER » sea opcional, por lo que « LEFT JOIN » es simplemente una forma abreviada de « LEFT OUTER JOIN ». Ambos devuelven todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha.
50. ¿Qué es la indexación en SQL y cómo mejora el rendimiento?
La indexación crea una estructura de datos especial que agiliza la recuperación de datos al permitir que la base de datos encuentre filas de manera más eficiente. Funciona como una tabla de búsqueda optimizada, lo que reduce la necesidad de realizar escaneos completos de la tabla. Sin embargo, una indexación excesiva puede ralentizar las operaciones de inserción, actualización y eliminación debido a la necesidad de mantener los índices.
51. ¿Qué es un procedimiento almacenado y en qué se diferencia de una función?
Un procedimiento almacenado es un conjunto precompilado de instrucciones SQL que se ejecutan como una unidad para realizar una tarea. Los procedimientos pueden modificar datos u objetos de esquema, gestionar transacciones y devolver cero o más conjuntos de resultados. Por otro lado, las funciones se utilizan normalmente en expresiones SQL, deben devolver un valor (escalar o tabular) y, en muchas bases de datos, tienen restricciones en cuanto a los efectos secundarios. El comportamiento exacto varía según la base de datos (por ejemplo, T-SQL tiene funciones escalares y funciones con valores de tabla; PostgreSQL distingue entre funciones y procedimientos).
52. ¿Cuál es el orden predeterminado de los datos con la instrucción ORDER BY y cómo se puede cambiar?
El valor predeterminado es ascendente (NULLS FIRST/LAST varía según la base de datos). Utiliza la palabra clave ASC/DESC por columna de la siguiente manera:
SELECT * FROM table_name
ORDER BY col_1 DESC;
53. ¿Qué son los operadores de conjunto SQL?
-
UNION– devuelve los registros obtenidos por al menos una de las dos consultas (excluyendo duplicados) -
UNION ALL– devuelve los registros obtenidos por al menos una de las dos consultas (incluidos los duplicados). -
INTERSECT– devuelve los registros obtenidos por ambas consultas. -
EXCEPT(denominadoMINUSen MySQL y Oracle): devuelve solo los registros obtenidos por la primera consulta, pero no por la segunda.
54. ¿Qué operador se utiliza en la consulta para la coincidencia de patrones?
El operador LIKE en combinación con los comodines% y _. El comodín « % » representa cualquier número de caracteres, incluido cero, mientras que «_ » representa estrictamente un solo carácter.
55. ¿Cuál es la diferencia entre una clave principal y una clave única en SQL?
Aunque ambos tipos de claves garantizan valores únicos en una columna de una tabla, el primero identifica de forma única cada registro de la tabla, y el segundo evita duplicados en esa columna.
56. ¿Qué es una clave primaria compuesta SQL?
La clave principal de una tabla, basada en varias columnas.
57. ¿Cuál es el orden habitual de las cláusulas SQL en una instrucción SELECT?
SELECT – FROM – JOIN – ON – WHERE – GROUP BY – HAVING – ORDER BY – LIMIT
58. ¿En qué orden ejecuta el intérprete las sentencias comunes en la consulta SELECT?
Este es el orden de ejecución SQL:
FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT/OFFSET (FETCH)
59. ¿Qué es una vista en SQL?
Una tabla virtual que contiene un subconjunto de datos recuperados de una o varias tablas de bases de datos (u otras vistas). Las vistas estándar no almacenan datos; las vistas materializadas sí. Las vistas pueden simplificar las consultas, encapsular la lógica y, en combinación con los privilegios, restringir columnas/filas. Pueden unir/agregar datos de varias tablas.
60. ¿Podemos crear una vista basada en otra vista en SQL?
Sí. Esto también se conoce como vistas anidadas. Sin embargo, debemos evitar anidar varias vistas, ya que el código se vuelve difícil de leer y depurar.
61. ¿Se puede seguir utilizando una vista si se elimina la tabla original?
No. Cualquier vista basada en esa tabla dejará de ser válida tras eliminar la tabla base. Si intentamos utilizar esa vista de todos modos, aparecerá un mensaje de error.
62. ¿Qué tipos de relaciones SQL conoces?
- Uno a uno : cada registro de una tabla corresponde a un único registro de otra tabla.
- Uno a muchos : cada registro de una tabla corresponde a varios registros de otra tabla.
- Muchos a muchos : cada registro de ambas tablas corresponde a varios registros de otra tabla.
63. ¿Cuáles son los valores posibles de un campo de datos BOOLEAN?
En algunos dialectos SQL, como PostgreSQL, el tipo de datos BOOLEAN existe explícitamente y toma valores TRUE, FALSE o NULL. En otros dialectos, como Microsoft SQL Server, el tipo de datos BIT se utiliza para almacenar valores booleanos como números enteros 1 (verdadero) o 0 (falso).
64. ¿Qué es la normalización en SQL?
La normalización es un proceso de diseño de bases de datos que incluye la organización y reestructuración de los datos con el fin de reducir la redundancia, la dependencia, la duplicación y la inconsistencia de los mismos. Esto conduce a una mayor integridad de los datos, más tablas dentro de la base de datos, un acceso a los datos y un control de seguridad más eficientes, y una mayor flexibilidad en las consultas.
65. ¿Qué es la desnormalización en SQL?
La desnormalización es el proceso opuesto a la normalización: introduce redundancia en los datos y combina datos de varias tablas. La desnormalización optimiza el rendimiento de la infraestructura de la base de datos en situaciones en las que las operaciones de lectura son más importantes que las de escritura, ya que ayuda a evitar uniones complejas y reduce el tiempo de ejecución de las consultas.
66. ¿Cuál es la diferencia entre cambiar el nombre de una columna y asignarle un alias?
Renombrar una columna significa cambiar permanentemente su nombre actual en la tabla original. Dar un alias a una columna significa asignarle un nombre temporal mientras se ejecuta una consulta SQL, con el fin de que el código sea más legible y compacto.
67. ¿Cuál es la diferencia entre subconsultas anidadas y correlacionadas?
Una subconsulta correlacionada es una consulta interna anidada en una consulta más grande (externa) que hace referencia a los valores de la consulta externa para su ejecución, lo que significa que una subconsulta correlacionada depende de su consulta externa. Por el contrario, una subconsulta no correlacionada no depende de los datos de la consulta externa y puede ejecutarse independientemente de ella.
68. ¿Cuál es la diferencia entre los índices agrupados y los no agrupados?
Mientras que un índice agrupado define el orden físico de los registros de una tabla y realiza búsquedas de datos basadas en los valores clave, un índice no agrupado mantiene el orden de los registros que no coinciden con el orden físico de los datos reales en el disco. Una tabla solo puede tener un índice agrupado, pero puede tener muchos índices no agrupados.
69. ¿Qué es la función CASE()?
La forma de implementar el if-then-else en SQL. Esta función comprueba secuencialmente las condiciones proporcionadas en las cláusulas « WHEN » y devuelve el valor de la cláusula « THEN » correspondiente cuando se cumple la primera condición. Si no se cumple ninguna de las condiciones, la función devuelve el valor de la cláusula « ELSE » (si se ha proporcionado); de lo contrario, devuelve « NULL » (valor predeterminado). La sintaxis es:
CASE
WHEN condition_1 THEN value_1
WHEN condition_2 THEN value_2
WHEN condition_3 THEN value_3
...
ELSE value
END;
70. ¿Cuál es la diferencia entre las sentencias DELETE y TRUNCATE?
DELETE es un comando DML (lenguaje de manipulación de datos) que se utiliza para eliminar una o varias filas de una tabla en función de una condición especificada en la cláusula « WHERE ». Solo es reversible si se envuelve en una transacción (a través de ROLLBACK).
TRUNCATE Es un comando DDL (lenguaje de definición de datos) que elimina todas las filas de una tabla mediante la desasignación de páginas. Es más rápido, pero generalmente irreversible, y no se puede utilizar en tablas a las que se hace referencia mediante una clave externa.
71. ¿Cuál es la diferencia entre las sentencias DROP y TRUNCATE?
DROP Elimina una tabla de la base de datos por completo, incluyendo la estructura de la tabla y todas las restricciones asociadas, las relaciones con otras tablas y los privilegios de acceso. TRUNCATE Elimina todas las filas de una tabla sin afectar a la estructura de la tabla ni a las restricciones. Ambos son DDL. DROP elimina la tabla y sus metadatos; TRUNCATE elimina todas las filas, pero conserva la definición de la tabla. El rendimiento y el comportamiento transaccional dependen del motor de base de datos.
72. ¿Cuál es la diferencia entre las sentencias HAVING y WHERE?
El primero trabaja con datos agregados después de agruparlos, mientras que el segundo comprueba cada fila individualmente. Si ambas sentencias están presentes en una consulta, aparecen en el siguiente orden: WHERE – GROUP BY – HAVING. El motor SQL también los interpreta en el mismo orden.
73. ¿Cómo se añade un registro a una tabla?
Usando la instrucción « INSERT INTO » en combinación con « VALUES ». La sintaxis es:
INSERT INTO table_name
VALUES (value_1, value_2, ...);
74. ¿Cómo se elimina un registro de una tabla?
Uso de la instrucción « DELETE ». La sintaxis es:
DELETE FROM table_name
WHERE condition;
De esta manera, también podemos eliminar varios registros si cumplen la condición proporcionada.
75. ¿Cómo se añade una columna a una tabla?
Usando la instrucción « ALTER TABLE » en combinación con « ADD ». La sintaxis es:
ALTER TABLE table_name
ADD column_name datatype;
76. ¿Cómo se cambia el nombre de una columna de una tabla?
Utilizando la ALTER TABLE en combinación con RENAME COLUMN ... TO ... La sintaxis es:
ALTER TABLE table_name
RENAME COLUMN old_column_name TO new_column_name;
77. ¿Cómo se elimina una columna de una tabla?
Usando la instrucción « ALTER TABLE » en combinación con « DROP COLUMN ». La sintaxis es:
ALTER TABLE table_name
DROP COLUMN column_name;
78. ¿Cómo se seleccionan todos los registros pares o impares de una tabla?
Comprobando el resto de la división por 2. En algunas versiones de SQL (por ejemplo, PostgreSQL y MySQL), utilizamos la función « MOD », mientras que en otras (Microsoft SQL Server y SQLite) utilizamos el operador módulo (%). Para seleccionar todos los registros pares utilizando MOD:
SELECT * FROM table_name
WHERE MOD(ID_column, 2) = 0;
Para seleccionar todos los registros pares utilizando %:
SELECT * FROM table_name
WHERE ID_column % 2 = 0;
Para seleccionar todos los registros impares, la sintaxis es idéntica en ambos casos, solo que utilizaríamos el operador de desigualdad <> en lugar de =.
79. ¿Cómo evitar registros duplicados al realizar una consulta?
Utilizando la DISTINCT en combinación con SELECT o creando una clave única para esa tabla.
80. ¿Cómo se insertan muchas filas en una tabla?
Usando la instrucción « INSERT INTO » en combinación con « VALUES ». La sintaxis es:
INSERT INTO table_name
VALUES (value_1, value_2, ...),
(value_3, value_4, ...),
(value_5, value_6, ...),
...;
81. ¿Cómo se encuentra el enésimo valor más alto en una columna de una tabla?
Uso de funciones de ventana para gestionar correctamente los empates:
SELECT column_name
FROM (
SELECT column_name, DENSE_RANK() OVER (ORDER BY column_name DESC) AS rnk
FROM table_name
) t
WHERE rnk = :n;
Para la fila n-ésima por orden (ignorando los empates): ORDENAR POR nombre_columna DESCENDENTE DESPLAZAMIENTO n-1 FILAS RECUPERAR SOLO LA PRÓXIMA FILA.
82. ¿Cómo se pueden encontrar los valores de una columna de texto de una tabla que comienzan con una letra determinada?
Uso del operador « LIKE » en combinación con los comodines « % » y « _ ». Por ejemplo, necesitamos encontrar todos los apellidos de una tabla que empiecen por «A». La consulta es:
SELECT * FROM table_name
WHERE surname LIKE 'A_';
Aquí, asumimos que un apellido debe contener al menos dos letras. Sin esta suposición (lo que significa que un apellido puede ser simplemente A), la consulta es la siguiente:
SELECT * FROM table_name
WHERE surname LIKE 'A%';
83. ¿Cómo se encuentra el último identificador de una tabla?
El método más sencillo es utilizar la función agregada MAX().
SELECT MAX(id) AS highest_id
FROM table_name;
Usando ORDER BY con LIMIT o TOP
SELECT id
FROM table_name
ORDER BY id DESC
LIMIT 1;
84. ¿Cómo seleccionar filas aleatorias de una tabla?
Utilizando la función RAND() en combinación con ORDER BY y LIMIT. En algunos dialectos SQL, como PostgreSQL, se denomina « RANDOM() » (conmutación de modo). Por ejemplo, el siguiente código devolverá cinco filas aleatorias de una tabla en MySQL:
SELECT * FROM table_name
ORDER BY RAND()
LIMIT 5;
Mejora las habilidades de tu equipo con SQL
Si bien la preparación para las entrevistas sobre SQL es fundamental para los candidatos y los responsables de contratación, es igualmente importante que las empresas inviertan en la formación continua de sus equipos en SQL. Ser capaz de trabajar con datos es más importante que nunca, por lo que garantizar que tus empleados tengan sólidos conocimientos de SQL puede suponer un cambio radical para el éxito de tu empresa.
Si eres jefe de equipo o propietario de una empresa y quieres asegurarte de que todo tu equipo domine SQL, DataCamp for Business ofrece programas de formación personalizados que pueden ayudar a tus empleados a dominar las habilidades de SQL, desde los conceptos básicos hasta los más avanzados. Podemos ofrecer:
- Itinerarios de aprendizaje específicos: Personalizable según el nivel de habilidad actual de tu equipo y las necesidades de tu empresa.
- Práctica práctica: Escenarios y ejercicios del mundo real que refuerzan el aprendizaje y mejoran la retención.
- Seguimiento del progreso: Herramientas para supervisar y evaluar el progreso de tu equipo, asegurándote de que alcancen sus objetivos de aprendizaje.
Invertir en la mejora de las habilidades en SQL a través de plataformas como DataCamp no solo mejora las capacidades de tu equipo, sino que también proporciona a tu empresa una ventaja estratégica, lo que te permite mantener tu competitividad y obtener resultados. Habla con uno de los miembros de nuestro equipo y solicita una demostración hoy mismo.
Conclusión
En resumen, hemos analizado las 85 preguntas esenciales para entrevistas de nivel principiante e intermedio sobre SQL, así como las respuestas correctas a las mismas. Esperamos que esta información te ayude a prepararte para la entrevista y a sentirte más seguro, tanto si estás buscando trabajo en SQL como si estás contratando candidatos para un puesto de nivel intermedio en SQL.
Si crees que necesitas más formación para prepararte mejor para una entrevista, ten en cuenta los siguientes cursos y programas de SQL de DataCamp:
- Introducción a SQL
- Fundamentos de SQL
- Analista de datos en SQL
- Análisis Exploratorio de Datos en SQL
- SQL para analistas de negocios
- Análisis de datos empresariales en SQL
- SQL intermedio
- SQL Server intermedio
- Aplicación de SQL a problemas del mundo real
- SQL Server para administradores de bases de datos
Aumenta la competencia SQL de tu equipo
Forma a tu equipo en SQL con DataCamp para empresas. Formación completa, proyectos prácticos y métricas de rendimiento detalladas para tu organización.

Preguntas frecuentes
¿Cómo puedo empezar a aprender SQL?
Para empezar a aprender SQL, comienza por los conceptos básicos de las bases de datos y los sistemas de gestión de bases de datos relacionales. DataCamp cuenta con numerosos recursos para ayudarte a dar tus primeros pasos, como el curso Introducción a SQL, el programa Analista de datos en SQL y la hoja de referencia de SQL. También puedes visitar la página de cursos de SQL para explorar todos los recursos.
¿Dónde puedo encontrar problemas SQL reales para practicar?
En la plataforma DataCamp hay muchos proyectos SQL para perfeccionar tus habilidades, aptos para todos los niveles.
¿Cuáles son algunas preguntas comunes en entrevistas sobre SQL para principiantes?
A menudo se pide a los principiantes que expliquen conceptos básicos de SQL, como la diferencia entre las sentencias « SELECT » y « INSERT », la finalidad de las claves en una base de datos (claves primarias y claves externas) y consultas sencillas para extraer datos de una sola tabla utilizando condiciones (cláusula «WHERE »).
¿Cuáles son algunas preguntas comunes en entrevistas sobre SQL para profesionales con experiencia intermedia?
Los profesionales con experiencia intermedia pueden encontrarse con preguntas sobre conceptos SQL más complejos, como uniones (INNER, LEFT, RIGHT, FULL), subconsultas, agregaciones y agrupación de datos (GROUP BY), y el uso de operaciones de conjunto como UNION, INTERSECT y EXCEPT. También se les puede pedir que resuelvan problemas relacionados con la optimización de consultas para mejorar el rendimiento.
¿Cómo debes prepararte para una entrevista sobre SQL?
La preparación para una entrevista sobre SQL debe incluir:
- Repaso de conceptos básicos y avanzados de SQL.
- Practicar la redacción de consultas para resolver problemas comunes.
- Comprensión del diseño y la normalización de bases de datos.
- Familiarizarte con el dialecto SQL específico que utiliza la empresa (por ejemplo, PostgreSQL, MySQL, SQL Server).
- Resolución de preguntas y problemas de entrevistas de muestra disponibles en línea.
¿Qué debes esperar en una entrevista técnica sobre SQL y cómo puedes demostrar mejor tus habilidades?
En una entrevista técnica sobre SQL, puedes esperar preguntas que pongan a prueba tus conocimientos sobre la sintaxis de SQL, el diseño de bases de datos, la optimización de consultas y tu capacidad para resolver problemas utilizando SQL. Para demostrar tus habilidades:
- Practica explicando tu proceso mental mientras resuelves problemas de SQL.
- Prepárate para escribir consultas SQL sin errores en una pizarra o en un entorno de programación en línea.
- Demuestra tu comprensión de conceptos complejos como uniones, subconsultas y transacciones mediante ejemplos.
- Comenta cualquier experiencia real que tengas trabajando con bases de datos, destacando los retos que has superado o las optimizaciones que has implementado.
¿Qué importancia tiene aprender dialectos SQL específicos y en cuáles debes centrarte?
Aunque la sintaxis básica de SQL es coherente en los diferentes RDBMS, cada sistema (como MySQL, PostgreSQL, SQL Server u Oracle) tiene su propio dialecto con características y funciones únicas. Es importante aprender un dialecto SQL específico si te interesan puestos que utilicen un RDBMS concreto. Céntrate en el dialecto más relevante para tus objetivos profesionales o en el más utilizado en tu sector. Sin embargo, tener una base sólida en SQL estándar facilita la adaptación a diferentes dialectos según sea necesario.
¿DataCamp ofrece recursos adicionales GRATUITOS para prepararse para entrevistas sobre SQL?
¡Sí! Si actualmente eres profesor universitario o estudiante, puedes utilizar DataCamp Classrooms para acceder a todo nuestro catálogo premium de forma GRATUITA. Esto incluye nuestros programas y certificaciones de SQL.
También puedes echar un vistazo a nuestra hoja de referencia gratuita sobre conceptos básicos de SQL.

Científico de Datos Certificado por IBM (2020), anteriormente Geólogo Petrolero/Geomodelador de yacimientos de petróleo y gas en todo el mundo con más de 12 años de experiencia laboral internacional. Dominio de Python, R y SQL. Áreas de especialización: limpieza de datos, manipulación de datos, visualización de datos, análisis de datos, modelado de datos, estadística, narración de historias, aprendizaje automático. Amplia experiencia en la gestión de comunidades de ciencia de datos y en la redacción/revisión de artículos y tutoriales sobre ciencia de datos y temas profesionales.



