Ultimate SQL Cheat Sheet para marcar para más tarde [2022]
Publicado: 2022-06-17SQL, 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ísSELECT 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; |
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'; |
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; |
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