Entendido.

Este sitio utiliza cookies para analizar la navegación. Si continúa navegando se entiende que acepta su uso. Ver más detalles.";

Logo

Aprende Web

Crea y diseña tus sitios en la Web.

Manual de SQL

SQL es el lenguaje para trabajar con bases de datos en la web.


Y ahora tambien aprende a programar en C++ con Aprende Web C++

logo rss RSS. Suscribir canal.

Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net





Sobre ésta página

Ültima modificación: 29-01-2016.

Visitas este mes: 71

Visitas el mes pasado: 43

logo
WEB-GRAFÍA

Mi agradecimiento a las siguientes páginas Web. en las cuales me he basado para la elaboración de este manual:


Bases de datos
monografías.com
Curso MySQL
Curso MySQL de AulaFácil
MySQL con clase
conclase.net
Introducción a MySQL
ProgramacionWeb.net
Manual práctico de SQL
www.cepeu.edu.py
MySQL 5.0 Reference Manual
dev.mysql.com
SQL Tutorial
w3schools.com
Tutorial de SQL
desarrolloweb.com
Tutorial de SQL: Curso de SQL
sql.1keydata.com

Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.




SQL (XII)

Funciones numéricas

Funciones en SQL

imagen sql

Las funciones en SQL permiten realizar operaciones o cambios en los datos de la base. En este primer apartado veremos las funciones que operan con los datos de una columna.

En las funciones que mostramos a continuación los datos de las columnas que manejamos deben ser numéricos (tipo de datos int, float, etc.).


Función AVG()

La función AVG() devuelve la media aritmética de los valores de la columna especificada. Su sintaxis es:

SELECT AVG(nombre_columna) FROM nombre_tabla

Observa cómo al ser una función, el parámetro, es decir la columna de la cual hacemos el cálculo, va entre paréntesis. El código PHP devuelve una sola fila, con la media aritmética de la columna.

Veamos un ejemplo, obtengamos la media de la columna "num_pistas", de la tabla "discos" en la base "mi_musica". Al código PHP habitual para seleccionar elementos de la tabla le pondremos la siguiente sentencia SQL:

SELECT AVG(num_pistas) 
   FROM discos

Obtendremos el siguiente resultado al aplicarle la función PHP "mysql_fetch_assoc()", vemos la clave y el valor del elemento seleccionado:


AVG(num_pistas) = 10.2000 ...


Hemos obtenido la media aritmética de los valores de la columna "num_pistas".


Función COUNT()

Esta función devuelve el número de valores que contiene la columna, es decir el número de registros que no tienen valor NULL en la columna.

La sintaxis es similar a la de la función anterior:

SELECT COUNT(nombre_columna) FROM nombre_tabla

Esta es la única función de este grupo en la que no es necesario que los valores de la columna sean numéricos. Veamos un ejemplo con la columna "info" de la tabla "discos" en la base "mi:_musica; esta es la sentencia SQL:

SELECT COUNT(info) 
   FROM discos

Obtenemos el siguiente resultado en la página:

COUNT(info) = 5 ...


Hemos obtenido el recuento de los registros de la columna "info" que no son nulos.


Función MAX()

Esta función selecciona el valor máximo de entre todos los que hay en la columna. Su sintaxis es:

SELECT MAX(nombre_columna) FROM nombre_tabla

Veamos el ejemplo con la columna "num_pistas" de la tabla "discos" en la base "mi_musica".

SELECT MAX(num_pistas) 
   FROM discos

Obtenemos el siguiente resultado en la página:

MAX(num_pistas) = 14 ...


Si aplicamos esta función a una columna con datos de texto, se obtendrá el valor de la columna que esté el último en orden alfabético.


Función MIN()

Esta función selecciona el valor mínimo de entre todos los que hay en la columna. Su sintaxis es:

SELECT MIN(nombre_columna) FROM nombre_tabla

Veamos el ejemplo con la columna "num_pistas" de la tabla "discos" en la base "mi_musica".

SELECT MIN(num_pistas) 
   FROM discos

Obtenemos el siguiente resultado en la página:

MIN(num_pistas) = 2 ...


Si aplicamos esta función a una columna con datos de texto, se obtendrá el valor de la columna que esté el primero en orden alfabético.


Funcion SUM()

Esta función devuelve la suma de todos los valores de la columna. Su sintaxis es la siguiente:

SELECT SUM(nombre_columna) FROM nombre_tabla

Veamos el ejemplo con la columna "num_pistas" de la tabla "discos" en la base "mi_musica".

SELECT SUM(num_pistas) 
   FROM discos

Obtenemos el siguiente resultado en la página:

SUM(num_pistas) = 51 ...



Distribuir por grupos: GROUP BY.

Las funciones anteriores dan el resultado de una operación sobre toda una columna, sin embargo a veces queremos ver los resultados distribuidos según los grupos que forman las columnas. Usamos entonces la instrucción GROUP BY que distribuye los resultados de la función en base a una condición. La sintaxis será:

SELECT SUM(nombre_columna)
   FROM nombre_tabla 
   GROUP BY nombre_columna_ref

Utilizamos aquí la función SUM(), pero podríamos haber utilizado cualquiera de las funciones anteriores.

Es más frecuente utilizar la instrucción GROUP BY en las relaciones entre dos tablas; normalmente para ver las cifras de cada uno de los elementos a los que corresponden varios en la otra tabla. Por ejemplo en la base "mi_musica" veamos cuantas canciones ("num_pista") corresponden a cada "artista". Utilizamos en el código tanto la tabla "artistas" como la tabla "discos" con la instrucción INNER JOIN. Este será el código:

SELECT artistas.artista, SUM(discos.num_pistas) FROM discos
      INNER JOIN artistas
      ON artistas.id_artistas=discos.ref_artista 
      GROUP BY artistas.artista

El resultado de la sentencia anterior nos dará la siguiente lista:

artista = Amaral ... SUM(discos.num_pistas) = 14 ...

artista = Dire Straits ... SUM(discos.num_pistas) = 21 ...

artista = Mike Oldfield ... SUM(discos.num_pistas) = 16 ...


Podemos también insertar una condición WHERE en la sentencia anterior, por ejemplo si queremos que en el ejemplo anterior se seleccionen a partir del segundo registro. utilizamos la columna "id_artistas" para expresar la condición:

SELECT artistas.artista, SUM(discos.num_pistas) FROM discos
      INNER JOIN artistas
      ON artistas.id_artistas=discos.ref_artista 
      WHERE artistas.id_artistas>=2
      GROUP BY artistas.artista

Observa que la instrucción WHERE debemos ponerla antes de la instrucción GROUP BY. El resultado del código anterior es el siguiente:

artista = Dire Straits ... SUM(discos.num_pistas) = 21 ...

artista = Mike Oldfield ... SUM(discos.num_pistas) = 16 ...


Sin embargo si la condición que queremos poner depende de una función, no podemos utilizar la instrucción WHERE, sino que utilizaremos una nueva instrucción: HAVING:

En el ejemplo anterior queremos seleccionar sólo los artistas que tengan más de 15 canciones (la suma de pistas en todos sus discos sea mayor que 15); el código será el siguiente:

SELECT artistas.artista, SUM(discos.num_pistas) FROM discos
      INNER JOIN artistas
      ON artistas.id_artistas=discos.ref_artista 
      GROUP BY artistas.artista
      HAVING SUM(discos.num_pistas)>15

Observa cómo la instrucción HAVING debe ir detrás de la instrucción GROUP BY, además debe llevar una función SQL. El resultado del código anterior será el siguiente:

artista = Dire Straits ... SUM(discos.num_pistas) = 21 ...

artista = Mike Oldfield ... SUM(discos.num_pistas) = 16 ...







En la siguiente página seguiremos viendo funciones para SQL:

Otras funciones



Manual de SQL

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com