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;