Query data
Definición
SELECT <attr1>|<attr2> FROM <tabla>; -- Imprimir solo ciertas columnas de la tabla
SELECT * FROM <tabla>; -- Imprimir toda la tabla
Filtrado WHERE
SELECT [ALL|DISTINCT] attrs|* FROM <tabla> WHERE <condition>;
Posibilidades del where
<attr> = <value>
→ Igualdad
<attr> >= <value>
→ Comparación con (>
,<
,>=
,<=
,=
,<>
)
<attr> LIKE 'Hol_ que % amigos'
→ Patrón:_
match de un caracter y%
match de n caracteres
<attr> IN <table1col>
→ Contenido la tabla (tabla de una columna a modo de lista)
<attr> IS [NOT] NULL
→ Es o no es nulo
<attr> BETWEEN <value> AND <value>
→ Intervalo
Posibilidades del where 2: Predicados
<attr> <operator> ALL(<nestedQuery>)
→ El valor debe evaluarse true con todas las tuplas del subquery
<attr> <operator> ANY(<nestedQuery>)
→ El valor debe evaluarse true con al menos una de las tuplas del subquery
EXIST(<nestedQuerySubset>)
→ Comprueba si existe un cierto subconjunto en la tabla
SELECT con WHERE: Recupera filas que cumplen una condición específica.SELECT * FROM empleado WHERE salario > 5000;
Uso deALL
,ANY
yEXISTS
-- ALL
Ordenación ORDER BY
SELECT attrs|* FROM <tabla> ORDER BY <attr> [DESC|ASC]
SELECT attrs|* FROM <tabla> ORDER BY <columnNum> [DESC|ASC]
SELECT con ORDER BY: Recupera filas y las ordena por una o más columnas.SELECT * FROM empleado ORDER BY salario DESC;
Combinación JOIN
SELECT attrs|* FROM <tabla>
SELECT con JOIN: Recupera filas de dos o más tablas basándose en una relación entre ellas.SELECT e.nombre, d.nombre AS departamento FROM empleado e JOIN departamento d ON e.departamento_id = d.departamento_id;
Agrupar GROUP BY
SELECT <attr>, <func> FROM <tabla> GROUP BY <attr>;
SELECT <attr>, <func> FROM <tabla> GROUP BY <attr> HAVING <expression>;
Funciones de agrupación
COUNT(*)
→ Cuenta lineas incluyendo nulos
COUNT(DISTINCT <attr>)
→ Sin incluir nulos
MAX(<attr>)
→ Valor máximo
MIN(<attr>)
→ Valor mínimo
AVG(<attr>)
→ Valor medio
SUM(<attr>)
→ Suma de todos los valores del grupo
SELECT con GROUP BY y funciones de agregación: Recupera datos agregados, como la suma, el promedio, el mínimo o el máximo de una columna.SELECT departamento_id, COUNT(*) AS num_empleados, AVG(salario) AS salario_promedio FROM empleado GROUP BY departamento_id;
Aliases
Podemos asignar un alias a una tabla o columna durante una consulta
- Colunas → Se usa
AS
aunque se puede usar solo un espacio
- Tabla → Se una un espacio
-- Alias de columna (se muesta el alias en la tabla resultante)
Orden de los parámetros adicionales
FROM
→ WHERE
→ GROUP BY
→ HAVING
→ ORDER BY
Ejemplos
SELECT básico: Recupera todas las columnas de una tabla.SELECT * FROM empleado;
SELECT con columnas específicas: Recupera solo las columnas especificadas de una tabla.SELECT nombre, salario FROM empleado;
SELECT con subconsulta: Utiliza el resultado de una consulta como entrada para otra consulta.SELECT * FROM empleado WHERE salario > (SELECT AVG(salario) FROM empleado);