CodeGym /Cursos Java /Módulo 4. Working with databases /Control de visualización de datos

Control de visualización de datos

Módulo 4. Working with databases
Nivel 1 , Lección 3
Disponible

4.1 LÍMITE

Si espera que su consulta SQL devuelva demasiados datos, puede limitar el número máximo por adelantado. Después de todo, las tablas pueden contener miles o incluso millones de filas.

SQL hace que sea muy fácil limitar el número de filas en el resultado de una consulta mediante el uso de LIMIT. Esta palabra clave se usa al final de la consulta SQL y se ve así:

LIMIT quantity

Escribamos una consulta en la tabla de productos, que contiene una lista de los productos de nuestra tienda. Pero como tenemos una tienda muy exitosa y vendemos muchos productos, queremos obtener solo las primeras 10 líneas de la respuesta. Así es como se vería esa solicitud:

SELECT * FROM product
LIMIT 10

Y obtenemos el siguiente resultado de la consulta:

identificación nombre marca precio contar
1 Mesa IKEA 20.00 15
2 Silla IKEA 5.00 45
3 Sofá IKEA 80.00 10
4 Cama IKEA 75.00 10
5 Armario el bosco 125.00 15
6 Estante Estante 25.00 114
7 TELEVISOR LG 350.00 4
8 Lámpara LG 15.00 100
9 Vestidor IKEA 99.00 10
10 Lámina el bosco 199.00 10

Ahora solicitaremos solo las primeras 5 filas. Así es como se vería esa solicitud:

SELECT * FROM product
LIMIT 5

Obtenemos el siguiente resultado de la consulta:

identificación nombre marca precio contar
1 Mesa IKEA 20.00 15
2 Silla IKEA 5.00 45
3 Sofá IKEA 80.00 10
4 Cama IKEA 75.00 10
5 Armario el bosco 125.00 15

4.2 DESPLAZAMIENTO

La última vez aprendimos cómo limitar el número de líneas en la respuesta del servidor. Y ahora, en lugar de miles de filas de la tabla de productos, podemos obtener las primeras 10 filas y mostrárselas al usuario. es perfectamente Pero, ¿cómo mostramos las segundas 10 filas? ¿Y el tercero?

Si escribimos LIMIT 20, o LIMIT 30, ¿no devolverá el servidor 20 y 30 filas respectivamente?

Es para este caso que SQL tiene una palabra clave especial OFFSETcon la que puedes pedirle al servidor que salte N líneas en su respuesta. Esta palabra clave se usa al final de la consulta SQL (después de LIMIT) y tiene el siguiente aspecto:

OFFSET quantity

Escribamos una consulta en la tabla de productos e intentemos obtener los registros 11 a 15. En otras palabras, le estamos pidiendo al servidor que nos devuelva 5 filas, pero omita primero las primeras 10 filas de la respuesta. Así es como se vería esa solicitud:

SELECT * FROM product
LIMIT 5
OFFSET 10

Obtenemos el siguiente resultado de la consulta:

identificación nombre marca precio contar
once Sillón el bosco 44.00 8
12 maceta flor inteligente 99.00 9
13 Pararse IKEA 100.00 10

El servidor devolvió solo 3 filas, lo que significa que había 13 filas en total en nuestra tabla. El servidor omitió los primeros 10 y devolvió los siguientes 5.

4.3 SELECCIONAR DISTINTO

Otra palabra clave útil es DISTINCT. Se utiliza cuando hay registros duplicados en la tabla y queremos eliminar los duplicados.

¿De dónde vienen los duplicados en nuestra tabla? Puede que no haya duplicados en la tabla, pero como resultado de la consulta, es fácil. Escribamos una consulta que devuelva las marcas de todos los productos que vendemos. Así es como se vería esa solicitud:

SELECT brand FROM product

Obtenemos el siguiente resultado de la consulta:

marca
IKEA
IKEA
IKEA
IKEA
el bosco
el bosco
LG
LG
IKEA
el bosco
el bosco
flor inteligente
IKEA

Es fácil ver que hay filas duplicadas en esta tabla. Es para asegurarse de que no haya duplicados y necesita usar la palabra clave DISTINCT. Así es como se verá la solicitud corregida:

SELECT DISTINCT brand
FROM product

Obtenemos el siguiente resultado de la consulta:

marca
IKEA
el bosco
LG
flor inteligente

Mucho mejor. ¿No es? ;)

4.4 ORDENAR POR

Y finalmente llegamos a la clasificación . Para ordenar los resultados de una consulta, debe utilizar la palabra clave ORDER BY. Técnicamente, estas son dos palabras, pero la esencia no es importante. Dos palabras, un operador.

Debe escribirse después de la palabra clave WHERE, pero antes de LIMITy OFFSET. Si escribe ORDER BYdespués de LIMIT, entonces el servidor SQL simplemente le devolverá un error.

En general, este operador se ve así:

ORDER BY column order

Donde columna es el nombre de la columna en la tabla/resultado de clasificación. Y el orden es el orden de clasificación.

El orden de clasificación puede ser de tres tipos:

  • ASC(de Ascendente) - ascendente;
  • DESC(de Descendente) - descendente;
  • No especificado - se utilizaráASC

Escribamos una consulta que devolverá una lista de productos ordenados por precio en orden ascendente. Así es como se vería esa solicitud:

SELECT * FROM product
ORDER BY price ASC
LIMIT 10

Obtenemos el siguiente resultado de la consulta:

identificación nombre marca precio contar
2 Silla IKEA 5.00 45
8 Lámpara LG 15.00 100
1 Mesa IKEA 20.00 15
6 Estante el bosco 25.00 114
once Sillón el bosco 44.00 8
4 Cama IKEA 75.00 10
3 Sofá IKEA 80.00 10
12 maceta flor inteligente 99.00 9
9 Vestidor IKEA 99.00 10
13 Pararse IKEA 100.00 10

Obtendremos el mismo resultado si no especificamos el orden de clasificación; omitiremos la palabra ASC.

4.5 ORDENAR POR varias columnas

El operador ORDER BYle permite ordenar el resultado por varias columnas. Esto puede ser muy útil cuando la primera columna tiene muchos elementos duplicados. La forma general de este operador es la siguiente:

ORDER BY column 1 order 1, column 2 order 2, column 3 order 3

En otras palabras, si después de ordenar por la primera columna tiene varios valores idénticos cerca, entonces se ordenan por la segunda columna, y así sucesivamente.

Escribamos una consulta que ordenará nuestros productos por marca y para productos con la misma marca, en orden descendente de su número. Así es como se vería esa solicitud:

SELECT * FROM product
ORDER BY brand ASC, count
DESC

Obtenemos el siguiente resultado de la consulta:

identificación nombre marca precio contar
6 Estante el bosco 25.00 114
5 Armario el bosco 125.00 15
10 Lámina el bosco 199.00 10
once Sillón el bosco 44.00 8
2 Silla IKEA 5.00 45
1 Mesa IKEA 20.00 15
9 Vestidor IKEA 99.00 10
13 Pararse IKEA 100.00 10
4 Cama IKEA 75.00 10
3 Sofá IKEA 80.00 10
8 Lámpara LG 15.00 100
7 TELEVISOR LG 350.00 4
12 maceta flor inteligente 99.00 9

Mire de cerca la tabla: sus filas están ordenadas por nombre de marca (orden alfabético) y las filas con el mismo nombre de marca están ordenadas por número de producto en orden descendente (última columna).

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION