- DQL (Data Query Language): Buscar datos en la base de datos
- Ejemplo: SELECT
- DML (Data Manipulation Language): Modificar objetos de la base de datos
- Ejemplo: INSERT, UPDATE, DELETE
- DDL (Data Definition Language): Crear o modificar datos de la base de datos
- Ejemplo: CREATE, DROP, ALTER, TRUNCATE
Comandos básicos
CREATE
Se utiliza para crear una tabla
CREATE TABLE "TABLE_NAME"
("COLUMN1" "DATA_TYPE" CONSTRAINTS,
"COLUMN2" "DATA_TYPE’"CONSTRAINTS,
"COLUMN3" "DATA_TYPE" CONSTRAINTS,
...
"COLUMN N" "DATA_TYPE" CONSTRAINTS);
INSERT
Se utiliza para insertar nuevos datos en una tabla
INSERT INTO "TABLE_NAME" (COL1, COL2, ... COL_N)
VALUES (Col_val_1, Col_val_2, ... Col_val_N);
SELECT
Se utiliza para recuperar datos
Sintaxis:SELECT * FROM "TABLE_NAME";
Para recuperar una columna:
SELECT "COLUMN_NAME" FROM "TABLE_NAME";
Para recuperar varias columnas:
SELECT "COLUMN1, COLUMN2, ..." FROM "TABLE_NAME";
Para recuperar todas las columnas:
SELECT * FROM "TABLE_NAME";
DISTINCT
Se utiliza para eliminar valores duplicados
SELECT DISTINCT (*) FROM "TABLE_NAME";
WHERE
Se utiliza para filtrar registros en las tablas
SELECT "COLUMN_NAME(S)" FROM "TABLE_NAME"
WHERE CONDITION;
AND/OR
Se utilizan para combinar múltiples condiciones
SELECT "COLUMN_NAME(S)" FROM "TABLE_NAME"
WHERE CONDITION AND/OR CONDITION;
UPDATE
Se utiliza para modificar datos
Sintaxis:UPDATE "TABLE_NAME"
SET COL_1=VAL_1, COL_2=VAL_2, ...
WHERE CONDITION;
DELETE
Se utiliza para eliminar registros existentes
Sintaxis:
Para eliminar todos los datos:
DELETE FROM "TABLE_NAME";
Para eliminar una o varias filas:
DELETE FROM "TABLE_NAME"
WHERE CONDITION;
ALTER
Se utiliza para cambiar la definición o la estructura de una tabla
Sintaxis:
Añadir una columna:
ALTER TABLE "TABLE_NAME"
ADD "COLUMN_NAME" "DATA_TYPE";
Borrar una columna:
ALTER TABLE "TABLE_NAME"
DROP "COLUMN_NAME";
Modificar el tipo de dato en una columna:
ALTER TABLE "TABLE_NAME"
ALTER COLUMN "COL_NAME" TYPE NEW_DATA_TYPE;
Renombrar una columna:
ALTER TABLE "TABLE_NAME"
RENAME COLUMN "COL_NAME" TO "NEW_NAME";
Añadir restricciones:
ALTER TABLE "TABLE_NAME"
ADD CONSTRAINT COL_NAME CHECK CONDITION;
IMPORTAR DATOS DESDE UN FICHERO (PostgreSQL)
Importar a un archivo .csv:
COPY TABLE_NAME (column1, column2, ... )
FROM FILE_PATH DELIMITER ' , ' CSV HEADER;
Importar a un archivo .txt:
COPY TABLE_NAME (column1, column2, ... )
FROM FILE_PATH DELIMITER ' , ' ;
Comandos de filtrado
IN
Permite reducir los operadores OR en los diferentes comandos
Sintaxis:
SELECT "COL_NAME" FROM "TABLE_NAME"
WHERE "COL_NAME" IN ('VAL1', 'VAL2', ...);
BETWEEN
Se utiliza para recuperar datos dentro de un rango determinado
Sintaxis:
SELECT "COL_NAME(S)" FROM "TABLE_NAME"
WHERE "COL_NAME" BETWEEN "VAL1" AND "VAL2";
LIKE
Se utiliza para realizar coincidencias de patrones/expresiones regulares usando comodines:
- % - coincide con cualquier cadena de cualquier longitud
- _ - coincide con un solo carácter (% , _)
Sintaxis:
SELECT "COL_NAME" FROM "TABLE_NAME"
WHERE "COL_NAME" LIKE 'PATTERN';
Comandos de ordenación
ORDER BY
Se utiliza únicamente con el comando SELECT y sirve para ordenar datos
Sintaxis:
SELECT "COL_NAME(S)" FROM "TABLE_NAME"
ORDER BY "COL_NAME" ASC/DESC;
LIMIT
Se utiliza para limitar el número de registros según un límite específico
Sintaxis:
SELECT "COL_NAME(S)" FROM "TABLE_NAME"
[WHERE & ORDER BY – Optional]
LIMIT "LIMIT_VALUE";
Comando para alias
AS
Se utiliza para añadir un alias a una columna
Sintaxis:
SELECT "COL_NAME" as "COL_ALIAS"
FROM "TABLE_NAME";
Comandos de operaciones
COUNT
Se utiliza para contar los datos de una columna o de una expresión concreta
Sintaxis:
SELECT COUNT(COL_NAME) FROM "TABLE_NAME";
SUM
Se utiliza para sumar datos
Sintaxis:
SELECT SUM(COL_NAME) FROM "TABLE_NAME";
AVG
Se utiliza para calcular la media de los datos
Sintaxis:
SELECT AVG(COL_NAME) FROM "TABLE_NAME";
MIN
Se utiliza para recuperar el valor mínimo
Sintaxis:
SELECT MIN(COL_NAME) FROM "TABLE_NAME";
MAX
Se utiliza para recuperar el valor máximo
Sintaxis:
SELECT MAX(COL_NAME) FROM "TABLE_NAME";
Comandos de agrupación
GROUP BY
Se utiliza para agrupar los resultados por una o varias columnas
Sintaxis:
SELECT "COL_1", "COL_2", ... FROM "TABLE_NAME";
GROUP BY "COL_NAME";
HAVING
Se utiliza igual que la palabra clave WHERE, pero con funciones agregadas
Sintaxis:
SELECT "COL_1", "COL_2", ... FROM "TABLE_NAME";
GROUP BY "COL_NAME"
HAVING 'CONDITION';
Comandos de condición
CASE
Es una expresión condicional
Sintaxis:
CASE
WHEN CONDITION THEN RESULT
[WHEN CONDITION THEN RESULT]
[WHEN CONDITION THEN RESULT]
ELSE RESULT
END
Comandos de unión
Los comandos JOIN se utilizan para recuperar datos de varias tablas
INNER JOIN
Devuelve únicamente los registros que coinciden en dos o más tablas
Sintaxis:
SELECT COL1, COL2, ...
FROM "TABLE_1"
INNER JOIN "TABLE_2"
ON TABLE_1. COMMON_COL = TABLE_2. COMMON_COL;
LEFT JOIN
Devuelve todas las filas de la tabla A (izquierda), incluso si no hay coincidencias en la tabla B (derecha)
Sintaxis:
SELECT COL1, COL2, ...
FROM "TABLE_1"
LEFT JOIN "TABLE_2"
ON TABLE_1. COMMON_COL = TABLE_2. COMMON_COL;
RIGHT JOIN
Devuelve todas las filas de la tabla B (izquierda), incluso si no hay coincidencias en la tabla A (derecha)
Sintaxis:
SELECT COL1, COL2, ...
FROM "TABLE_1"
RIGHT JOIN "TABLE_2"
ON TABLE_1. COMMON_COL = TABLE_2. COMMON_COL;
FULL JOIN
Combina los resultados de la unión derecha e izquierda
Sintaxis:
SELECT COL1, COL2, ...
FROM "TABLE_1"
FULL JOIN "TABLE_2"
ON TABLE_1. COMMON_COL = TABLE_2. COMMON_COL;
CROSS JOIN
Devuelve todas las líneas de las tablas cruzándolas
Sintaxis:
SELECT COL1, COL2, ...
FROM "TABLE_1"
CROSS JOIN "TABLE_2";
EXCEPT
Se utiliza para recuperar todos los datos de la tabla A, excepto los que coinciden con la tabla B
Sintaxis:
SELECT COL1, COL2, ...
FROM TABLE_A [WHERE]
EXCEPT
SELECT COL1, COL2, ...
FROM TABLE_B [WHERE];
UNION
Se utiliza para combinar dos o más comandos SELECT
Sintaxis:
SELECT COL1, COL2, ...
FROM TABLE_A [WHERE]
UNION
SELECT COL1, COL2, ...
SUBQUERYFROM TABLE_B [WHERE];
Es una consulta dentro de una consulta, se encuentra junto a WHERE
Sintaxis:
SUBQUERY is in WHERE clause
SELECT "COL_1" FROM "TABLE_NAME_1"
WHERE "COL_2" [operator]
(SELECT "COL_3" FROM "TABLE_NAME_2"
WHERE CONDITION);
VIEW
Es la visualización de una tabla virtual creada por una consulta que une una o más tablas
Sintaxis:
CREATE[OR RESPONSE] view_name AS
SELECT "COL_NAME(S)"
FROM "TABLE_NAME"
INDEX
Crea una entrada para cada valor que aparece en la columna indexada
Sintaxis:
CREATE[UNIQUE] INDEX "index_name"
ON "TABLE_NAME"
(index_col1 [ASC/DESC], ...
Funciones de cadena (string)
LENGTH
Recupera la longitud de la cadena especificada
Sintaxis:
LENGTH('string')
UPPER/LOWER
Convierte todos los caracteres de la cadena especificada a mayúsculas/minúsculas
Sintaxis:
upper('string')
lower('string')
REPLACE
Reemplaza todas las apariciones de la cadena especificada
Sintaxis:
REPLACE('string', 'from string', to string')
TRIM
Elimina todos los caracteres especificados, ya sea desde el principio o el final de la cadena o ambos
Sintaxis:
TRIM([Leading|Trailing|Both] [trim char] from string)
RTRIM
Elimina todos los caracteres especificados del lado derecho de la cadena
Sintaxis:
RTRIM('string', trim char)
LTRIM
Elimina todos los caracteres especificados del LHS de la cadena
Sintaxis:
LTRIM('string', trim char)
CONCATENATION
El operador '||' se utiliza para unir/concatenar dos o más cadenas
Sintaxis:
'string_1' || 'string_2' || 'string_3'
SUBSTRING
Se utiliza para extraer una subcadena de una cadena
Sintaxis:
SUBSTRING('string' [start position]
[substring length]);
STRING_AGG
La función 'String aggregate' concatena los valores de entrada en una cadena, separados por un delimitador
Sintaxis:
STRING_AGG('expression', delimiter)
Funciones matemáticas
CEIL
Devuelve el valor entero más pequeño que es mayor o igual a un número
Sintaxis:
CEIL(number)
FLOOR
Devuelve el valor entero más grande que es menor o igual a un número
Sintaxis:
FLOOR(number)
RANDOM
Se utiliza para generar números aleatorios entre 0 y 1 (se excluirá 1)
Sintaxis:
RANDOM( );
SETSEED
Se utiliza para establecer una semilla para la próxima vez que llamemos a la función ALEATORIA
Sintaxis:
SETSEED(seed)
[la semilla puede tener un valor entre 1 y -1 (ambos son inclusivos)]
ROUND
Redondea un número a un número específico de decimales
Sintaxis:
ROUND(number)
POWER
Devuelve el valor m elevado a la enésima potencia
Sintaxis:
POWER(m,n)
Funciones de fecha y tiempo
CURRENT_DATE
Devuelve la fecha actual
Sintaxis:
CURRENT_DATE( )
CURRENT_TIME
Devuelve la hora actual con la zona horaria
Sintaxis:
CURRENT_TIME( )
CURRENT_TIMESTAMP
Devuelve la fecha y hora actuales con la zona horaria
Sintaxis:
CURRENT_ TIMESTAMP ( )
AGE
Devuelve la diferencia entre dos fechas
Sintaxis:
AGE(date1,date2)
EXTRACT
Devuelve la fecha detallada con día, mes, año, día, hora, minuto, segundo, ...
Sintaxis:
EXTRACT(‘unit’ FROM ‘date’)
Patrones para búsquedas
Hay tres enfoques diferentes para la combinación de patrones:
Utilizando LIKEUtilizando SIMILAR TO
Utilizando las siguientes expresiones regulares:
- | indica alternancia (cualquiera de dos alternativas).
- * indica repetición del elemento anterior cero o más veces.
- + indica repetición del elemento anterior una o más veces.
- ? indica repetición del elemento anterior cero o una vez.
- {m} indica la repetición del elemento anterior exactamente m veces.
- {m,} indica la repetición del elemento anterior m o más veces.
- {m,n} indica la repetición del elemento anterior al menos m veces y no más de n veces.
- Los paréntesis () se pueden utilizar para agrupar elementos en un solo elemento lógico.
- Una expresión entre corchetes [...] especifica una clase de carácter,
Funciones de conversión para tiempo y fechas
TO_CHAR
Convierte un número o fecha en una cadena (string)
Sintaxis:
TO_CHAR(value, format-mask)
TO_DATE
Convierte una cadena (string) en una fecha
Sintaxis:
TO_DATE(string, format-mask)
TO_NUMBER
Convierte una cadena en un número
Sintaxis:
TO_NUMBER(string, format-mask)
Descripción de formatos:
9 Valor numérico con el número de dígitos especificado
0 Valor numérico con ceros a la izquierda
. (punto) punto decimal
D punto decimal que usa la configuración regional
, (coma) separador de miles
Modo FM Fill, suprime los espacios en blanco y los ceros iniciales
PR Valor negativo entre paréntesis angulares
S Sign junto a un número usa la configuración regional
L Símbolo de moneda que utiliza la configuración regional
Separador de grupo G que usa configuración regional
MI Signo menos en la posición especificada para números menores que 0
PL Signo más en la posición especificada para números mayores que 0
SG Signo más/menos en la posición especificadaRN Número romano que va del 1 al 3999TH o th Sufijo de número ordinal en mayúsculas o minúsculas
Descripción de patrones:
Y,YYY año en 4 dígitos con coma
AAAA año en 4 dígitos
AAA últimos 3 dígitos del año
AA últimos 2 dígitos del año
Y El último dígito del año.
IAAAA Año de numeración de semanas ISO 8601 (4 o más dígitos)
IAA Últimos 3 dígitos del año de numeración de semanas ISO 8601
IY Últimos 2 dígitos del año de numeración de semanas ISO 8601
I Último dígito del año de numeración de semanas ISO 8601
Indicador BC, bc, AD o ad Era sin puntos
a.C., a.C., d.C. oa.d. Indicador de era con puntos
MES Nombre del mes en inglés en mayúsculas
Mes Nombre del mes en inglés con mayúscula completa
Mes Nombre del mes en inglés en minúsculas completas
MON Nombre abreviado del mes en mayúsculas, por ejemplo, JAN, FEB, etc.
Mon Nombre abreviado del mes en mayúscula, por ejemplo, enero, febrero, etc.
Mon Nombre abreviado del mes en minúsculas, por ejemplo, enero, febrero, etc.
Número de mes MM del 01 al 12
DÍA Nombre del día completo en mayúsculas
Día Nombre del día completo en mayúscula
Día Nombre del día completo en minúsculas
DY Nombre del día abreviado en mayúsculas
Dy Nombre del día abreviado en mayúscula
Dy Nombre del día abreviado en minúsculas
DDD Día del año (001-366)
Día IDDD del año de numeración de semanas ISO 8601 (001-371; el día 1 del año es el lunes de la primera semana ISO)
DD Día del mes (01-31)
D Día de la semana, domingo (1) a sábado (7)
ID ISO 8601 día de la semana, de lunes (1) a domingo (7)
W Semana del mes (1-5) (la primera semana comienza el primer día del mes)
WW Número de semana del año (1-53) (la primera semana comienza el primer día del año)
Número de semana IW del año de numeración de semanas ISO 8601 (01-53; el primer jueves del año está en la semana 1)
CC Century, por ejemplo, 21, 22, etc.
J Día Juliano (días enteros desde el 24 de noviembre de 4714 a. C. a la medianoche UTC)
RM Mes en números romanos mayúsculas (I-XII; >
Rm Mes en números romanos minúsculas (i-xii; >
HH Hora del día (0-12)
HH12 Hora del día (0-12)
HH24 Hora del día (0-23)
Minuto MI (0-59)
Segunda SS (0-59)
MS milisegundos (000-999)
Microsegundo de EE. UU. (000000-999999)
SSSS Segundos después de la medianoche (0-86399)
AM, am, PM o pm Indicador Meridiem (sin puntos)A.M., A.M., P.M. o p.m.Indicador Meridiem (con puntos)