Ultimate SQL Cheat Sheet para marcar para más tarde [2022]

Publicado: 2022-06-17

SQL, o lenguaje de consulta estructurado , es un conjunto de comandos para administrar operaciones de bases de datos relacionales como eliminar, crear, actualizar, leer, etc.

SQL ha sido el estándar internacional utilizado por las bases de datos relacionales desde 1987. Hay cuatro tipos de comandos SQL:

  • Lenguaje de definición de datos (DDL) : estos comandos definen la estructura de la base de datos. Por ejemplo, soltar, renombrar, modificar y crear. Afectan a la estructura de la base de datos. Por ejemplo, crear una base de datos o cambiar el nombre de una tabla.
  • Lenguaje de manipulación de datos (DML) : estos comandos se utilizan para trabajar con los datos. Por ejemplo, insertar, seleccionar, actualizar, eliminar. Estos no afectan las tablas o la estructura de la base de datos, sino los datos presentes en las tablas. Por ejemplo, insertar una nueva fila o actualizar un valor en la fila.
  • Lenguaje de control de transacciones (TCL) : estos comandos controlan el procesamiento de transacciones en la base de datos. Por ejemplo, revertir, guardar, confirmar. Estos comandos tienen un impacto permanente en la base de datos. Por ejemplo, revertir toda la transacción al estado anterior, incluso si falla un proceso.
  • Lenguaje de control de datos (DCL) : los comandos de control de datos se utilizan para autorizar a los usuarios y otorgar solo los permisos necesarios a un usuario o grupo. Por ejemplo, un usuario puede tener permisos de solo lectura, mientras que otro puede tener permisos de lectura y escritura. El control de acceso se realiza mediante los comandos otorgar, denegar y revocar.

A continuación se muestra la hoja de trucos de SQL que contiene los comandos más útiles. La hoja de trucos lo ayudará a hacer referencia rápidamente a los comandos requeridos con la sintaxis correcta y el resultado esperado de una consulta. En esta hoja de trucos, nos centramos en los comandos DDL y DML, ya que los otros dos tipos son bastante sencillos de usar.

Consultas de definición y manipulación de datos

Dominio Descripción Ejemplo
AGREGAR Agrega una columna o restricción (como se especifica) a la tabla existente. ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);

ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);
ALTERAR TABLA Altera la tabla especificada para agregar, actualizar o eliminar la columna de una tabla. ALTER TABLE employee ADD last_name varchar2(255);

ALTER TABLE employee DROP COLUMN last_name;
ALTERAR COLUMNA Cambie el tipo de datos de la columna. Por ejemplo, para cambiar el tipo de columna join_date de la tabla de empleados de varchar2 a datetime. ALTER TABLE employee ALTER COLUMN joining_date datetime;
TODOS Operador lógico utilizado con SELECT, WHERE y HAVING, y devuelve verdadero si todos los valores satisfacen la condición de la subconsulta SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = 'R&D');
Y Operador lógico que devuelve verdadero solo cuando se cumplen todas las condiciones de la cláusula WHERE. SELECT employee_name, salary from employee WHERE city = 'California' AND salary > 2000;
NINGÚN operador lógico; devuelve verdadero si incluso uno de los valores de la subconsulta satisface la condición en la cláusula where SELECT employee_id, employee_name from employee WHERE employee_id = ANY (select employee_id from department_details WHERE department = 'HR' OR department = 'R&D');
COMO Crea un alias para la tabla o columna hasta el momento de la ejecución de la consulta, útil cuando el nombre se usa varias veces, especialmente durante las uniones de tablas. SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston';
ASC Devuelve los datos en orden de finalización asc , utilizados con la cláusula ORDER BY. ORDER BY ordena los resultados de forma ascendente por defecto. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC;
ENTRE Para seleccionar valores dentro de un rango SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000;
CASO Consiste en un conjunto de sentencias; devuelve el valor de la declaración que es verdadera, SI ninguna de las condiciones se cumple, se ejecuta la condición en la parte ELSE. Si no hay más, devuelve NULL. SELECT order_amount, customer_id, contact_email CASE WHEN order_amount > 3000 THEN "Eligible for 40% discount" WHEN order_amount between 2000 and 3000 THEN "Eligible for 25% discount" ELSE "Eligible for 5% discount" END FROM order_details;
CREAR BASE DE DATOS Crea una nueva base de datos con el nombre especificado CREATE DATABASE movies_development;
CREAR MESA Crea una nueva tabla con el nombre de tabla especificado y los nombres y tipos de columna CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255));
DEFECTO Establece un valor predeterminado para la columna especificada, que se usa con los comandos CREATE o ALTER TABLE CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE);

ALTER TABLE product ALTER is_available SET DEFAULT true;
ELIMINAR Elimina datos de la tabla especificada DELETE from employee where employee_id = 345;
DESC Devuelve los datos en el orden final de sc , utilizado con la cláusula ORDER BY. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC;
SOLTAR COLUMNA Elimina la columna especificada de la tabla especificada. ALTER TABLE employee DROP COLUMN employee_name;
SOLTAR BASE DE DATOS Elimina toda la base de datos. DROP DATABASE movies_development;
CAÍDA POR DEFECTO Elimina el valor predeterminado de la columna especificada ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT;
MESA PLEGABLE Elimina la tabla especificada DROP TABLE employee;
EXISTE Comprueba si existe o no un registro en la subconsulta y devuelve verdadero si se encuentran uno o más resultados. SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR');
DE Especifica la tabla de la que se deben seleccionar o eliminar los datos SELECT * FROM employee; DELETE FROM employee where employee_id = 345;
AGRUPAR POR Agrupa datos según la columna especificada, utilizada para funciones agregadas Mostrar el número de empleados en cada país

SELECT COUNT(employee_id), country from employee GROUP BY country;

Muestra las valoraciones medias de los empleados de cada departamento

SELECT AVG(rating), department from employee GROUP BY department;
EN Se usa para seleccionar múltiples valores a la vez en una cláusula WHERE en lugar de usar múltiples condiciones OR SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia');
ÍNDICE Index hace que la consulta de datos sea más eficiente y rápida. Los índices generalmente se crean en las columnas que más se buscan. Crear índice:
CREATE INDEX idx_employee ON employee (first_name, last_name);

Cree un índice único donde los valores no se puedan duplicar:
CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name);

Eliminar el índice:
ALTER TABLE employee DROP INDEX idx_employee;
INSERTAR EN Agregar nueva fila en una tabla INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
ES NULO Comprueba los valores nulos SELECT employee_id from employee where employee_name IS NULL;
NO ES NULO Comprueba los valores que no son nulos SELECT employee_id, core_skill from employee where core_skill IS NOT NULL;
ME GUSTA Devuelve todos los valores que coinciden con un patrón dado SELECT employee_id, first_name, last_name where first_name LIKE '%tony';
NO COMO Devuelve todos los valores que no coinciden con el patrón dado SELECT employee_id, first_name, last_name where first_name NOT LIKE '%tony';
O Devuelve verdadero si se cumple una de las condiciones de la cláusula where SELECT * from employee where country = 'India' OR country = 'Australia';
ORDENAR POR Ordena los resultados en orden ascendente (por defecto) o en el orden especificado en la consulta (final ascendente o final descendente ) SELECT employee_name, salary from employee ORDER BY salary DESC;
ROWNUM Devuelve el número especificado de filas mencionadas en la cláusula WHERE de la consulta SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset.
SELECCIONE Selecciona las columnas mencionadas de la tabla en función de las condiciones dadas. Si se especifica *, se devuelven todos los valores de columna. SELECT employee_id from employee; SELECT * from employee;
SELECCIONAR EN Copia datos de la tabla de origen en otra tabla de destino. Puede seleccionar todas las columnas (*) o columnas específicas. SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee;
SELECCIONA ARRIBA Selecciona el número especificado de registros de la tabla SELECT TOP 5 employee_id from employee where employee_rating = 5;
ESTABLECER Establece el valor de una columna en el nuevo valor especificado durante una operación de ACTUALIZACIÓN. UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
ALGUNO Devuelve verdadero si se cumple una de las condiciones de la subconsulta. ALGUNOS es similar al comando ANY. SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = 'HR');
TABLA TRUNCADA Elimina datos de la tabla: recuerde que la tabla no se eliminará. TRUNCATE TABLE log_info;
UNIÓN Devuelve valores distintos de 2 o más tablas que están unidas. Para obtener también los valores duplicados, use UNION ALL. SELECT city from employee UNION SELECT city from office_locations;
ÚNICO Agrega una restricción única a la columna especificada, lo que significa que la columna no puede tener valores duplicados. Se puede usar durante los comandos de modificación o creación de tablas. CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id));

ALTER TABLE employee ADD UNIQUE(employee_id);
ACTUALIZAR Actualiza el valor de la columna especificada con un nuevo valor UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
VALORES Se usa con el comando INSERT para agregar una nueva fila de valores a la tabla INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
DÓNDE Agrega condiciones para filtrar el conjunto de resultados de una declaración de selección SELECT * from employee WHERE salary > 20000;
Hoja de trucos de comandos SQL para una referencia rápida

Funciones agregadas

Las funciones agregadas son comandos de manipulación de datos que funcionan en columnas numéricas como int y float. Estos son útiles para filtrar y clasificar datos en el nivel de la base de datos. Algunas funciones agregadas de uso común son:

FUNCIÓN DESCRIPCIÓN EJEMPLO
PROMEDIO Devuelve el valor promedio de la columna especificada SELECT AVG(marks) from students where subject = 'English';
MÍN. Devuelve el valor más pequeño de la columna especificada SELECT MIN(price) from product WHERE product_category = 'shoes';
MÁX. Devuelve el valor más grande de la columna especificada SELECT MAX(quantity), product_name from inventory;
CONTAR Devuelve el número de filas que satisfacen la consulta Muestra un número total de registros en la tabla de empleados.

SELECT COUNT(*) from employee;

Mostrar el número de empleados cuyo salario es mayor a 20000

SELECT COUNT(*) from employee where salary > 20000;
SUMA Devuelve la suma de los valores de la columna numérica especificada SELECT SUM(marks) from students where subject = 'English';
Funciones agregadas comunes

Uniones SQL

Las uniones SQL son muy importantes porque conectan y filtran datos de varias tablas. Las uniones son un poco complicadas y pueden dar resultados inesperados si no se ejecutan correctamente. La siguiente tabla lo ayudará a consultar rápidamente los 4 tipos de uniones SQL:

TIPO DE UNIÓN DESCRIPCIÓN SINTAXIS EJEMPLO
Unir internamente Devuelve registros que coinciden en las tablas unidas; es similar a una intersección. SELECCIONE columna1, columna2... de la tabla1 INNER JOIN tabla2 en tabla1.columnaN = tabla2.columnaN; select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id;
Unión completa (externa) Devuelve todos los registros que tienen una coincidencia en cualquier lado, izquierdo o derecho. Es similar a un sindicato. SELECCIONE la columna 1, la columna 2... de la tabla 1 FULL OUTER JOIN tabla 2 en la tabla 1.columnaN = tabla2.columnaN; select c.customer_id, o.order_id, c.customer_phone from customer c FULL OUTER JOIN order o on c.customer_id = o.customer_id;
Unirse a la izquierda Devuelve todos los registros de la tabla de la izquierda y los registros que coinciden con los criterios de la tabla de la derecha SELECCIONE columna1, columna2... de la tabla1 LEFT JOIN table2 en table1.columnN = table2.columnN; select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id;
Unirse a la derecha Devuelve todos los registros de la tabla de la derecha y los registros que coinciden con los criterios de la tabla de la izquierda SELECCIONE columna1, columna2... de la tabla1 ÚNASE A LA DERECHA tabla2 en tabla1.columnaN = tabla2.columnaN; select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id;
Tipos de uniones con sintaxis y ejemplo

Recursos adicionales

SQL es una herramienta importante para desarrolladores de software, científicos de datos y analistas por igual. Una referencia útil de los comandos SQL en forma de hoja de trucos puede ahorrarle mucho tiempo y ayudarlo a comprender el resultado esperado de cada palabra clave.

Para obtener información adicional, consulte los siguientes recursos:

Tutorial de SQL: hoja de trucos de SQL

Intellipaat: Hoja de referencia de comandos SQL

Configuración del sitio web: hoja de trucos de SQL

Programación con Mosh: hoja de trucos de SQL

Hoja de trucos de PostgreSQL