Volver a la lista de artículos Artículos
Lectura de 22 minutos

Hoja de trucos para entrevistas SQL

¿Necesita consultar rápidamente todos los conocimientos fundamentales para una entrevista de SQL? ¿Quiere refrescar la memoria sobre algún concepto de SQL? Nuestra hoja de referencia para entrevistas SQL es tu nueva mejor amiga.

Prepararse para una entrevista de SQL requiere repasar sus conocimientos de SQL. Pero es muy fácil perderse entre todos los conceptos SQL que debes repasar. En tales situaciones, necesitas un recurso fácil de consultar repleto de conocimientos de SQL. Y por eso hemos creado esta Hoja de trucos SQL para entrevistas. Si necesitas consultar rápidamente conceptos básicos de SQL, esta hoja de trucos es para ti.

Si necesita algo más que un repaso rápido, considere la posibilidad de tomar nuestro SQL para principiantes curso. Le enseñará los fundamentos de SQL, desde la recuperación de datos hasta la creación de informes sencillos, utilizando 129 desafíos de codificación. A continuación, puede consolidar sus conocimientos practicando en los 1.190 desafíos de codificación de nuestra Ejercicio de SQL pista. Estarás preparado para cualquier entrevista sobre SQL.

Sin más preámbulos, vamos a sumergirnos de lleno en nuestra Hoja de trucos para entrevistas SQL. Empezaremos con la pregunta más básica:

¿Qué es SQL?

El lenguaje de consulta estructurado, o SQL, es un lenguaje de programación diseñado para manejar datos en bases de datos. Permite a los usuarios consultar, añadir, modificar, guardar y eliminar datos en una base de datos. También puede utilizarse para crear y modificar estructuras de bases de datos.

Información sobre tablas SQL

Término Explicación
Tabla Objeto básico de la base de datos. Formada por filas y columnas, almacena datos sobre un tema concreto (por ejemplo, una tabla "empleados" almacena datos sobre los empleados de una empresa).
Columnas (o atributos) Al igual que las columnas de una hoja de cálculo, las columnas de una tabla contienen detalles sobre el objeto de la base de datos (por ejemplo, la columna "ID" almacena los números de identificación de los empleados).
Filas (o registros) Al igual que las filas de una hoja de cálculo, las filas de una tabla contienen datos sobre una única instancia del tema de la base de datos (por ejemplo, una fila registra todos los datos de un empleado).
Campos Al igual que una celda de una hoja de cálculo, un campo es la intersección entre una columna y una fila. Almacena un dato, por ejemplo, el número de identificación de un empleado.
Tipos de datos Define qué tipo de datos pueden almacenarse en cada columna.

He aquí una visualización de la terminología anterior.

Hoja de trucos para entrevistas SQL

Comandos SQL

Término Explicación
Consulta Una sentencia SQL que recupera datos, es decir, una sentencia SELECT.
Sentencia Comando que puede ejecutarse en la base de datos; es el componente más básico de SQL.
Sentencias DDL Las sentencias DDLcrean y modifican objetos de base de datos, como tablas o índices. DDL es un subconjunto de SQL.
Sentencias DCL Las sentencias del Lenguaje de Control deDatosotorgan o eliminan derechos de acceso a partes de la base de datos. DCL es un subconjunto de SQL.
Sentencias DML Las sentencias del Lenguaje de Manipulación deDatosnos permiten manipular la información de una base de datos. DML es un subconjunto de SQL. Las sentencias DML más populares son las siguientes:
INSERT Inserta una o más filas nuevas de datos en una tabla.
UPDATE Modifica los valores existentes en una columna de la tabla.
DELETE Elimina una o varias filas de la tabla.
Sentencias DQL Las sentencias Data Query Language recuperan datos de una base de datos, es decir, las sentencias SELECT.
SELECT Obtiene datos de una o varias tablas de una base de datos.

Consultas SQL

Cláusulas básicas de una consulta SQL

SELECT es la sentencia más utilizada en las consultas SQL. Esta consulta SQL típica también puede incluir varias cláusulas que nos permiten refinar los resultados de la consulta. Esta es la sintaxis de una consulta SQL:

SELECT column_1, 
 column_2, 
 aggregate_function(column_3),
 …
FROM table_1
JOIN table_2 
ON table_1.common_column = table_2.common_column
WHERE column_1 <condition>
GROUP BY column_1, column_2, …
HAVING aggregate_function(column_3) <condition>
ORDER BY column_1 [ASC|DESC];

He aquí una explicación y un ejemplo de cada cláusula:

Cláusula SQL Explicación Ejemplo de código Salida del código
FROM Define de qué tabla extraer los datos.
SELECT 
  first_name, 
  last_name
FROM employees;
Devuelve los nombres y apellidos de los empleados de la tabla employees.
JOIN Une los datos de dos o más tablas para poder consultarlos como una sola tabla.
SELECT 
  e.first_name,
  e.last _name,
  d.name
FROM employees e
JOIN department d
ON e.department_id = d.id;
Une las tablas employees y department en el ID de departamento. Devuelve los nombres y apellidos de los empleados y el nombre de su departamento.
WHERE Filtra los registros antes de la agregación y devuelve sólo los que cumplen la condición establecida.
SELECT 
  first_name,
  last_name
FROM employees
WHERE last_name = 'Smith';
Devuelve el nombre y los apellidos de todos los empleados cuyo apellido es Smith de la tabla employees.
GROUP BY Agrupa los resultados de la consulta en función de los valores de columna compartidos. Se utiliza a menudo con funciones de agregación.
SELECT 
  nationality,
  AVG(salary)
FROM employees
GROUP BY nationality;
Devuelve el salario medio de los empleados para cada nacionalidad.
HAVING Filtra los registros tras la agregación y devuelve sólo los que cumplen la condición establecida.
SELECT 
  nationality,
  AVG(salary)
FROM employees
GROUP BY nationality
HAVING AVG(salary) > 5000;
Devuelve el salario medio de los empleados para cada nacionalidad - pero sólo para las nacionalidades en las que el salario medio es superior a 5.000.
ORDER BY Ordena la salida en orden ascendente (1-10, A-Z) o descendente (10-1, Z-A) por los valores de la(s) columna(s) dada(s).
SELECT 
  first_name,
  last_name
FROM employees
ORDER BY last_name ASC;
Devuelve los nombres y apellidos de los empleados y ordena la salida alfabéticamente por los apellidos de los empleados.

JOINs

JOIN es una cláusula SQL que une dos o más tablas, permitiendo la recuperación de datos de todas las tablas unidas.

Puede encontrar explicaciones y representaciones de los diferentes tipos de JOINs en el siguiente gráfico.

INNER JOIN: Devuelve sólo las filas coincidentes de las tablas unidas.

Hoja de trucos para entrevistas SQL

LEFT (OUTER) JOIN: Devuelve todas las filas de la primera tabla (izquierda) y sólo las filas coincidentes de la segunda tabla (derecha). Los valores no coincidentes de la tabla derecha se muestran como NULL.

Hoja de trucos para entrevistas SQL

RIGHT (OUTER) JOIN: Devuelve todas las filas de la segunda tabla (derecha) y sólo las filas coincidentes de la primera tabla (izquierda). Los valores no coincidentes de la tabla izquierda se muestran como NULL.

Hoja de trucos para entrevistas SQL

FULL (OUTER) JOIN: Devuelve todas las filas de las tablas izquierda y derecha. Los valores no coincidentes de cualquiera de las tablas se muestran como NULLs.

Hoja de trucos para entrevistas SQL

Agregación en SQL

La agregación consiste en realizar cálculos en varias filas y devolver un único valor que representa un resultado resumido o estadístico. También se conoce como agregar filas, por ejemplo, contar filas, calcular la media o la suma por grupo de filas, etc.

Cómo realizar la agregación de datos en SQL: Esta operación se realiza utilizando las funciones funciones de agregación Basta con pasar el argumento entre los paréntesis de la función. Es decir, escriba el nombre de la columna que desea agregar:

SELECT aggregate_function (column_name) 
FROM table_name;

GROUP BY: La agregación se realiza normalmente junto con la cláusula GROUP BY. GROUP BY organiza las filas con los mismos valores de columna en un grupo. La combinación de funciones de agregación con GROUP BY permite mostrar etiquetas junto a los valores agregados, como en el gráfico siguiente:

Hoja de trucos para entrevistas SQL

HAVING: La cláusula HAVING filtra grupos basándose en el resultado de una función agregada; sólo los registros que satisfacen la condición se muestran en la salida.

A continuación se muestra un ejemplo de su funcionamiento:

Hoja de trucos para entrevistas SQL

Funciones de agregación: A continuación se enumeran las funciones de agregado más comunes. Puede encontrar más información sobre las funciones de agregación en nuestra Hoja de consulta de funciones de agregación de SQL.

Función Agregada Explicación Código Ejemplo Salida de código
COUNT() Cuenta el número de filas.
SELECT 
  country,
  COUNT(id)
FROM orders
GROUP BY country;
Devuelve el número de pedidos de cada país de la tabla.
AVG() Calcula el valor medio.
SELECT 
  country,
  AVG(value)
FROM orders
GROUP BY country;
Devuelve el valor medio del pedido por país.
SUM() Calcula la suma de valores.
SELECT 
  country,
  SUM(value)
FROM orders
GROUP BY country;
Suma el valor de los pedidos por país.
MIN() Devuelve el valor más pequeño.
SELECT 
  country,
  MIN(value)
FROM orders
GROUP BY country;
Devuelve el valor de pedido más bajo por país.
MAX() Devuelve el valor más alto.
SELECT 
  country,
  MAX(value)
FROM orders
GROUP BY country;
Devuelve el valor de pedido más alto por país.

Para profundizar en GROUP BY y las funciones agregadas, consulte nuestro artículo Funciones GROUP BY y agregadas: Una visión completa.

Operadores de conjunto

Los operadores de conjunto de SQL combinan las salidas de una o más SELECT sentencias en una única salida.

Operador Set Explicación
UNION Muestra sólo filas únicas (no duplicadas) de todas las salidas de sentencia SELECT.
UNION ALL Muestra todas las filas de todas las salidas de sentencias SELECT, incluidas las duplicadas.
INTERSECT Muestra sólo las filas que existen en todas las salidas de las sentencias SELECT.
MINUS or EXCEPT Devuelve las filas de la primera salida SELECT que no existen en otra(s) salida(s) SELECT.

Subconsultas

SELECT Las consultas que se incrustan en otra consulta SQL se denominan subconsultas.

Se pueden utilizar en las siguientes sentencias principales:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

Las cláusulas que aceptan subconsultas son:

  • SELECT
  • FROM
  • WHERE
  • HAVING
  • JOIN

Los tipos de subconsultas son:

  • Escalar - Devuelve exactamente un valor.
  • Multifila - Devuelve múltiples valores.
  • Correlación - Hace referencia a la consulta principal.

La infografía siguiente muestra los diferentes tipos de subconsultas.

Ejemplo 1: Subconsulta escalar

Hoja de trucos para entrevistas SQL

Ejemplo 2: Subconsulta de varias filas

Hoja de trucos para entrevistas SQL

Ejemplo 3: Subconsulta correlacionada

Hoja de trucos para entrevistas SQL

Operadores de subconsulta: Las subconsultas se suelen utilizar con varios operadores que permiten comparar los datos de la consulta principal con la salida de la subconsulta.

Operador de subconsulta Explicación
ANY o SOME Devuelve TRUE si algún valor de una subconsulta satisface la condición de la consulta principal.
ALL Devuelve TRUE si todos los valores de una subconsulta cumplen la condición de la consulta principal.
EXISTS Devuelve TRUE si una subconsulta devuelve alguna fila.
IN Devuelve todos los valores de la consulta principal que se pueden encontrar en la subconsulta que devuelve varios valores, es decir, una lista de valores.

Operadores y expresiones SQL

Los operadores en SQL se utilizan para operaciones de comparación, aritméticas y lógicas.

Las expresiones constan de uno o más valores, operadores, funciones y otros componentes de consulta que calculan valores y crean condiciones. La expresión más común es CASE WHEN.

Operadores de comparación

Los operadores de comparación se utilizan para comparar valores dentro de una consulta.

Operador de comparación Explicación Código Ejemplo Salida de código
= Ambos valores son iguales o coincidentes.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary = 5000;
Devuelve todos los empleados cuyo salario es exactamente 5.000.
< Menos (menor, más pequeño) que el valor comparado.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary < 5000;
Devuelve todos los empleados cuyo salario es inferior a 5.000.
<= Inferior o igual al valor comparado.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary <= 5000;
Devuelve todos los empleados cuyo salario es igual o inferior a 5.000.
> Mayor (más alto, más grande) que el valor comparado.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary > 5000;
Devuelve todos los empleados cuyo salario es superior a 5.000.
>= Mayor o igual que el valor comparado.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary >= 5000
Devuelve todos los empleados cuyo salario es de 5.000 o superior.
<> Los valores no son iguales o no coinciden.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary <> 5000;
Devuelve todos los empleados cuyo salario no llega a 5.000.
BETWEEN Comprueba si el valor está dentro del rango especificado. El operador es inclusivo, lo que significa que se incluyen los valores iguales a los valores superior e inferior del intervalo.
SELECT 
  first_name, 
  last_name
FROM employees
WHERE salary BETWEEN 5000 
  AND 6000;
Devuelve todos los empleados cuyo salario está entre 5.000 y 6.000, incluyendo aquellos cuyo salario es exactamente 5.000 ó 6.000.
LIKE Comprueba si el valor coincide con el patrón de cadena (texto) dado. Importante: Este operador distingue entre mayúsculas y minúsculas.
SELECT 
  first_name,
  last_name
FROM employees
WHERE last_name LIKE 'van%';
Devuelve todos los empleados cuyos apellidos empiecen por 'van', como 'van Basten' y 'vanBeek'. No incluye 'Vandeley', ya que la búsqueda distingue entre mayúsculas y minúsculas.
ILIKE Comprueba si el valor coincide con un patrón de cadena (no distingue mayúsculas de minúsculas).
SELECT 
  first_name,
  last_name
FROM employees
WHERE last_name ILIKE 'van%';
Devuelve todos los empleados cuyos apellidos empiecen por "van", como "van Basten", "vanBeek" y "Vandeley"; la búsqueda no distingue entre mayúsculas y minúsculas.
IS NULL Comprueba si el valor es NULL.
SELECT 
  first_name,
  last_name
FROM employees
WHERE end_date IS NULL;
Devuelve todos los empleados que siguen en la empresa, es decir, cuya fecha de fin de empleo es NULL.
IS NOT NULL Comprueba si el valor no es NULL.
SELECT 
  first_name,
  last_name
FROM employees
WHERE end_date IS NOT NULL;
Devuelve todos los exempleados, es decir, los registros en los que la fecha de finalización del empleo no es NULL.
IN Comprueba si el valor o valores pueden encontrarse en la lista de valores dada.
SELECT 
  first_name,
  last_name
FROM employees
WHERE city IN (
  'New York', 
  'Los Angeles', 
  'Baltimore');
Devuelve todos los empleados que viven en Nueva York, Los Ángeles o Baltimore.

Operadores aritméticos

Los operadores aritméticos se utilizan para realizar operaciones matemáticas en SQL.

Operador aritmético Explicación Código Ejemplo Salida de código
+ Añade valores.
SELECT 
  first_name,
  last_name,
  salary + bonus
FROM employees;
Devuelve los nombres de los empleados y calcula su remuneración total, es decir, la suma de su salario y sus primas.
- Resta los valores.
SELECT 
  first_name,
  last_name,
  vacation_days - used_vacation_day
FROM employees;
Devuelve los nombres de los empleados y calcula sus días de vacaciones restantes, es decir, la diferencia entre sus días de vacaciones totales y los días de vacaciones utilizados.
* Multiplica los valores.
SELECT 
  first_name,
  last_name,
  salary*1.03
FROM employees;
Devuelve los nombres de los empleados y calcula su salario tras un aumento del 3%, es decir, el producto de su salario actual por 1,03.
/ Divide los valores.
SELECT 
  first_name,
  last_name,
  salary/12
FROM employees;
Devuelve los nombres de los empleados y calcula su salario mensual, es decir, su salario anual dividido por 12.
** Eleva un número a la potencia de otro.
SELECT 
  first_name,
  last_name,
salary * 1.05 ** 3
FROM employees;
Devuelve los nombres de los empleados y calcula su salario después de tres años de aumentos anuales del 5%, es decir, un producto de su salario actual y 1,05 a la potencia de 3.
% Devuelve el resto de la división (operador módulo).
SELECT 
  first_name,
  last_name
FROM employees
WHERE id % 2 = 0;
Devuelve todos los empleados cuyo ID es un número par (porque el resto al dividir ID por dos es cero).

Operadores lógicos

Los operadores lógicos combinan múltiples condiciones.

Operador lógico Explicación Ejemplo de código Salida de código
AND Comprueba si se cumplen ambas condiciones.
SELECT 
  first_name,
  last_name
FROM employees
WHERE department = 'IT' 
  AND salary > 5000;
Devuelve todos los empleados que trabajan en TI y cuyo salario es superior a 5.000.
OR Comprueba si se cumple alguna de las dos condiciones.
SELECT 
  first_name,
  last_name
FROM employees
WHERE department= 'IT' 
  OR salary > 5000;
Devuelve todos los empleados que trabajan en TI o cuyo salario es superior a 5.000.
NOT Comprueba si no se cumple la condición dada.
SELECT 
  first_name,
  last_name
FROM employees
WHERE NOT department = 'IT';
Devuelve todos los empleados que no trabajan en TI.

CASO WHEN

CASE WHEN es una expresión condicional que devuelve valores especificados en los casos en que se cumple y no se cumple la condición. Es la implementación en SQL de la lógica IF-THEN.

La sintaxis de CASE WHEN es:

CASE 
    WHEN condition_1 THEN value_1
    WHEN condition_2 THEN value_2
    ...
    ELSE default_value
END;
  • CASE inicia la expresión.
  • WHEN especifica la condición que debe cumplirse.
  • THEN especifica el valor que se devolverá si se cumple la condición.
  • ELSE especifica el valor que se devolverá si no se cumple la condición.
  • END termina la expresión.

Funciones SQL

Las funciones SQL son fragmentos de código predefinidos y con nombre que pueden utilizarse en una consulta SQL. Estas funciones aceptan argumentos (escritos en los paréntesis de la función) que le indican a la función cómo o dónde ejecutarse.

Los tipos básicos de funciones SQL son:

Funciones de Texto

Función de texto Explicación Ejemplo de código Salida de código
CONCAT() Concatena dos o más cadenas en una sola.
SELECT 
  CONCAT(first_name, 
    ' ', last_name)
FROM employees;
Concatena los nombres y apellidos de los empleados de dos columnas separadas en una sola cadena mostrada en una columna.
SUBSTRING() Devuelve parte de una cadena.
SELECT 
  first_name,
  last_name,
  SUBSTRING(last_name, 4)
FROM employees;
Devuelve los nombres completos de los empleados y las cuatro primeras letras de sus apellidos.
LENGTH() Devuelve la longitud de una cadena (en número de caracteres).
SELECT 
  first_name,
  last_name,
  LENGTH(last_name)
FROM employees;
Devuelve los nombres completos de los empleados y el número de caracteres de sus apellidos.
LEFT() Devuelve un número especificado de caracteres desde el inicio (lado izquierdo) de una cadena.
SELECT 
  first_name,
  last_name,
  LEFT(last_name, 3)
FROM employees;
Devuelve los nombres completos de los empleados y las tres primeras letras de sus apellidos.
RIGHT() Devuelve un número especificado de caracteres desde el final (lado derecho) de una cadena.
SELECT 
  first_name,
  last_name,
  RIGHT(last_name, 3)
FROM employees;
Devuelve los nombres completos de los empleados y las tres últimas letras de sus apellidos.
TRIM() Elimina los espacios vacíos a ambos lados de una cadena.
SELECT 
  TRIM(first_name),
  TRIM(last_name),
FROM employees;
Devuelve los nombres completos de los empleados sin espacios iniciales ni finales, por ejemplo, el apellido Jonas' se convierte en 'Jonas'.
REPLACE() Sustituye una subcadena especificada por otra subcadena.
SELECT 
  first_name,
  last_name,
  REPLACE(department,
    'Acuonting', 'Accounting')
FROM employees; 
Devuelve los nombres completos de los empleados y sus departamentos mientras cambia el nombre del departamento 'Acuonting' a 'Accounting'.
REVERSE() Invierte una cadena.
SELECT REVERSE(last_name)
FROM employees;
Devuelve versiones invertidas de los apellidos de los empleados, por ejemplo, "Jonas" se convierte en "sanoJ".
UPPER() Convierte una cadena a todos los caracteres en mayúsculas.
SELECT UPPER(last_name)
FROM employees;
Devuelve las versiones en mayúsculas de los apellidos de los empleados, por ejemplo, "Jonas" se convierte en "JONAS".
LOWER() Convierte una cadena de caracteres en minúsculas.
SELECT LOWER(last_name)
FROM employees;
Devuelve versiones en minúsculas de los apellidos de los empleados, por ejemplo, "Jonas" se convierte en "jonas".

Puede encontrar una revisión en profundidad de las funciones de texto en nuestro artículo Una visión general de las funciones de texto SQL.

Funciones Numéricas

Función Numérica Explicación Ejemplo de Código Salida de Código
ABS() Devuelve el valor absoluto de un valor numérico.
SELECT ABS(-169.23);
-169.23 se convierte en 169.23.
ROUND() Redondea un valor numérico a un número especificado de decimales.
SELECT ROUND(169.2389, 3);
169,2389 se redondea al tercer decimal y se convierte en 169,239.
CEILING() Redondea un valor numérico al primer entero mayor o igual que él.
SELECT CEILING(169.2389);
169,2389 se redondea a 170.
FLOOR() Redondea un valor numérico por defecto al primer entero menor o igual que él.
SELECT FLOOR(169.2389);
169,2389 se redondea a 169.
POWER() Eleva un valor numérico a la potencia de otro valor numérico.
SELECT POWER(5, 4);
Eleva 5 a la potencia de 4, que es igual a 625.
SQRT() Devuelve la raíz cuadrada de un valor numérico.
SELECT SQRT(25);
Devuelve la raíz cuadrada de 25, que es igual a 5.
RAND() o RANDOM() Devuelve un número aleatorio de coma flotante entre 0 y 1.
SELECT RANDOM();
Por ejemplo, devuelve 0,4371221377641987.
LOG() Devuelve el logaritmo de un valor numérico de una base especificada.
SELECT LOG(12, 2);
Devuelve el logaritmo de base 2 de 12, que es 0,2789429456511298.
LN() Devuelve el logaritmo natural de un valor numérico.
SELECT LN(12);
Devuelve el logaritmo natural de 12, que es 2,4849066497880004.

Puedes encontrar una inmersión detallada en las funciones numéricas en nuestro artículo Funciones Numéricas SQL.

Funciones NULL

NULL Función Explicación Ejemplo de Código Código de salida
COALESCE() Devuelve el primer valor no NULL de una lista de argumentos.
SELECT 
  first_name,
  last_name,
  COALESCE(department, 'N/A')
FROM employees;
Devuelve los empleados y sus departamentos. Cuando el valor de la columna department es NULL, se muestra como N/A en la salida.
NULLIF() Devuelve NULL si dos expresiones son iguales; en caso contrario, devuelve la primera expresión.
SELECT 
  first_name,
  last_name
  NULLIF(department, 'N/A')
FROM employees;
Devuelve los empleados y sus departamentos. Cuando el valor de la columna department es N/A, se muestra como NULL en la salida.

DML - Modificación de datos en SQL

A continuación se ofrece un resumen de tres comandos utilizados para la modificación de datos (comandos DML).

Comando DML Explicación Ejemplo de Código Código de salida
INSERT Inserta una o más filas de datos en una tabla.
INSERT INTO employees (first_name, 
  last_name, department)
VALUES ('Francis', 'Ford', 'Sales');
Inserta un nuevo empleado en la tabla employees. El nombre del empleado insertado es Francis, su apellido es Ford y trabaja en el departamento de Ventas.
UPDATE Modifica el valor de la columna de una o más filas.
UPDATE employees
SET department = 'Accounting'
WHERE department = 'Acuonting';
Actualiza el nombre de departamento mal escrito 'Acuonting' con el correcto 'Accounting'.
DELETE Elimina una o varias filas de la tabla.
DELETE
FROM employees
WHERE id = 6;
Elimina todos los datos de la fila cuyo valor de ID de empleado es 6.

DDL - Definición de la Estructura de Datos en SQL

Los conceptos clave de DDL (Lenguaje de Definición de Datos) son:

Comandos DDL

He aquí un resumen de los comandos DDL:

Comando DDL Explicación Ejemplo de Código Código de salida
CREATE TABLE Crea una nueva tabla con los nombres de columna, tipos de datos y restricciones especificados.
CREATE TABLE customers(
  id INT PRIMARY KEY,
  first_name VARCHAR(120),
  last_name VARCHAR(120)
);
Crea la tabla customers con columnas llamadas id, first_name, y last_name. Los tipos de datos de las columnas son INT, VARCHAR(120), y VARCHAR(120), respectivamente. Además, la restricción de clave primaria se define en la columna ID.
DROP TABLE Elimina toda la tabla y su definición de la base de datos.
DROP TABLE customers;
Elimina la tabla customers junto con sus columnas, datos, definiciones de tipos de datos, restricciones, etc.
CREATE VIEW Crea una consulta almacenada (también conocida como "vista") que puede reutilizarse en otras consultas.
CREATE VIEW salary_summary AS
SELECT 
  department, 
  AVG(salary)
FROM employees
GROUP BY department;
Crea una vista llamada salary_summary, que calcula el salario medio por departamento.
DROP VIEW Elimina completamente una vista y su definición de la base de datos.
DROP VIEW salary_summary;
Elimina la vista salary_summary y su definición de la base de datos.
ALTER TABLE Modifica la estructura de la tabla existente por...
... renombrar la tabla
ALTER TABLE employees
RENAME TO salaries;
Cambia el nombre de la tabla employees por salaries.
... cambiar el nombre de una columna
ALTER TABLE employees
RENAME COLUMN last_name TO surname;
Cambia el nombre de la columna last_name por surname.
.. cambiar el tipo de datos de una columna
ALTER TABLE employees
ALTER COLUMN salary DECIMAL(10,2);
Cambia el tipo de datos de la columna salary a DECIMAL(10,2).
... añadir una columna
ALTER TABLE employees
ADD date_of_birth DATE;
Añade la columna date_of_birth (del tipo de datos DATE ) a la tabla employees.
... eliminar la columna
ALTER TABLE employees
DROP COLUMN  end_date;
Elimina la columna end_date de la tabla employees.

Tipos de Datos SQL

A continuación se muestra un resumen de los tipos de datos SQL más comunes.

Tipo de datos Explicación
Tipos de datos numéricos
INT Representa números enteros. El rango va de -2147483648 a 2147483648 y utiliza 4 bytes de almacenamiento.
DECIMAL(p, s) Representa números decimales de punto fijo con la precisión p (el número total de dígitos antes y después del punto decimal) y la escala s (dígitos después del punto decimal).
FLOAT Representa valores aproximados con precisión de coma flotante.
SMALLINT Representa enteros pequeños de -32.768 a 32.767; utiliza 2 bytes de almacenamiento.
Tipos de cadena
CHAR(n) Representa una cadena de longitud fija de n caracteres; la longitud máxima es 255.
VARCHAR(n) Representa una cadena de longitud variable de n caracteres (máximo 255).
TEXT Representa una cadena de longitud variable grande (hasta 65.535 bytes).
Tipos de datos de fecha y hora
DATE Fecha en formato AAAA-MM-DD.
TIME Una hora en formato HH:MI:SS.
DATETIME Fecha y hora en formato AAAA-MM-DD HH:MI:SS.
INTERVAL Una fecha o periodo de tiempo, por ejemplo, AÑO, MES, DÍA, HORA, etc.
BOOLEAN Un valor lógico, es decir, VERDADERO o FALSO.

Restricciones SQL

A continuación se ofrece un resumen de las restricciones SQL más comunes:

Restricción Explicación Ejemplo de Código Salida del Código
PRIMARY KEY Asegura que los valores de la columna son únicos (no duplicados) y no NULL.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2)
);
Los valores en la columna id de la tabla orders serán únicos y no aceptarán NULLs.
FOREIGN KEY Vincula una columna de una tabla a la clave primaria de otra tabla. Esto crea una relación entre las dos tablas.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2),
  customer_id INT,
  FOREIGN KEY (customer_id) REFERENCES customers (id)
);
La columna customer_id de la tabla orders es una clave ajena que hace referencia a la columna id de la tabla customers.
NOT NULL Asegura que una columna no acepta valores NULL.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2) NOT NULL
);
Los valores de la columna value no pueden ser NULL, es decir, cada pedido debe tener un valor.
UNIQUE Garantiza que los valores de la columna sean únicos, pero permite valores NULL.
CREATE TABLE customer(
  id INT PRIMARY KEY,
  name VARCHAR(120),
  nin INT UNIQUE
);
Los valores de la columna nin (Número Nacional de Identificación) tienen que ser únicos, pero se permiten valores NULL.
DEFAULT Define un valor de columna por defecto cuando no se especifica un valor para esa columna durante INSERT.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2),
  order_date DEFAULT CURRENT_DATE
);
Si order_date no se define durante INSERT, el valor por defecto será la fecha actual.
CHECK Comprueba si los valores de una columna cumplen una condición establecida ; rechaza los que no la cumplen.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2),
  check(value>0)
);
Aplica una regla según la cual un valor de orden no puede ser cero si se va a almacenar en la tabla orders.

Recursos adicionales para la entrevista SQL

Junto con esta hoja de trucos para entrevistas SQL, utilice estos recursos adicionales para repasar las preguntas y los temas de las entrevistas SQL:

  1. Ejercicio de SQL completo para entrevistas
  2. Top 100+ Preguntas y Ejercicios de Práctica para Entrevistas SQL
  3. Las 10 mejores preguntas de la entrevista SQL JOIN con respuestas
  4. Las 9 mejores preguntas de la entrevista SQL GROUP BY
  5. Las 10 mejores preguntas de la entrevista SQL Funciones de ventana
  6. Las 5 mejores preguntas de la entrevista SQL CTE
  7. Top 27 Preguntas de la Entrevista SQL avanzado con Respuestas
  8. 15 preguntas difíciles de SQL para usuarios experimentados

Más allá de la hoja de respuestas de la entrevista SQL

Hemos cubierto todos los conceptos fundamentales en esta hoja de trucos para entrevistas SQL. Para impresionar durante tu entrevista, necesitarás demostrar tu dominio de estas ideas.

Esta hoja de trucos te ayudará a buscar rápidamente la definición o un ejemplo de un comando SQL concreto. Utilízala siempre que te atasques con la terminología o los conceptos de SQL. Sin embargo, no es un recurso de aprendizaje independiente. Es mejor utilizarla junto con nuestro SQL para principiantes curso, Ejercicio de SQL track, u otros recursos principales para aprender y practicar SQL.

Combina estos materiales, sigue practicando y ¡superarás esa entrevista SQL!