Query data
Definición
SELECT <attr1>|<attr2> FROM <tabla>; -- Imprimir solo ciertas columnas de la tabla
SELECT * FROM <tabla>; -- Imprimir toda la tablaFiltrado 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,ANYyEXISTS-- 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
ASaunque 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 BYEjemplos
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);
