miércoles, 22 de febrero de 2012

Introducción SQL (Comando SELECT 2da parte)

Funciones 


Oracle incorpora una serie de instrucciones que permiten realizar cálculos avanzados, o bien facilitar la escritura de ciertas expresiones. Todas las funciones reciben datos para poder operar (parámetros) y devuelven un resultado (que depende de los parámetros enviados a la función. Los argumentos se pasan entre paréntesis:


nombreFunción[(parámetro1[, parámetro2,...])]



Si una función no precisa parámetros (como SYSDATE) no hace falta colocar los paréntesis.
Las hay de dos tipos:

  • Funciones que operan con una sola fila
  •  Funciones que operan con varias filas
Sólo veremos las primeras (más adelante se comentan las de varias filas).

Funciones de Caracteres 

Conversión del texto a mayúsculas y minúsculas. Son:



Funciones de Transformación:



Funciones Numéricas

Redondeos 



Matemáticas



Funciones de Trabajo con Nulos

Permiten definir valores a utilizar en el caso de que las expresiones tomen el valor nulo.



Funciones de Fecha

Las fechas se utilizan muchísimo en todas las bases de datos. Oracle proporciona dos tipos de datos para manejar fechas, los tipos DATE y TIMESTAMP. En el primer caso se almacena una fecha concreta (que incluso puede contener la hora), en el segundo caso se almacena un instante de tiempo más concreto que puede incluir incluso fracciones de segundo.

Hay que tener en cuenta que a los valores de tipo fecha se les pueden sumar números y se entendería que esta suma es de días. Si tiene decimales entonces se suman días, horas, minutos y segundos. La diferencia entre dos fechas también obtiene un número de días.
 
Intervalos

Los intervalos son datos relacionados con las fechas en sí, pero que no son fechas. Hay dos tipos de intervalos el INTERVAL DAY TO SECOND que sirve para representar días, horas, minutos y segundos; y el INTERVAL YEAR TO MONTH que representa años y meses. Para los intervalos de año a mes los valores se pueden indicar de estas formas:

/* 123 años y seis meses */

INTERVAL '123-6' YEAR(4) TO MONTH

/* 123 años */

INTERVAL '123' YEAR(4) TO MONTH

/* 6 meses */

INTERVAL '6' MONTH(3) TO MONTH


La precisión en el caso de indicar tanto años como meses, se indica sólo en el año.

En intervalos de días a segundos los intervalos se pueden indicar como:

/* 4 días 10 horas 12 minutos y 7 con 352 segundos */
INTERVAL '4 10:12:7,352' DAY TO SECOND(3)

/* 4 días 10 horas 12 minutos */
INTERVAL '4 10:12' DAY TO MINUTE

/* 4 días 10 horas */
INTERVAL '4 10' DAY TO HOUR

/* 4 días*/
INTERVAL '4' DAY

/*10 horas*/
INTERVAL '10' HOUR

/*25 horas*/
INTERVAL '253' HOUR

/*12 minutos*/
INTERVAL '12' MINUTE

/*30 segundos */
INTERVAL '30' SECOND

/*8 horas y 50 minutos */
INTERVAL ('8:50') HOUR TO MINUTE;

/*7 minutos 6 segundos*/
INTERVAL ('7:06') MINUTE TO SECOND;

/*8 horas 7 minutos 6 segundos*/
INTERVAL ('8:07:06') HOUR TO SECOND;

Esos intervalos se pueden sumar a valores de tipo DATE o TIMESTAMP

Obtener la fecha y hora actual


Calcular Fechas





Funciones de Conversión

Oracle es capaz de convertir datos automáticamente a fin de que la expresión final tenga sentido. En ese sentido son fáciles las conversiones de texto a número y viceversa. Ejemplo:

SELECT 5+'3' FROM DUAL   /*El resultado es 8 */
SELECT 5 || '3' FROM DUAL  /* El resultado es 53 */

También ocurre eso con la conversión de textos a fechas. De hecho es forma habitual de asignar fechas. Pero en diversas ocasiones querremos realizar conversiones explícitas.

TO_CHAR

Obtiene un texto a partir de un número o una fecha. En especial se utiliza con fechas (ya que de número a texto se suele utilizar de forma implícita.

Fechas

En el caso de las fechas se indica el formato de conversión, que es una cadena que puede incluir estos símbolos (en una cadena de texto):



Ejemplos:

SELECT TO_CHAR(SYSDATE, 'DD/MONTH/YYYY, DAY HH:MI:SS') FROM DUAL

/* Sale : 16/AGOSTO /2004, LUNES 08:35:15, por ejemplo

Números

Para convertir números a textos se usa está función cuando se desean características especiales. En ese caso en el formato se pueden utilizar estos símbolos:


TO_NUMBER

Convierte textos en números. Se indica el formato de la conversión (utilizando los mismos símbolos que los comentados anteriormente).

TO_DATE

Convierte textos en fechas. Como segundo parámetro se utilizan los códigos de formato de fechas comentados anteriormente.


No hay comentarios:

Publicar un comentario