Saltar al contenido principal
InicioBlogSQL

Las 80 mejores preguntas y respuestas de entrevistas SQL para principiantes y profesionales intermedios

Este artículo ofrece una visión completa de 80 preguntas y respuestas esenciales sobre SQL para los que buscan trabajo, los directores de RR. HH. y los reclutadores, y abarca tanto temas generales como preguntas técnicas.
Actualizado mar 2024  · 12 min leer
Lee la versión en inglés 🇺🇲 de este artículo.

Tanto si buscas una nueva oportunidad para aplicar tus conocimientos de SQL como si eres un director de RR. HH. que va a interrogar a un candidato para un puesto vacante en su empresa, conocer las preguntas habituales en las entrevistas de SQL y sus respuestas es imprescindible para ti.

En este artículo, vamos a echar un vistazo a 80 preguntas y respuestas esenciales sobre SQL para principiantes y profesionales de nivel intermedio que te ayudarán a prepararte mejor para la entrevista y a saber qué esperar de tu entrevistador/entrevistado.

Ten en cuenta que, por comodidad, este artículo se dirige sobre todo a los demandantes de empleo, ya que son el público principal de esta información. Sin embargo, este contenido será sin duda de utilidad también para los directores de RR. HH./reclutadores, especialmente para realizar sus primeras entrevistas SQL.

Un vistazo a las preguntas de la entrevista SQL

A lo largo de este artículo, exploraremos una serie de preguntas y respuestas de entrevistas SQL para profesionales de nivel principiante e intermedio. Si buscas una visión general, hemos recopilado algunos consejos:

Para principiantes

  1. Preguntas generales. Espera preguntas sobre tu experiencia, las versiones de SQL que conoces y tu nivel de competencia.
  2. Preguntas técnicas. Cubrirán los aspectos básicos de SQL, como qué es SQL, sus aplicaciones, sentencias SQL, comandos SQL y tipos de consultas SQL, entre otros.

Para profesionales intermedios

  1. Funciones en SQL. Debes conocer las funciones de agregación y escalares, así como las funciones integradas y las definidas por el usuario.
  2. Comandos avanzados. Las preguntas pueden abarcar temas como uniones, claves primarias y foráneas, índices y relaciones SQL.
  3. Diseño de la base de datos. Espera preguntas sobre normalización, desnormalización y las diferencias entre diferentes sentencias SQL como DELETE, TRUNCATE y DROP.
  4. Consultas avanzadas. Es posible que te pregunten por las subconsultas, tanto anidadas como correlacionadas, así como por la forma de realizar tareas específicas como buscar el enésimo valor más alto de una columna.

Preguntas generales de la entrevista SQL para principiantes

Para empezar, antes de hacerte preguntas técnicas, tu entrevistador puede hacerte algunas preguntas generales sobre tu experiencia con SQL. Puedes esperar las siguientes preguntas:

  • ¿Con qué versiones de SQL estás familiarizado?
  • ¿Cómo calificarías tu nivel de competencia en SQL?
  • ¿Desde cuándo trabajas en SQL?

Aunque esta información puede mencionarse en tu currículum, prepárate para hablar de ella. Naturalmente, no hay respuestas "correctas" a estas preguntas, y no es necesario inventarse cosas al responderlas.

No te preocupes si tu experiencia en SQL es limitada: esto es algo que tu entrevistador, muy probablemente, ya sabe por tu currículum. Como de todas formas está interesado en hablar contigo, tu perfil se consideró adecuado para su empresa.

Además, no pasa nada si solo has trabajado con una versión de SQL. Recuerda que todos los dialectos SQL son bastante similares entre sí. Por tanto, estar familiarizado con uno solo de ellos es una base sólida para que aprendas cualquier otro.

Preguntas técnicas de la entrevista SQL para principiantes 

Ahora pasemos a las preguntas técnicas de la entrevista SQL y algunas posibles respuestas a ellas.

Al responder a preguntas técnicas, la mejor estrategia es dar respuestas lo más precisas posible. Lo contrario puede parecer un intento de desviarse del tema principal. Además, puede provocar preguntas adicionales sobre las que te sientas menos seguro.

1. ¿Qué es SQL?

Son las siglas de Structured Query Language. Es un lenguaje de programación utilizado para interactuar con sistemas de gestión de bases de datos relacionales (RDBMS). Esto incluye obtener, actualizar, insertar y eliminar datos de las tablas.

2. ¿Qué son los dialectos SQL? Pon algunos ejemplos.

Las distintas versiones de SQL, tanto gratuitas como de pago, también se denominan dialectos SQL. Todas las versiones de SQL tienen una sintaxis muy similar y varían muy poco en funcionalidad adicional. Algunos ejemplos son Microsoft SQL Server, PostgreSQL, MySQL, SQLite, T-SQL, Oracle y MongoDB.

3. ¿Cuáles son las principales aplicaciones de SQL?

Utilizando SQL, podemos:

  • crear, eliminar y actualizar tablas en una base de datos
  • acceder a los datos de una tabla, manipularlos y modificarlos
  • recuperar y resumir la información necesaria de una tabla o varias tablas
  • añadir o eliminar determinadas filas o columnas de una tabla

En definitiva, SQL permite consultar una base de datos de varias formas. Además, SQL se integra fácilmente con otros lenguajes de programación, como Python o R, por lo que podemos utilizar su potencia combinada.

4. ¿Qué es una sentencia SQL? Pon algunos ejemplos.

También se llama comando SQL. Es una cadena de caracteres interpretada por el motor SQL como un comando legal y ejecutada en consecuencia. Algunos ejemplos de sentencias SQL son SELECT, CREATE, DELETE, DROP, REVOKE, etc.

5. ¿Qué tipos de comandos SQL (o subconjuntos de 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 (LMD): para acceder a los datos de una base de datos, manipularlos y modificarlos.
  • Lenguaje de control de datos (DCL): para controlar el acceso de los usuarios a los datos de la base de datos y conceder o revocar privilegios a un usuario concreto 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): para realizar consultas sobre los datos de una base de datos y recuperar de ella la información necesaria.

6. Pon algunos ejemplos de comandos SQL comunes de cada tipo.

  • DDL: CREATE, ALTER TABLE, DROP, TRUNCATE y ADD COLUMN
  • DML: UPDATE, DELETE y INSERT
  • DCL: GRANT y REVOKE
  • TCL: COMMIT, SET TRANSACTION, ROLLBACK y SAVEPOINT
  • DQL:SELECT

7. ¿Qué es una base de datos?

Un espacio de almacenamiento estructurado en el que los datos se guardan en muchas tablas y se organizan de forma que la información necesaria pueda obtenerse, manipularse y resumirse fácilmente.

8. ¿Qué es un DBMS y qué tipos de DBMS conoces?

Son las siglas en inglés de sistema de gestión de bases de datos, paquetes de software utilizados para realizar diversas operaciones con los datos almacenados en una base de datos, como acceder a ellos, actualizarlos, manipularlos, insertarlos y eliminarlos. Existen diferentes tipos de DBMS, como los relacionales, jerárquicos, de red, de grafos u orientados a objetos. Estos tipos se basan en la forma en que se organizan, estructuran y almacenan los datos en el sistema.

9. ¿Qué es RDBMS? Pon algunos ejemplos de RDBMS.

Es la sigla en inglés de sistema de gestión de bases de datos relacionales. Es el tipo de DBMS más utilizado para trabajar con datos almacenados en varias tablas relacionadas entre sí mediante claves compartidas. El lenguaje de programación SQL está especialmente diseñado para interactuar con RDBMS. Algunos ejemplos de RDBMS son MySQL, PostgreSQL, Oracle, MariaDB, etc.

10. ¿Qué son las tablas y los campos en SQL?

Una tabla es un conjunto organizado de datos relacionados almacenados de forma tabular, es decir, en filas y columnas. Un campo es otro término para una columna de una tabla.

11. ¿Qué es una consulta SQL y qué tipos de consultas conoces?

Una consulta es un fragmento de código escrito en SQL para acceder a los datos de una base de datos o para modificarlos. En consecuencia, hay dos tipos de consultas SQL: consultas select y action. Las primeras se utilizan para recuperar los datos necesarios (esto también incluye limitar, agrupar, ordenar los datos; extraer los datos de varias tablas; etc.), y las segundas se utilizan para crear, añadir, eliminar, actualizar, renombrar los datos, etc.

12. ¿Qué es una subconsulta?

También llamada consulta interna; una consulta colocada dentro de otra consulta, o una 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.

13. ¿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.
  • Correlacionada: una subconsulta relacionada con la información de la consulta externa.
  • Anidada:- una subconsulta dentro de otra subconsulta.

14. ¿Qué es una restricción y por qué utilizar restricciones?

Un conjunto de condiciones que definen el tipo de datos que pueden introducirse en cada columna de una tabla. Las restricciones garantizan la integridad de los datos de una tabla y bloquean acciones no deseadas.

15. ¿Qué restricciones SQL conoces?

  • DEFAULT: proporciona un valor por defecto 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 NULL y UNIQUE).
  • FOREIGN KEY: proporciona claves compartidas entre dos y más tablas.

16. ¿Qué es una unión?

Una cláusula utilizada para combinar y recuperar registros de dos o más tablas. Las tablas SQL se pueden unir basándose en la relación entre las columnas de esas tablas. Echa un vistazo a nuestro tutorial de Uniones SQL para tener más contexto. 

17. ¿Qué tipos de uniones conoces?

  • (INNER) JOIN: devuelve solo los registros que cumplen una condición de unión definida en ambas tablas (o en todas). Es una unión SQL por defecto.
  • LEFT (OUTER) JOIN: devuelve todos los registros de la tabla izquierda y aquellos registros de la tabla derecha que cumplan 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 cumplan una condición de unión definida.
  • FULL (OUTER) JOIN:- devuelve todos los registros de ambas tablas (o de todas). Puede considerarse como una combinación de las uniones izquierda y derecha.

18. ¿Qué es una clave primaria?

Una columna (o varias columnas) de una tabla a la que se le ha impuesto la restricción PRIMARY KEY para garantizar valores únicos y no nulos en esa columna. En otras palabras, una clave primaria es una combinación de las restricciones NOT NULL y UNIQUE. La clave primaria identifica de forma única cada registro de la tabla. Cada tabla debe contener una clave primaria y no puede contener más de una clave primaria.

19. ¿Qué es una clave única?

Una columna (o varias columnas) de una tabla a la que se le ha impuesto la restricción UNIQUE para garantizar valores únicos en esa columna, incluido un posible valor NULL (el único).

20. ¿Qué es una clave foránea?

Una columna (o varias columnas) de una tabla a la que se le ha impuesto la restricción FOREIGN KEY para vincular esta columna a la clave primaria de otra tabla (o varias tablas). La finalidad de las claves foráneas es mantener conectadas diferentes tablas de una base de datos.

21. ¿Qué es un índice?

Una 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 de datos más rápidas. Los índices son especialmente eficientes para las grandes bases de datos, donde mejoran significativamente el rendimiento de las consultas.

22. ¿Qué tipos de índices conoces?

  • Índice único: no permite duplicados en una columna de la tabla y, por 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 la búsqueda de datos basándose 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 coincide con el orden físico de los datos reales en el disco. Significa que los datos se almacenan en un lugar y un índice no agrupado, en otro. Una tabla puede tener varios índices no agrupados.

23. ¿Qué es un esquema?

Un conjunto de elementos estructurales de una base de datos, como tablas, procedimientos almacenados, índices, funciones y disparadores. Muestra la arquitectura general de la base de datos, especifica las relaciones entre los distintos objetos de una base de datos y define distintos permisos de acceso para ellos.

24. ¿Qué es un comentario SQL?

Una aclaración legible por humanos sobre lo que hace un determinado fragmento de código. Los comentarios del código SQL pueden ser de una sola línea (precedidos de un guion doble -- ) o abarcar varias líneas (como en /*comment_text*/). Cuando el motor SQL se ejecuta, ignora los comentarios del código. La finalidad de añadir comentarios del código SQL es hacer que el código sea más completo para las personas que lo lean en el futuro.

25. ¿Qué es un operador SQL?

Un carácter reservado, una combinación de caracteres o una palabra clave utilizados en las consultas SQL para realizar una operación concreta. Los operadores SQL se suelen utilizar con la cláusula WHERE para establecer una condición (o condiciones) para filtrar los datos.

26. ¿Qué tipos de operadores SQL conoces?

  • Aritméticos (+, -, *, /, etc.)
  • De comparación (>, <, =, >=, etc.)
  • Compuestos (+=, -=, *=, /=, etc.)
  • Lógicos (AND, OR, NOT, BETWEEN, etc.)
  • De cadena (%, _, +, ^, etc.)
  • De conjuntos (UNION, UNION ALL, INTERSECT y MINUS [o EXCEPT])

27. ¿Qué es un alias?

Un nombre temporal que se da a una tabla (o a una columna de una tabla) al ejecutar 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;

28. ¿Qué es una cláusula?

Una 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.

29. ¿Cuáles son algunas sentencias comunes utilizadas con la consulta SELECT?

Las más comunes son FROM, GROUP BY, JOIN, WHERE, ORDER BY, LIMIT y HAVING.

30. ¿Cómo crear una tabla?

Utilizando la sentencia 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);

31. ¿Cómo actualizar una tabla?

Utilizando la sentencia UPDATE. La sintaxis es:

UPDATE table_name
SET col_1 = value_1, column_2 = value_2
WHERE condition;

32. ¿Cómo eliminar una tabla de una base de datos?

Utilizando la sentencia DROP TABLE. La sintaxis es: DROP TABLE table_name;.

33. ¿Cómo obtener el recuento de registros de una tabla?

Utilizando la función de agregación COUNT() con el asterisco como argumento: SELECT COUNT(*) FROM table_name;.

34. ¿Cómo ordenar los registros de una tabla?

Utilizando la sentencia ORDER BY:

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 orden ascendente o descendente por separado. Por ejemplo:

SELECT * FROM table_name
ORDER BY col_1 DESC, col_3, col_6 DESC;

35. ¿Cómo seleccionar todas las columnas de una tabla?

Utilizando el asterisco * con la sentencia SELECT. La sintaxis es: SELECT * FROM table_name;.

36. ¿Cómo seleccionar registros comunes de dos tablas?

Using the INTERSECT statement:
SELECT * FROM table_1
INTERSECT
SELECT * FROM table_1;

37. ¿Qué es la sentencia DISTINCT y cómo se utiliza?

Esta sentencia se utiliza con la sentencia SELECT para filtrar duplicados y devolver solo valores únicos de una columna de una tabla. La sintaxis es:

SELECT DISTINCT col_1
FROM table_name;

38. ¿Qué son las entidades? Pon algunos ejemplos.

Una entidad es un objeto, criatura, lugar o fenómeno del mundo real cuyos datos pueden recopilarse y almacenarse en una tabla de la base de datos. Cada entidad corresponde a una fila de una tabla, mientras que las columnas de la tabla describen sus propiedades. Algunos ejemplos de entidades son las transacciones bancarias, los alumnos de una escuela, los coches vendidos, etc.

39. ¿Qué son las relaciones? Pon algunos ejemplos.

Las relaciones son las conexiones y correlaciones entre entidades, lo que significa básicamente cómo se relacionan entre sí dos o más tablas de una base de datos. Por ejemplo, podemos encontrar un ID del mismo cliente en una tabla de datos de ventas y en una tabla de clientes.

40. ¿Qué es el valor NULL? ¿En qué se diferencia del cero o de un espacio en blanco?

Un valor NULL indica la ausencia de datos para una determinada celda 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.

40 mejores preguntas y respuestas de entrevistas de SQL intermedio

En esta sección, echamos un vistazo a las 40 preguntas y respuestas de SQL intermedio más populares, para que sepas qué esperar de tu entrevistador. Estas preguntas son más adecuadas para profesionales de SQL con algunos años de experiencia. 

1. ¿Qué es una función en SQL y por qué utilizar funciones?

Un objeto de base de datos que representa un conjunto de sentencias SQL utilizadas frecuentemente para una determinada tarea. 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.

2. ¿Qué tipos de funciones SQL conoces?

  • Funciones de agregación: trabajan sobre varios registros, normalmente agrupados, de las columnas proporcionadas de una tabla, y devuelven un único valor (normalmente por grupo).
  • Funciones escalares: trabajan sobre cada valor individual y devuelven un único valor.

Por otra parte, las funciones SQL pueden ser integradas (definidas por el sistema) o definidas por el usuario (creadas por el usuario para sus necesidades específicas).

3. ¿Qué funciones de agregación conoces?

  • AVG():- devuelve el valor medio
  • 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
  • FIRST(): devuelve el primer valor de una columna
  • LAST(): devuelve el último valor de una columna

4. ¿Qué funciones escalares conoces?

  • LEN() (en otras versiones de SQL, LENGTH()): devuelve la longitud de una cadena, incluidos los espacios en blanco
  • UCASE() (en otras versiones de SQL, UPPER()): devuelve una cadena convertida a mayúsculas
  • LCASE() (en otras versiones de SQL, LOWER()): devuelve una cadena convertida a minúsculas
  • INITCAP(): devuelve una cadena convertida a tipo título (es decir, cada palabra de la cadena empieza por mayúscula)
  • MID() (en otras versiones de SQL, SUBSTR()): extrae una subcadena de una cadena
  • ROUND():- devuelve el valor numérico redondeado a un número especificado de decimales
  • NOW(): devuelve la fecha y hora actuales

5. ¿Qué son las funciones de manipulación de mayúscula/minúscula? Pon algunos ejemplos.

Las funciones de manipulación de mayúscula/minúscula son un subconjunto de las funciones de carácter, y se utilizan para cambiar entre mayúsculas y minúsculas los datos de texto. Con estas funciones, podemos convertir los datos en mayúsculas, minúsculas o tipo título.

  • UCASE() (en otras versiones de SQL, UPPER()): devuelve una cadena convertida a mayúsculas
  • LCASE() (en otras versiones de SQL, LOWER()): devuelve una cadena convertida a minúsculas
  • INITCAP(): devuelve una cadena convertida a tipo título (es decir, cada palabra de la cadena empieza por mayúscula)

6. ¿Qué son las funciones de manipulación de caracteres? Pon algunos ejemplos.

Las funciones de manipulación de caracteres son un subconjunto de las funciones de carácter, 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
  • SUBSTR(): devuelve una parte de una cadena que satisface los puntos inicial y final proporcionados
  • LENGTH() (en otras versiones de SQL, LEN()): devuelve la longitud de una cadena, incluidos los espacios en blanco
  • REPLACE(): sustituye por otra subcadena todas las apariciones de una subcadena definida en una cadena proporcionada
  • INSTR(): devuelve la posición numérica de una subcadena definida en una cadena proporcionada
  • LPAD() y RPAD(): devuelven el relleno del carácter lado izquierdo/lado 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 los extremos izquierdo, derecho o ambos de una cadena proporcionada

7. ¿Cuál es la diferencia entre variables locales y globales?

A las variables locales solo se puede acceder dentro de la función en la que se declararon. En cambio, las variables globales, declaradas fuera de cualquier función, se almacenan en estructuras de memoria fijas y pueden utilizarse en todo el programa.

8. ¿Cuál es la ordenación de datos por defecto con la sentencia ORDER BY y cómo se cambia?

Por defecto, el orden es ascendente. Para cambiarlo a descendente, tenemos que añadir la palabra clave DESC como se indica a continuación:

SELECT * FROM table_name
ORDER BY col_1 DESC;

9. ¿Qué operadores de conjuntos conoces?

  • UNION: devuelve los registros obtenidos por al menos una de dos consultas (excluyendo los duplicados)
  • UNION ALL: devuelve los registros obtenidos mediante al menos una de dos consultas (incluyendo los duplicados)
  • INTERSECT: devuelve los registros obtenidos por ambas consultas
  • EXCEPT (llamado MINUS en MySQL y Oracle): devuelve solo los registros obtenidos por la primera consulta, pero no la segunda

10. ¿Qué operador se utiliza en la consulta para la concordancia de patrones?

El operador LIKE en combinación con los comodines % y _. El comodín % representa cualquier número de caracteres, incluido cero, y _ estrictamente un carácter.

11. ¿Cuál es la diferencia entre una clave primaria y una clave única?

Aunque ambos tipos de claves garantizan valores únicos en una columna de una tabla, la primera identifica de forma única cada registro de la tabla y la segunda impide los duplicados en esa columna.

12. ¿Qué es una clave primaria compuesta?

La clave primaria de una tabla, basada en varias columnas.

13. ¿Cuál es el orden de aparición de las sentencias comunes en la consulta SELECT?

SELECTFROMJOINONWHEREGROUP BYHAVINGORDER BYLIMIT

14. ¿En qué orden ejecuta el intérprete las sentencias comunes de la consulta SELECT?

FROMJOINONWHEREGROUP BYHAVINGSELECTORDER BYLIMIT

15. ¿Qué es una vista y por qué utilizarla?

Una tabla virtual que contiene un subconjunto de datos recuperados de una o más tablas de la base de datos (u otras vistas). Las vistas ocupan muy poco espacio, simplifican las consultas complejas, limitan el acceso a los datos por motivos de seguridad, permiten la independencia de los datos y resumen los datos de varias tablas.

16. ¿Podemos crear una vista basada en otra vista?

Sí. Se llaman vistas anidadas. Sin embargo, debemos evitar anidar varias vistas, ya que el código se vuelve difícil de leer y depurar.

17. ¿Podemos seguir utilizando una vista si se elimina la tabla original?

No. Cualquier vista basada en esa tabla quedará invalidada tras eliminar la tabla base. Si de todos modos intentamos utilizar esa vista, recibiremos un mensaje de error.

18. ¿Qué tipos de relaciones SQL conoces?

  • De uno a uno: cada registro de una tabla corresponde a un único registro de otra tabla
  • De uno a muchos: cada registro de una tabla corresponde a varios registros de otra tabla
  • De muchos a muchos: cada registro de ambas tablas corresponde a varios registros de otra tabla

19. ¿Cuáles son los valores posibles de un campo de datos BOOLEAN?

En algunas versiones de SQL, como PostgreSQL, el tipo de datos BOOLEAN existe explícitamente y adopta los valores TRUE, FALSE o NULL. En otras versiones, como Microsoft SQL Server, el tipo de datos BIT se usa para almacenar valores booleanos como enteros 1 (true) o 0 (false).

20. ¿Qué es la normalización en SQL y por qué utilizarla?

La normalización es un proceso de diseño de bases de datos que incluye la organización y reestructuración de los datos de forma que se reduzca su redundancia, dependencia, duplicación e incoherencia. 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 la seguridad más eficientes y una mayor flexibilidad en las consultas.

21. ¿Qué es la desnormalización en SQL y por qué utilizarla?

La desnormalización es el proceso opuesto a la normalización: introduce redundancia de 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.

22. ¿Qué diferencia hay entre renombrar una columna y darle un alias?

Renombrar una columna significa cambiar permanentemente su nombre real en la tabla original. Dar un alias a una columna significa darle un nombre temporal mientras se ejecuta una consulta SQL, con el fin de hacer el código más legible y compacto.

23. ¿Cuál es la diferencia entre subconsultas anidadas y correlacionadas?

Una subconsulta correlacionada es una consulta interna anidada en una consulta mayor (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. En cambio, una subconsulta no correlacionada no depende de los datos de la consulta externa y puede ejecutarse independientemente de ella.

24. ¿Cuál es la diferencia entre índices agrupados y no agrupados?

Mientras que un índice agrupado define el orden físico de los registros de una tabla y realiza la búsqueda de datos basándose en los valores clave, un índice no agrupado mantiene el orden de los registros que no coincide con el orden físico de los datos reales en el disco. Una tabla puede tener solo un índice agrupado, pero muchos no agrupados.

25. ¿Qué es la función CASE() ?

La forma de implementar la lógica 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 en caso de que se proporcione; de lo contrario, devuelve NULL. 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;

26. ¿Cuál es la diferencia entre las sentencias DELETE y TRUNCATE ?

DELETE es un comando de lenguaje de manipulación de datos (DML) reversible que se utiliza para eliminar una o más filas de una tabla en función de las condiciones especificadas en la cláusula WHERE. En cambio, TRUNCATE es un comando de lenguaje de definición de datos (DDL) irreversible que se utiliza para eliminar todas las filas de una tabla. DELETE funciona más lentamente que TRUNCATE. Además, no podemos utilizar la sentencia TRUNCATE para una tabla que contenga una clave foránea.

27. ¿Cuál es la diferencia entre las sentencias DROP y TRUNCATE ?

DROP borra completamente una tabla de la base de datos, incluida la estructura de la tabla y todas las restricciones asociadas, las relaciones con otras tablas y los privilegios de acceso. TRUNCATE borra todas las filas de una tabla sin afectar a la estructura de la tabla ni a las restricciones. DROP funciona más lentamente que TRUNCATE. Ambos son comandos de lenguaje de definición de datos (DDL) irreversibles.

28. ¿Cuál es la diferencia entre las sentencias HAVING y WHERE?

La primera trabaja sobre datos agregados después de agruparlos, mientras que la segunda comprueba cada fila individualmente. Si ambas sentencias están presentes en una consulta, aparecen en el siguiente orden: WHEREGROUP BYHAVING. El motor SQL las interpreta también en el mismo orden.

29. ¿Cómo se añade un registro a una tabla?

Utilizando la sentencia INSERT INTO en combinación con VALUES. La sintaxis es:

INSERT INTO table_name
VALUES (value_1, value_2, ...);

30. ¿Cómo eliminar un registro de una tabla?

Utilizando la sentencia DELETE. La sintaxis es:

DELETE FROM table_name
WHERE condition;

De este modo, también podemos eliminar varios registros si cumplen la condición establecida.

31. ¿Cómo añadir una columna a una tabla?

Utilizando la sentencia ALTER TABLE en combinación con ADD. La sintaxis es:

ALTER TABLE table_name
ADD column_name datatype;

32. ¿Cómo renombrar una columna de una tabla?

Utilizando la declaración 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;

33. ¿Cómo eliminar una columna de una tabla?

Utilizando la sentencia ALTER TABLE en combinación con DROP COLUMN. La sintaxis es:

ALTER TABLE table_name
DROP COLUMN column_name;

34. ¿Cómo seleccionar todos los registros pares o todos los registros impares de una tabla?

Comprobando el resto de la división entre 2. En algunas versiones de SQL (por ejemplo, PostgreSQL y My SQL), utilizamos la función MOD, en las demás (Microsoft SQL Server y SQLite). 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 =.

35. ¿Cómo impedir registros duplicados al hacer una consulta?

Utilizando la sentencia DISTINCT en combinación con SELECT o creando una clave única para esa tabla.

36. ¿Cómo insertar muchas filas en una tabla?

Utilizando la sentencia 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, ...),
      ...;

37. ¿Cómo buscar el enésimo valor más alto de una columna de una tabla?

Utilizando la cláusula OFFSET. Por ejemplo, para buscar el 6.º valor más alto de una columna, utilizaríamos la siguiente sintaxis:

SELECT * FROM table_name
ORDER BY column_name DESC
LIMIT 1
OFFSET 5;

38. ¿Cómo buscar los valores de una columna de texto de una tabla que empiezan por una letra determinada?

Utilizando el operador LIKE en combinación con los comodines % y _. Por ejemplo, tenemos que buscar todos los apellidos de una tabla que empiecen por "A". La consulta es:

SELECT * FROM table_name
WHERE surname LIKE 'A_';

Aquí suponemos que un apellido debe contener al menos dos letras. Sin esta suposición (es decir, que un apellido pueda ser solo A), la consulta es la siguiente:

SELECT * FROM table_name
WHERE surname LIKE 'A%';

39. ¿Cómo buscar el último id de una tabla?

Utilizando la función MAX(). De lo contrario, en muchas versiones de SQL, podemos utilizar la siguiente sintaxis:

SELECT id
FROM table_name
ORDER BY id DESC
LIMIT 1;

o en Microsoft SQL Server:

SELECT TOP 1 id
FROM table_name
ORDER BY id DESC

40. ¿Cómo seleccionar filas aleatorias de una tabla?

Utilizando la función RAND() en combinación con ORDER BY y LIMIT. En algunas versiones de SQL, como PostgreSQL, se llama RANDOM(). Por ejemplo, el código siguiente devolverá cinco filas aleatorias de una tabla en MySQL:

SELECT * FROM table_name
ORDER BY RAND()
LIMIT 5;

Conclusión

En resumen, hemos visto las 80 preguntas esenciales de la entrevista SQL para principiantes y niveles intermedios y las respuestas correctas a esas preguntas. Esperemos 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 intermedio de SQL.

Si crees que necesitas más formación para prepararte mejor para una entrevista, tienes los siguientes programas y cursos de SQL de DataCamp:

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 tiene muchos recursos para ayudarte a empezar, como el curso Introducción a SQL, el programa Analista de datos en SQL y la hoja de trucos de SQL. También puedes visitar la página de cursos de SQL para consultar todos los recursos.

¿Dónde puedo encontrar problemas SQL del mundo real para practicar?

En la plataforma DataCamp hay muchos proyectos SQL para perfeccionar tus habilidades, aptos para todos los niveles.

¿Cuáles son algunas preguntas habituales en las entrevistas 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 foráneas) y consultas sencillas para obtener datos de una única tabla utilizando condiciones (cláusulaWHERE).

¿Cuáles son algunas preguntas habituales en las entrevistas SQL para profesionales intermedios?

Los profesionales intermedios podrían enfrentarse a 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 conjuntos como UNION, INTERSECT y EXCEPT. También se les puede pedir que resuelvan problemas que impliquen optimizar las consultas para mejorar el rendimiento.

¿Cómo debo prepararme para una entrevista sobre SQL?

La preparación para una entrevista sobre SQL debe incluir:

  • Repasar los conceptos básicos y avanzados de SQL.
  • Practicar la redacción de consultas para resolver problemas comunes.
  • Comprender el diseño y la normalización de las bases de datos.
  • Familiarizarte con el dialecto SQL específico que utiliza la empresa (por ejemplo, PostgreSQL, MySQL, SQL Server).
  • Resolver ejemplos de preguntas y problemas de entrevistas disponibles en Internet.

¿Qué debo esperar en una entrevista técnica de SQL y cuál es la mejor forma de demostrar mis habilidades?

En una entrevista técnica de SQL, puedes esperar preguntas que pongan a prueba tus conocimientos de sintaxis SQL, diseño de bases de datos, optimización de consultas y capacidad para resolver problemas utilizando SQL. Para demostrar tus habilidades:

  • Practica explicando tu proceso mental cuando 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 hayas superado o las optimizaciones que hayas implementado.

¿Qué importancia tiene aprender dialectos específicos de SQL y en cuáles debo centrarme?

Aunque la sintaxis básica de SQL es la misma en los distintos RDBMS, cada sistema (como MySQL, PostgreSQL, SQL Server, Oracle) tiene su propio dialecto con características y funciones únicas. Aprender un dialecto SQL específico es importante si aspiras a puestos que utilizan 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.

Temas
Relacionado

blog

¿Qué es el análisis de datos? Una guía experta con ejemplos

Explora el mundo del análisis de datos con nuestra completa guía. Conoce su importancia, proceso, tipos, técnicas, herramientas y principales carreras en 2023
Matt Crabtree's photo

Matt Crabtree

15 min

blog

SQL Server, PostgreSQL, MySQL... ¿cuál es la diferencia? ¿Por dónde empiezo?

En este tutorial, aprenderás algunas de las diferencias básicas entre los dialectos SQL y por dónde deberías empezar.
Mona Khalil's photo

Mona Khalil

5 min

tutorial

Comprender la asimetría y la curtosis y cómo trazarlas

Una completa guía visual sobre la asimetría/curtosis y cómo afectan a las distribuciones y, en última instancia, a tu proyecto de ciencia de datos.
Bex Tuychiev's photo

Bex Tuychiev

10 min

tutorial

FUNCIÓN SQL COUNT()

COUNT() te permite contar el número de filas que cumplen determinadas condiciones. Aprende a utilizarlo en este tutorial.
Travis Tang 's photo

Travis Tang

3 min

tutorial

Seleccionar varias columnas en SQL

Aprende a seleccionar fácilmente varias columnas de una tabla de base de datos en SQL, o a seleccionar todas las columnas de una tabla en una simple consulta.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

FUNCIÓN SQL DATEDIFF()

DATEDIFF() es una de las funciones de manipulación de datos de fecha más utilizadas en SQL. Conviértete en un experto leyendo este tutorial.
Travis Tang 's photo

Travis Tang

3 min

See MoreSee More