Publicado el 4 comentarios

SQL básico. Cómo ordenar los resultados de una consulta.

En las consultas que hemos escrito el las secciones anteriores, los registros resultantes no aparecen en ningún orden. En bases de datos no siempre los resultado se muestran en el orden en que fueron agregados a la tabla. Pensar esto es un error común. Cada actualización de la tabla va alterando el orden de los registros en la misma. Para ordenar los resultados, la instrucción SELECT cuenta con la cláusula ORDER BY.

Cómo ordenar los resultados por un campo o columna en SQL.

La sintaxis más simple es la siguiente:

SELECT * FROM nombre-tabla ORDER BY nombre_campo;

O si queremos limitar el numero de columnas a mostrar:

SELECT lista-de-campos FROM nombre-tabla ORDER BY nombre_campo;

Escribe la siguiente sentencia, ejecútala y desplázate hasta ver los valores de la columna “id_marca”.

Resultados ordenador por “id_marca”.

Recuerda que el asterisco (*) indica mostrar todos las columnas que contiene la tabla. Si te desplazas hacia abajo de los resultados, veras que los registros se visualizan ordenados por el valor del campo o columna “id_marca” del valor más pequeño al mayor, numéricamente hablando, ya que la columna “id_marca” es de un tipo de dato numérico. Por defecto, la cláusula ORDER BY ordena los campos que se le indiquen en forma ascendente (de menor a mayor).

Se puede alterar este orden utilizando la palabra reservada DESC (descendente) inmediatamente después del nombre del campo separad por un espacio. Ejecuta el siguiente ejemplo y observa los resultados:

Ordenar los registros por “id_marca” en forma descendente.

Como puedes observar en los resultados, los registros de salida ahora aparecen ordenados en forma descendente, de mayor a menor valor, por la columna “id_marca”.

Nota importante: los registros NO son ordenados en la tabla, solo son ordenados en los resultados de la consulta.

Ordenar los resultados de una consulta SQL de sólo las filas seleccionadas.

Anteriormente vimos que listar todo el contenido de una tabla a veces es impráctico, sobre todo cuando la tabla contiene cientos de miles o millones de registros. Es más común limitar el numero de registros a mostrar a través de la cláusula WHERE como lo hemos visto antes. La sintaxis seria esta:

SELECT * FROM nombre-tabla WHERE condición ORDER BY nombre-campo;

Si queremos limitar el numero de columnas reemplaza el asterisco (*) por una lista de columnas o campos que quieras mostrar. Observa que la cláusula que ordena los resultados ORDER BY va siempre después de la cláusula WHERE que filtra los resultados. Internamente la base de datos primero ejecuta el filtrado (WHERE) y una vez que tiene los resultados filtrados, ejecuta el ordenamiento sobre estos. Se dice que la cláusula WHERE tiene más prioridad que ORDER BY en el orden de ejecución de una sentencia SQL.

Escribe y ejecuta la siguiente sentencia y observa los resultados:

Consulta filtrada y ordenada.

Los resultados de la consulta sólo muestra 184 registros que corresponden a los productos que son de la marca 363 y están ordenados por la columna “nombre” en forma ascendente. Como el campo nombre es de tipo TEXT, los valores son ordenados en forma alfabética de la A a la Z. Pero recuerda que el tipo de dato TEXT también soporta caracteres numéricos y especiales, si algún nombre de producto empezara por ejemplo, con el caracter “1”, digamos que tuviera el valor en la columna nombre de “1 y 1”, este valor aparecería antes que el valor “Adaptador”. Los números dentro de un campo tipo TEXT son tratados como caracteres y no como números.

De los valores “11” y “9” dentro de un campo TEXT, si se ordenara ascendentemente aparecería primero el valor “11” que el “9”. Si fuera un campo de tipo numérico, entonces ahí si aparecería primero el 9 y después el 11. Recuerda que cuando se está ordenando un campo TEXT se compara caracter por caracter y el caracter “1” es menor que el caracter “9”. Así que cualquier valor que empiece con “1” digamos que “1000”, seguirá siendo menor que “9”. Los caracteres especiales tienen menor valor que los caracteres numéricos. Ejecuta el siguiente ejemplo y observa como son ordenados los resultados:

Resultados filtrados y ordenados por “modelo”.

Observa que ahora los resultados están ordenados por la columna “modelo”. Puedes observar que los caracteres especiales, en este caso las comillas dobles (“) son de valor menor, enseguida siguen los caracteres numéricos y al final los caracteres alfabéticos.

Haz como práctica los mismos dos ejercicios anteriores pero ordenados en forma descendente.

Cómo ordenar los resultados de una consulta SQL por más de un campo o columna.

La sintaxis para ordenar los resultados por más de un campo o columna de una consulta SQL es la siguiente:

SELECT lista-columnas FROM nombre-tabla ORDER BY columna-1 ORDEN-1, columna-2 ORDEN-2, columna-N orden-N;

O con la clásusula WHERE:

SELECT lista-columnas FROM nombre-tabla WHERE condición ORDER BY columna-1ORDEN-1, columna-2 ORDEN-2, columna-N orden-N;

Donde lista-columnas puede ser una lista de columnas como ya hemos visto o un asterisco (*) para indicar todos los campos y orden-N pueden ser las palabras reservadas o comandos que indican el tipo de orden ASC (ascendente) o DESC (descendente). Por defecto si se omite el orden, se asume que es en orden ascendente. Veamos un ejemplo:

Ordenar por más de un campo o columna.

Ejecuta la sentencia anterior y desliza la barra de desplazamiento para ver todos los resultados. Observa que muestra sólo los productos de la marca 363, enseguida ordena los resultados por el campo “id_categoria” en forma ascendente (por defecto) y después por cada conjunto de filas con el mismo valor en “id_categoria” ordena por “nombre” del producto en forma ascendente (por defecto). Ahora cambiemos el orden de la columna “nombre” a descendente.

Ordenado por más de un campo y diferente orden.

Ejecuta la sentencia y observa los resultados. La categoría sigue ordenada en forma ascendente, pero ahora el nombre de los producto lo muestra en forma descendente.Las filas cambiaron de posición. Por último ejecuta la siguiente sentencia:

Ambos campos en el mismo orden.

Ahora, los registros aparecerán ordenados por categoría y luego por nombre de producto en orden descendente ambos. Por último prueba ordenar primero por la columna “nombre” y después por la columna “id_categoria” en el orden que gustes. Y observa los resultados.

En la siguiente sección veremos cómo limitar el numero de filas que regresa una consulta SELECT.

¡Hasta pronto!

IR A LA PAGINA DEL CURSO.

Publicado el 1 comentario

SQL básico. Cómo obtener los valores únicos de una columna.

En esta sección vamos a ver la sintaxis de la instrucción SELECT para obtener los valores únicos o distintos que existen en una columna de una tabla. ¿Recuerdas que en secciones anteriores, en la cláusula WHERE poníamos como condición que aplicara cierta instrucción sólo a las filas que tuvieran cierto valor en el campo “id_marca”?

Pues bien, si listamos todos los valores de todas las filas de la columna “id_marca” (que representa la marca del producto) de la tabla “productos” veríamos que muchos valores se repiten. Esto se debe a que una marca puede fabricar distintos productos.

Valores de “id_marca” repetidos.

Como puedes observar en la imagen anterior, en los 16 primeros registros que se muestran de la tabla “productos”, los valores de la columna “id_marca” se repiten, como el valor 173, el 34 y el 40. Osea que varios productos distintos pertenecen a la misma marca. ¿Cómo podemos saber cuántas marcas distintas hay en toda la tabla? Ir recorriendo la tabla e ir anotando cada valor distinto sería complicado, ya que tenemos 14,647 filas. Por fortuna SQL tiene la cláusula DISTINCT que podemos usar con la instrucción SELECT para hacer esta tarea, la sintaxis sería así:

SELECT DISTINCT nombre_campo FROM nombre-tabla;

Veamos el ejemplo. Escribe la siguiente sentencia y ejecútala.

Obtiene “id_marca” únicos o distintos.

La sentencia debe arrojarte algo como esto:

Muestra los valores únicos de “id_marca”.

La consulta nos arroja 249 filas, es decir que hay 249 valores distintos de “id_marca” en todas las filas de la tabla “productos”. Esto le llevó a la base de datos obtenerlo en 19 milisegundos (ms). ¿Cuánto nos habríamos tardado en obtener el mismo resultado si lo hubiéramos hecho manualmente?

Guarda el archivo SQL. Guardar la base de datos no es necesario, ya que sólo estamos haciendo consultas sin modificar datos o tablas.

Trata de escribir la sentencia que obtendría todas las categorias (columna “id_categoria”) únicas que existen en la tabla “productos”. ¿Cuántas son?

En la sección siguiente veremos la cláusula de la instrucción SELECT que nos permite mostrar en forma ordenada los datos arrojados por una consulta.

¡Hasta la próxima!.

IR A LA PAGINA DEL CURSO.

Publicado el Dejar un comentario

Como registrarse en HBO MAX con la cuenta de iZZi.

Registrase desde un celular android.

Para registrate a HBO MAX con tu cuenta de iZZi (si tienes contratado el paquete “Hazlo HBO”) en un celular android sigue estos pasos:

1.- Instala la aplicación HBO MAX desde Google Play.

2.- Abre la aplicación.

3.- Oprime el botón “Aceptar Todo”.

4.- Aparecerá una pantalla de presentación. Da tap sobre ella.

5.- Seleccionar “Entrar con tu Cuenta”.

6.- Seleccionar “Entra con un proveedor”.

7.- Selecciona tu proveedor, en este caso iZZi, de la lista.

8.- Aparecerá el login de iZZi, proporcionar el correo electrónico y la contraseña con los cuales te registrarte previamente en iZZi. Oprime “Login”.

9.- Una vez validada tu correo electrónico y la contraseña de iZZi, aparecerá la pantalla principal de la aplicación HBO MAX.

10. Opcionalmente te indicará que puedes proyectar la pantalla a tus dispositivos (TV o pantalla) que soporte Chromecast. Oprime el botón para continuar.

¡Es todo, a disfrutar de HBO MAX! Espero y les sea útil.

¡Hasta la próxima!