domingo, 8 de abril de 2012

26 - Funciones matemáticas.

Los operadores aritméticos son "+","-","*" y "/". Todas las operaciones matemáticas retornan "null" en caso de error. Ejemplo:

select 5/0;
 
MySQL tiene algunas funciones para trabajar con números. Aquí presentamos algunas.

RECUERDE que NO debe haber espacios entre un nombre de función y los paréntesis porque MySQL puede confundir una llamada a una función con una referencia a una tabla o campo que tenga el mismo nombre de una función.

-abs(x): retorna el valor absoluto del argumento "x". Ejemplo:

select abs(-20);
 
retorna 20.

-ceiling(x): redondea hacia arriba el argumento "x". Ejemplo:

select ceiling(12.34),
 
retorna 13.

-floor(x): redondea hacia abajo el argumento "x". Ejemplo:

select floor(12.34);
 
retorna 12.

-greatest(x,y,..): retorna el argumento de máximo valor.

-least(x,y,...): con dos o más argumentos, retorna el argumento más pequeño.

-mod(n,m): significa "módulo aritmético"; retorna el resto de "n" dividido en "m". Ejemplos:

select mod(10,3);
 
retorna 1.

select mod(10,2);
 
retorna 0.

- %: %: devuelve el resto de una división. Ejemplos:

select 10%3;
 
retorna 1.

select 10%2;
 
retorna 0.

-power(x,y): retorna el valor de "x" elevado a la "y" potencia. Ejemplo:

select power(2,3);
 
retorna 8.

-rand(): retorna un valor de coma flotante aleatorio dentro del rango 0 a 1.0.

-round(x): retorna el argumento "x" redondeado al entero más cercano. Ejemplos:

select round(12.34);
retorna 12.

select round(12.64);
 
retorna 13.

-srqt(): devuelve la raiz cuadrada del valor enviado como argumento.

-truncate(x,d): retorna el número "x", truncado a "d" decimales. Si "d" es 0, el resultado no tendrá parte fraccionaria. Ejemplos:

select truncate(123.4567,2);
 
retorna 123.45;

select truncate (123.4567,0);
 
retorna 123.


Todas retornan null en caso de error.



Problema Resuelto:

Trabajamos con la tabla "libros" de una librería.

Eliminamos la tabla si existe.

Creamos la tabla "libros" con la siguiente estructura:

create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar (20),
  precio decimal(5,2) unsigned,
  primary key(codigo)
 );
 
Ingresamos algunos registros:

insert into libros (titulo,autor,editorial,precio)
  values('El alehp','Borges','Paidos',33.4);
 insert into libros (titulo,autor,editorial,precio)
  values('Alicia en el pais de las maravillas','L. Carroll','Planeta',16.3);
 insert into libros (titulo,autor,editorial,precio)
  values('Alicia a traves del espejo','L. Carroll','Planeta',18.8);
 
Usamos la función "ceiling(x)":

select titulo, ceiling(precio),floor(precio)
  from libros;
 
Usamos la función "round(x)":

select titulo, round(precio)
  from libros;
 
Empleamos la función "truncate(x,d)":

select titulo,truncate(precio,1)
  from libros;

No hay comentarios:

Publicar un comentario