Cheatsheet PostgreSQL
La función abs() nos retorna el valor absoluto de
SELECT abs(-49);
La función cbrt() nos retorna la raíz cúbica de
SELECT cbrt(27);
La función ceil() nos retorna el valor entero mayor más cercano de
SELECT ceil(20.5);
La función div(a , b ) nos retorna el resultado (cociente) de la operación de división de A (dividendo) entre B (divisor).
SELECT div(9, 4);
La función exp( OR ) nos retorna la exponenciación de un número como se especifica en el argumento.
SELECT exp(3) as Exponencial;
SELECT exp(2.2) as Exponencial;
La función floor( OR ) nos retorna el entero más cercano menor o igual que el argumento.
SELECT floor(5.8);
La función factorial() nos retorna el factorial de .
SELECT factorial(5);
La función random() nos retorna un valor aleatorio entre 0.0 y 1.0
SELECT random();
La función power(a , b ) nos retorna A elevado a la potencia de B
SELECT power(5, 4);
La función mod(a , b ) nos retorna el módulo (resto) de la operación de división de A (dividendo) entre B (divisor).
SELECT mod(9, 4);
La función char_length() o character_length() nos retorna la longitud de :
SELECT char_length('enidev911') as "Cantidad de caracteres";
SELECT character_length('enidev') as "Cantidad de caracteres";
La función chr(num ) nos retorna el carácter correspondiente al código (ascii) dado en el argumento:
SELECT chr(169), chr(64);
La función concat(str , [str2 , str3 , ...]) se utiliza para concatenar dos o más cadenas excepto cuando NULL es especificado:
SELECT concat('eni', 'dev', NULL, '911');
La función initcap(str ) nos retorna STR con la primera letra de cada palabra en mayúscula y el resto a minúsculas:
SELECT initcap('marco antonio contreras herrera');
La función octec_length(str ) nos retorna el número de bytes en STR:
SELECT octet_length('ñ'),octet_length('🧠'), octet_length('❤️');
La función split_part(str, delimiter , field_num ) se utiliza para dividir STR dada en función de un delimitador indicado en DELIMITER y selecciona el campo deseado de la cadena indicado en FIELD_NUM, comenzando desde izquierda a derecha:
SELECT split_part('postgresql-#-mysql-#-oracle', '-#-', 1);
SELECT split_part('postgresql-#-mysql-#-oracle', '-#-', 2);
SELECT split_part('postgresql-#-mysql-#-oracle', '-#-', 3);
La función substring(, str_pos, n_char) nos permite extraer una subcadena, donde str_pos es un para la posición dentro de desde donde comenzará la extracción y n_char es un que es la cantidad de caracteres que se quieren extraer:
SELECT substring('enidev911' from 2 for 3) as "Extracto del texto";
La función repeat(str , n ) nos retorna STR repitida N cantidad de veces:
SELECT repeat('?', 1),repeat('|', 2),repeat('-', 3),repeat('*', 4);
La función reverse() nos retorna en sentido inverso:
SELECT reverse('enidev911') as "Texto invertido";
La función right(, n ) nos retorna los últimos N caracteres de :
SELECT right('enidev911', 2);
La función left(, n ) nos retorna los primeros N caracteres de :
SELECT left('enidev911', 2);
La función ltrim(str [, characters ]) se utiliza para eliminar espacios en blancos, pero también nos retorna STR recortando el conjunto de caracteres que coincidan con el texto en CHARACTERS de izquierda a derecha:
SELECT ltrim(' enidev911');
SELECT ltrim('911911911enidev911', '911');
La función rtrim(str [, characters ]) se utiliza para eliminar espacios en blancos, pero también nos retorna STR recortando el conjunto de caracteres que coincidan con el texto en CHARACTERS de derecha a izquierda:
SELECT rtrim('enidev911 ');
SELECT rtrim('enidev911 911911911', '911');
La función translate(str , match_str , replace_str ) se utiliza para intercambiar cualquier carácter en STR que coincida con MATCH_STR y será intercambiado por su equivalente en la misma posición en REPLACE_STR:
SELECT translate('anidtav044', '04at', '91e');
1. CREATE
-- 1 primera forma (si ejecutamos 2 veces, tendriamos un error)
CREATE TABLE heros (
id SERIAL,
name VARCHAR(50)
);
-- 2 forma (Con la cláusula IF NOT EXISTS evitamos el error)
CREATE TABLE IF NOT EXISTS herosDC (
id SERIAL,
name VARCHAR(50)
);
-- mostrar las tablas creadas
\dt
2. ALTER
-- creamos una tabla
CREATE TABLE users (
id SERIAL,
name VARCHAR(50)
);
-- le añadimos una nueva columna
ALTER TABLE users ADD age INT;
-- describimos la tabla
\d users
3. TRUNCATE
-- creamos una tabla
CREATE TABLE users (
id SERIAL,
name VARCHAR(50)
);
-- truncamos la tabla (elimina rápidamente todas las filas o tuplas)
TRUNCATE TABLE users;
--- truncamos la tabla y reiniciamos el secuanciador auto-incrementable "SERIAL"
TRUNCATE TABLE users RESTART IDENTITY;
-- describimos la tabla
\d users
4. DROP
-- creamos una tabla
CREATE TABLE users (
id SERIAL,
name VARCHAR(50)
);
-- eliminamos la tabla y con toda su estructura.
DROP TABLE users;
-- describimos la tabla (deberíamos obtener un error: Did not find any relation named "users")
\d users
1. INSERT
CREATE TABLE IF NOT EXISTS heros (
name VARCHAR(50)
);
CREATE TABLE IF NOT EXISTS herosDC (
name VARCHAR(50)
);
-- 1 primera forma
INSERT INTO heros (name) VALUES ('black adam');
-- 2 forma (El nombre de la columna es opcional)
INSERT INTO heros VALUES ('thor');
-- 3 forma para múltiples tuplas
INSERT INTO heros VALUES ('superman'), ('aquaman'), ('mera'), ('flash');
-- 4 forma insertar en seleccionar (primero se ejecuta el select, luego el insert)
INSERT INTO heros (name) SELECT ('batman');
-- 5 forma insertar el resultado de una query de una tabla en otra tabla
INSERT INTO herosDC SELECT name FROM heros WHERE name IN ('black adam', 'mera', 'flash');
SELECT name as heros FROM heros;
SELECT name as herosDC FROM herosDC;
2. SELECT
Sintaxis
SELECT column1, column2, ...
FROM table_name
[where condition];
CREATE TABLE IF NOT EXISTS heros (
id SERIAL,
name VARCHAR(50)
);
COPY heros (name) FROM stdin;
afrodita
aquaman
batman
deadman
deadshot
eviless
lex luthor
thor
superman
flash
krypto
joker
\.
-- 1. Seleccionar todos los campos (el comodín * no es recomendado)
SELECT * FROM heros;
-- 2. Seleccionar campos por campo (lo ideal)
SELECT id, name as heros FROM heros;
-- 3. Selccionar campos condicionadamente
SELECT id, name as heros
FROM heros
WHERE LEFT(name, 1) IN ('a', 'e', 'i', 'o', 'u');
3. UPDATE
Sintaxis
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
CREATE TABLE IF NOT EXISTS heros (
id SERIAL,
name VARCHAR(50)
);
COPY heros (name) FROM stdin;
afroman
aquamon
batmin
\.
-- 1. ACTUALIZAMOS el registro 1
UPDATE heros SET name='afrodita' WHERE name='afroman';
-- 2. ACTUALIZAMOS el registro 2
UPDATE heros SET name='aquaman' WHERE name='aquamon';
-- 3. ACTUALIZAMOS el registro 3
UPDATE heros SET name='batman' WHERE name='batmin';
-- 3. Vemos el cambio
SELECT id, name as heros FROM heros;