La selección y la ordenación de registros son operaciones fundamentales en SQL para manipular y visualizar datos en bases de datos. A continuación, se presenta un resumen:
La selección se refiere al proceso de recuperar datos específicos de una tabla según ciertos criterios. Esto se logra con la cláusula SELECT
en combinación con filtros (WHERE
) y otras herramientas.
Cláusula SELECT
:
SELECT nombre, edad FROM empleados;
Cláusula WHERE
:
SELECT * FROM empleados WHERE edad > 30;
Operadores en WHERE
:
=
, >
, <
, >=
, <=
, <>
.AND
, OR
, NOT
.LIKE
para coincidencias de patrones, IN
para valores específicos.SELECT * FROM productos WHERE precio BETWEEN 100 AND 500;
Funciones de agregación y selección condicional:
SELECT COUNT(*), AVG(precio) FROM productos WHERE categoria = 'Electrónica';
La ordenación organiza los registros recuperados según uno o más criterios definidos. Esto se logra con la cláusula ORDER BY
.
Cláusula ORDER BY
:
SELECT nombre, edad FROM empleados ORDER BY edad;
Tipos de ordenación:
ASC
.DESC
.SELECT * FROM productos ORDER BY precio DESC;
Ordenación múltiple:
SELECT * FROM empleados ORDER BY departamento ASC, salario DESC;
Puedes combinar ambas operaciones para filtrar y ordenar registros simultáneamente:
SELECT nombre, salario
FROM empleados
WHERE salario > 3000
ORDER BY salario DESC;
SELECT *
si no necesitas todas las columnas; selecciona solo las necesarias.NULL
).Ejercicios:
cuenta cuantos municipios hay que pertenezcan a regiones que incluyan en su nombre las letras nombre like «%an%» o «cia»
solucion: 2782
a partir del ejercicio anterior filtra sólo los municipios que terminan y empiezan por vocal. Las vocales son a,e,i,o,u «a%» «%a»
solucion?: 351
indica a partir de la anterior consulta cuantos municipios pertenecen a la comarca «marina alta» o «marina baja».
solucion: 6
a partir de la anterior sql, crea una consulta que muestre únicamente los municipios que tenga como segunda letra una «R» y no cantega una «B».
SELECT * FROM municipios m,
prov_comarcas pc, provincias p,
regiones r, comarcas c
WHERE m.fk_prov_camarca = pc.id AND
pc.fk_provincia = p.id AND
p.fk_region = r.id AND
c.id = pc.fk_comarca and
(r.nombre LIKE "%an%"
OR r.nombre LIKE "%cia%") AND
substring(m.nombre,1,1)IN('a','e','i','o','u') AND
SUBSTRING(m.nombre,char_LENGTH(m.nombre),1)IN('a','e','i','o','u')
AND (c.nombre ="marina alta" OR c.nombre ="marina baja") AND
m.nombre LIKE "_r%" AND NOT m.nombre LIKE "%b%"
Norte Sur este oeste
SET @n:= (select MAX(lat) FROM localidades);
SET @s:= (select MIN(lat) FROM localidades);
SET @e:= (select MAX(lng) FROM localidades);
SET @o:= (select MIN(lng) FROM localidades);
SELECT "N" AS orientacion, l.nombre, p.nombre provincia
FROM localidades AS l, municipios m,
prov_comarcas pc, provincias p
WHERE
l.fk_municipio = m.id AND
m.fk_prov_camarca = pc.id and
pc.fk_provincia = p.id AND
l.lat=@n
UNION
SELECT "S", l.nombre, p.nombre FROM localidades l,
municipios m, prov_comarcas pc, provincias p
WHERE
l.fk_municipio = m.id AND
m.fk_prov_camarca = pc.id and
pc.fk_provincia = p.id AND
l.lat=@s
UNION
SELECT "E", l.nombre, p.nombre FROM localidades l,
municipios m, prov_comarcas pc, provincias p
WHERE
l.fk_municipio = m.id AND
m.fk_prov_camarca = pc.id and
pc.fk_provincia = p.id AND
l.lng=@e
UNION
SELECT "O", l.nombre, p.nombre FROM localidades l,
municipios m, prov_comarcas pc, provincias p
WHERE
l.fk_municipio = m.id AND
m.fk_prov_camarca = pc.id and
pc.fk_provincia = p.id AND
l.lng=@o;