SlideShare una empresa de Scribd logo
1 de 23
INDICE
OBJETIVOS………………………………………………………………………………………………………..3

INTRODUCCIÓN………………………………………………………………………………………………..4

4.1 TIPOS DE DATOS……………………………………………………………………………………5

4.1.1 DATOS NUMERICOS………………………………………………………………………………….5

4.1.2 DATOS CARÁCTER…………………………………………………………………………………….6

4.1.3 DATOS TIPO FECHA…………………………………………………………………………………..8

4.1.4 DATOS BINARIOS……………………………………………………………………………………...9

4.1.5 OTROS………………………………………………………………………………………………………9

4.1.6 TIPOS DE DATOS PERSONALIZADOS…………………………………………………………10

4.2 FUNCIONES
4.2.1 INTRODUCCION………………………………………………………………………………………11

4.2.2 FUNCIONES TIPO CARÁCTER…………………………………………………......... 11

4.2.3 FUNCIONES NUMERICAS………………………………………………………………………….18

4.2.4 FUNCIONES FECHAS…………………………………………………………………………………19

4.2.5 FUNCIONES DE CONVERSION……………………………………………………………………21

4.2.6 OTRAS FUNCIONES…………………………………………………………………………………...23

BIBLIOGRAFÍA………………………………………………………………………………...24
BASE DE DATOS II        1




                             OBJETIVOS


     Conocer los diferentes tipos de datos y sus características.


     La idea fundamental es indicar la forma de escribir
      declaraciones correctas en Oracle o SQL, familiarizándose así
      con los objetos de base de datos.


       Aprender una regla general, cuando se escriben declaraciones.




[Escriba texto]                                                      Página 1
BASE DE DATOS II       2




                               INTRODUCCIÓN

        Las bases de datos son una parte fundamental de cualquier aplicación, pues en
        ellas se almacenan información trascendental para el buen desempeño de las
        mismas. Con el desarrollo de los distintos sistemas de gestión de bases de datos
        (SGBD), algunos de ellos fueron ganando en preferencia para los diferentes
        usuarios; por sus características de seguridad, configuración, conectividad, etc.

        Todos los campos de una tabla tienen propiedades. Éstas definen las
        características y el comportamiento del campo. La propiedad más importante de
        un campo es su tipo de datos. El tipo de datos de un campo determina la clase de
        datos que va a poder almacenar. Por ejemplo, un campo cuyo tipo de datos sea
        Texto podrá almacenar datos que se compongan de caracteres de texto, mientras
        que un campo cuyo tipo de datos sea Número sólo podrá almacenar datos
        numéricos.

        Como veremos El lenguaje SQL está compuesto por comandos, cláusulas,
        operadores y funciones de agregado. Estos elementos se combinan en las
        instrucciones para crear, actualizar y manipular las bases de datos.




[Escriba texto]                                                                   Página 2
BASE DE DATOS II        3



                                           CONTENIDO


IV. TIPOS DE DATOS Y FUNCIONES ASOCIADAS

4.1 TIPOS DE DATOS
Un tipo de datos es un atributo que especifica el tipo de datos que el objeto puede
contener: datos de enteros, datos de caracteres, datos de moneda, datos de fecha y
hora, cadenas binarias, etc.


4.1.1. Datos Numéricos
El tipo de datos NUMBER es utilizado para guardar los números cero, negativos, positivos, fijos y de
punto flotante, con hasta 38 dígitos de precisión. Los números van desde del 1.0x10 -130 hasta 1.0x10
126.
Los NUMBER pueden ser definidos de tres formas:
NUMBER(p,s)
Donde p es la precisión de hasta 38 dígitos y s es la escala (número de dígitos a la derecha del punto
decimal)
 NUMBER (p)
Es este un número de punto fijo con una escala de cero y precisión de p.
 NUMBER
Este es un número punto flotante con una precisión de 38. La siguiente tabla muestra como Oracle
almacena las diferentes escalas y precisiones:

  Dato actual         Definido como                    Almacenado como
  7,456,123.89        NUMBER                           7456123.89
  7,456,123.89        NUMBER(*,1)                      7456123.9
  7,456,123.89        NUMBER(9)                        7456124
  7,456,123.89        NUMBER(9,2)                      7456123.89
  7,456,123.89        NUMBER(9,1)                      7456123.9
  7,456,123.89        NUMBER(6)                        (no aceptado, excede la precisión)
  7,456,123.89        NUMBER(7,-2)                     7456100




[Escriba texto]                                                                                Página 3
BASE DE DATOS II         4




4.1.2. Datos Carácter
Existen cuatro tipos de datos para caracteres:

El tipo de datos CHAR es utilizado como un campo de largo fijo. El tamaño puede ser especificado entre
1 y 255 caracteres en versión 7 y entre 1 y 2000 en versión 8. El tamaño por defecto es 1. Cuando no se
indica dato de entrada, se llena con tantos espacios en blanco como sea necesario para llegar al
tamaño especificado.

El VARCHAR2 es utilizado para campos de largo variable. Debe indicarse para este tipo de datos el
tamaño al utilizar el tipo de datos. El largo máximo es de 2000 caracteres en versión 7 y 4000 en
versión 8.

El tipo de datos LONG es utilizado para cantidades variables de texto muy grandes. Cualquier largo
hasta 2 GB puede indicarse. Algunas restricciones para el uso de este tipo de datos son:

       Sólo puede haber una columna de este tipo por ta21bla.
       Una columna LONG no puede ser indexada.
       Una columna LONG no puede ser pasada como parámetro de un procedimiento o función.
       Una función no puede ser utilizada para retornar un valor de tipo LONG.
       Una columna de tipo LONG no puede ser utilizada en el where, order by, group by o connect de
        una sentencia SQL.

    El tipo de datos VARCHAR es sinónimo de VARCHAR2. Oracle Corporation está reservando este
    para uso futuro. No usarlo.

Los tipos de datos NCHAR y NVARCHAR2 (solo versión 8) permiten almacenar caracteres del NLS.
NCHAR guarda hileras de caracteres de largo fijo que corresponden a un conjunto de caracteres de
largo fijo o variable. El NVARCHAR2 guarda hileras de largo variable.

Cuando se utilizan estos tipos NCHAR o NVARCHAR2, se debe especifica el tamaño máximo que puede
el número de caracteres (para conjuntos de caracteres de largo fijo) o el número de bytes (para un
conjunto de caracteres de largo variable).

     El largo máximo para las columnas NCHAR es de 2000 bytes, o bien el número de máximo de
      caracteres que pueden ser grabados en 2000 bytes.
     El largo máximo para las columnas NVARCHAR2 es de 4000 bytes, o bien el número de máximo
      de caracteres que pueden ser grabados en 4000 bytes.




[Escriba texto]                                                                               Página 4
BASE DE DATOS II         5




  Los tipos de datos de cadenas de caracteres de JDBC son CHAR, VARCHAR y LONGVARCHAR. También
  pueden ser NCHAR, NVARCHAR y LONGNVARCHAR. Estos nuevos tipos de cadena de caracteres
  mantienen los tipos de caracteres nativos de Java en formato Unicode y quitan la necesidad de realizar
  cualquier conversión ANSI a Unicode o Unicode a ANSI.

Dato Carácter                 Características
                              Almacena cadenas de caracteres de una longitud variable. La longitud máxima
VARCHAR2 (tamaño)
                              son 4000 caracteres.
CHAR (tamaño)                 Almacena caracteres con una longitud fija. Siendo 2000 caracteres el máximo




  Tipo          Descripción

  Longitud      Los tipos de datos char y nchar de SQL Server se asignan directamente a los tipos CHAR y
  fija          NCHAR de JDBC. Estos son tipos de longitud fija con relleno que proporciona el servidor en
                el caso de que la columna tenga habilitado SET ANSI_PADDING ON. El relleno siempre está
                habilitado para nchar, pero en el caso de char, si las columnas char del servidor no tienen
                relleno, el servidor lo agrega el controlador JDBC.


  Longitud      Los tipos de datos varchar y nvarchar de SQL Server se asignan directa y respectivamente
  variable      VARCHAR y NVARCHAR de JDBC.

  Long          Los tipos text y ntext de SQL Server se asignan respectivamente a los tipos LONGVARCHAR
                y LONGNVARCHAR de JDBC. Estos son tipos que ya no se utilizan desde SQL Server 2005,
                por lo que en su lugar debería usar tipos de valores mayores, varchar(max) o
                nvarchar(max). No se pueden usar los métodos update<Numeric Type> y updateObject (int,
                java.lang.Object) con las columnas de servidor text y ntext. No obstante, se admite el uso
                del método setObject con un tipo específico de conversión de caracteres en columnas text y
                ntext del servidor.




  [Escriba texto]                                                                               Página 5
BASE DE DATOS II         6



4.1.3. Datos Fecha
A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera
estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12
y        que        el        día         esta     comprendido      entre       0       y       31.
Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de
diciembre       de     9999.     El     formato   de    almacenamiento      es   de    año-mes-día

DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0
horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El
formato      de       almacenamiento        es     de      año-mes-día       horas:minutos:segundos

TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El
formato     de      almacenamiento         depende      del       tamaño      del      campo:


         Tamaño           Formato
         14               AñoMesDiaHoraMinutoSegundo aaaammddhhmmss

         12               AñoMesDiaHoraMinutoSegundo aammddhhmmss
         8                ñoMesDia aaaammdd
         6                AñoMesDia aammdd
         4                AñoMes aamm
         2                Año aa


Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59
minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'

Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo
puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro
dígitos.

                         Tipo de Campo         Tamaño de Almacenamiento
                         DATE                  3 bytes
                         DATETIME              8 bytes
                         TIMESTAMP             4 bytes
                         TIME                  3 bytes
                         YEAR                  1 byte
[Escriba texto]                                                                              Página 6
BASE DE DATOS II         7



4.1.4 Tipos de datos binarios

Permiten almacenar información en formato "crudo", valores binarios tal y como se almacenan en el
disco duro o como residen en memoria. Estas columnas se pueden utilizar tanto para almacenar
grandes cantidades de datos (hasta 4Gb.),

Tipo de dato LONG: Almacena caracteres de longitud variable hasta 2 Gb. En Oracle8 y siguientes
versiones se deben usar los tipos de datos CLOB y NLOB para almacenar grandes cantidades de datos
alfanuméricos.




4.1.5 Otros Tipos de Datos

Cada fila en la base de datos tiene una dirección. Esta dirección puede ser obtenida por medio de la
función ROWID. . El formato es el siguiente (versión 7):

BLOCK.ROW.FILE

BLOCK es el bloque de datos de archivo de datos FILE conteniendo el ROW. Estos datos se dan en
formato hexadecimal y el tipo de datos es ROWID.
Este valor no puede ser exportado, pues al importarse la dirección del registro es casi seguro que
variará.

El ROWID extendido (versión 8) tiene el siguiente formato:

OOOOOOFFFBBBBBBRRR

Donde:
OOOOOO es el número de objeto de datos que identifica el segmento de la base de datos. Objetos que
se encuentren en un mismo segmento, como un cluster de tablas, tiene el mismo número de objeto de
datos.
FFF es el datafile que contiene la fila.
BBBBBB este el bloque de datos que contiene la fila y son relativos al datafile (no al tablespace)
RRR la fila en el bloque.
Finalmente el MLSLABEL es un tipo de datos utilizado para almacenar el formato binario de etiquetas
(labels), utilizado en sistemas operativos seguros.




[Escriba texto]                                                                             Página 7
BASE DE DATOS II         8



4.1.6 Tipos de Datos Definidos por el Usuario

Además de los tipos vistos (built-in datatypes), Oracle permite definir nuevos tipos de datos a los
usuarios.
Basado en el concepto de objeto, permite crear tipos como objetos del mundo real, los cuales tiene
tres componentes básicos:

    Un nombre, el cual lo identifica de forma única en un esquema.
    Atributos, los cuales pueden ser de tipo predefinidos u otros tipos definidos por el usuario.
    Métodos, los cuales son funciones o procedimientos escritos en PL/SQL y almacenados en la
     base de datos, o bien escritos en C o Java y almacenados externamente.

Para poder distinguir un objeto de otro dentro de la base de datos se define el object identifier (OID),
para poder representar estas identificaciones existe el tipo REF, el cual es el contenedor de un
identificador de objeto, el cual es básicamente un puntero a un objeto.
Otros tipos de datos son los VARRAY, los cuales permiten definir tablas del tipo de datos seleccionado.




[Escriba texto]                                                                                 Página 8
BASE DE DATOS II     9




                                 4.2 Funciones
4.2.1Introducción.

        * Las funciones trabajan con columnas variables o constantes
               EJ:) pasar a minúscula el valor de una columna. //UPPER
        * Las funciones se utilizan en:
               SELECT’s WHERE y ORDER BY
        * Se pueden anidar.


4.2.2 Funciones con cadenas de caracteres.
  ¨ CONCAT(c

ad1,cad2) -> Devuelve cad1 concatenado con cad2. Sólo admite 2 parámetros.

       EJ 1:
          SELECT CONCAT(‘El apellido es:’,apellido) FROM EMPLE;
       CONCAT ('ELAPELLIDOES:', AP
       -------------------------
       El apellido es: SÁNCHEZ
       El apellido es: ARROYO
       El apellido es: SALA
       El apellido es: JIMÉNEZ
       El apellido es: MARTÍN
       El apellido es: NEGRO
       El apellido es: CEREZO
       El apellido es: GIL
       El apellido es: REY
       El apellido es: TOVAR
       El apellido es: ALONSO
       El apellido es: JIMENO
       El apellido es: FERNÁNDEZ
       El apellido es: MUÑOZ

[Escriba texto]                                                                    Página 9
BASE DE DATOS II        10



       EJ 2: Teniendo la tabla EMPLE efectuar la consulta que nos devolvería...
              Sánchez es Empleado
              Arroyo es Vendedor
              .........
          SELECT CONCAT (apellido,CONCAT(’ es ‘, oficio)) FROM EMPLE;

 ¨ LOWER -> Devuelve la cadena <<cad>> con todas las letras convertidas a
minúsculas.

  ¨ UPPER -> Igual pero a MAYUSCULAS.


      EJ 3: Obtención del nombre de los empleados minúsculas y mayúsculas
respectivamente.


       SELECT LOWER(apellido) FROM EMPLE;
       SELECT UPPER(apellido) FROM EMPLE;

    ¨ INITCAP(cadena) Convierte la primera letra de cada palabra de la cadena <cad> a MAYÚSCULAS y
el resto a minúsculas.

        EJ 4: Convertir a Título...

       SELECT INITCAP(‘DESARROLLO de aplicaciones informáticas’)
       FROM DUAL;

  ¨ LPAD(cad1,n[,cad2]) ->Esta función añade caracteres a la izq. De la cadena <cad1>
hasta que alcance una cierta longitud <n>. Devuelve <cad1> con longitud <n> y ajustado
a la derecha; <cad2> es la cadena con la q se rellena por la izq. <cad1> puede ser una
columna de una tabla o un literal. Si <cad2> se suprime se asume como carácter de
relleno el BLANCO. Sirve para rellenar con ceros.




[Escriba texto]                                                                          Página 10
BASE DE DATOS II       11




       EJ 5: Por cada fila de la tabla NOTAS_ALUMNOS, obtener el nombre del alumno de
       tal manera q tenga una longitud de 30 caracteres y rellenado a la izq. Por puntos.

SELECT LPAD(nombre_alumno,30,’.’)
FROM NOTAS_ALUMNOS;

 LPAD(NOMBRE_ALUMNO,30,'.')
------------------------------
......Alcalde García, M. Luisa
...........Benito Martín, Luis
........Casas Martínez, Manuel
.......Corregidor Sánchez, Ana
...........Díaz Sánchez, María

      EJ 5: Ajustar a la decha rellenando por la izq con ceros: b7557 donde long.Total es
5 caracteres.

Select LPAD (‘757’, 5, and ’0’) FROM DUAL;
LPAD (
-----
0 757
     //Esto no rellenaría con 0 el espacio que hay en ‘0 757’,
Para ello utilizaremos: RTRIM ó LTRIM

  ¨ RPAD -> RPAD(cad1,n[,lo mismo q LPAD pero rellenando por la derecha. Devuelve
cad1 con longitud <n> y ajustado a la izq.; <cad2> es la cadena a rellenar por la
derecha




[Escriba texto]                                                                  Página 11
BASE DE DATOS II       12



    EJ 6: Para cada empleado obtener el apellido ajustado a la izq. Y rellenado por la
    derecha con asteriscos, obteniendo una long. Total de 11 caractes.

SELECT RPAD(apellido,11,’*’) FROM EMPLE;
RPAD(APELLI
-----------
SÁNCHEZ****
ARROYO*****
SALA*******
JIMÉNEZ**** [...]


·     LTRIM(cad[,SET]) Devuelve <cad> con el grupo de carecteres SET omitidos por la
    izq. De la cadena por defecto, si la cadena contiene blancos a la izq. Y se omite el
    segundo parámetro SET, la fºn devuelve la cadena sin blancos a la izq. SET es la
    cadena que no se van a mostrar, de izq. A drecha y mientras vaya encontrando
    caracteres que contenga la cadena SET. ( Es decir se tendran en cuenta todas los
    caracteres ddel SET indistintamente del orden).

       EJ 7: Dada la cadena ‘ hola’ se pide devolver la misma cadena eliminando los
       blancos de la izq.

       SELECT LTRIM(‘ hola’) FROM DUAL;
       LTRI
----
hola

       EJ 7: Dada la cadena ‘abaAabUNIDAD’ se pide q con una sentencia LTRIM eliminar
       los caracteres ‘a’ y ‘b’ por la izq. para q devuelva ‘AabUNIDAD’.

             SELECT LTRIM(‘abaAabUNIDAD’,’aba’) FROM DUAL;
            LTRIM ('AB
---------
AabUNIDAD

                  //se ha dejado ‘ab’ pero es porque va de izq. A dcha. Y ha encontrado ‘A’
                  que no está en la cadena SET.

    ¨ RTRIM(cad[,SET]) : Es lo mismo que RTRIM pero desde la derecha.



[Escriba texto]                                                                    Página 12
BASE DE DATOS II      13



         EJ 8: Eliminar los blancos de la cadena: ‘adios ‘.
             SELECT RTRIM(‘adios ‘,’ ‘) FROM DUAL;
             RTRIM
-----
adios


      EJ 9: Quitar las comillas dobles de la izq. y las de la dcha. Junto con el punto de la
dcha. De la tabla MIS_TEXTOS.

        SQL> SELECT * FROM MISTEXTOS;

        TITULO                                              AUTOR
        METODOLOGÍA DE LA PROGRAMACIÓN.                  ALCALDE, GARCÍA
        "INFORMÁTICA BÁSICA."                            GARCÍA GARCERÁN
        SISTEMAS OPERATIVOS                            J.F. GARCÍA
        SISTEMAS DIGITALES.                            M.A. RUÍZ
        "MANUAL DE C."                                    M.A. RUÍZ

        SELECT RTRIM(LTRIM(titulo,’”’),’”.’)
        FROM MISTEXTOS;
              METODOLOGÍA DE LA PROGRAMACIÓN
              INFORMÁTICA BÁSICA
              SISTEMAS OPERATIVOS
              SISTEMAS DIGITALES
              MANUAL DE C

        EJ 10: Dada la cadena ‘ 757 ‘, devolver la cadena ‘00000757’.

        SELECT LPAD( LTRIM(RTRIM(‘ 757 ‘,’ ‘),’ ‘),8,’0’) FROM DUAL;
              LPAD(LTR
--------
00000757

·     REPLACE(cad,cadena_busqueda[,cadena_sustitucion]) Devuelve <cad> con cada
    ocurrencia de cadena_busqueda sustituida por cadena_sustitución. Si no ponemos
    nada en la cadena sustitucion, se sustituirá la cdena_busqueda por NADA.




[Escriba texto]                                                                      Página 13
BASE DE DATOS II         14



    EJ 11: Dada la cadena ‘BLANCO Y NEGRO’ obtener ‘BLANCAS Y NEGRAS’.

     SELECT REPLACE(‘BLANCO Y NEGRO’,’O’,’AS’) from dual;
             REPLACE('BLANCOY
              ----------------
              BLANCAS Y NEGRAS

·     SUBSTR(cad,inicio[,n]) Extrae una parte de una cadena (subcadena) ydevuelve la
    subcadena de <cad> q abarca desde la posición indicada en <inicio> hasta tantos
    caracteres como indique <n>. El valor de <n> no puede ser inferior a 1.

       EJ 12: Partiendo de la cadena ‘ABCDEF’ obtener la cadena ’CD’.

        SELECT SUBSTR(‘ABCDEF’,3,2) FROM DUAL;

       EJ 13: Visualizar el apellido y la primera letra del mismo en minúsculas en
       columnas diferentes de todos los empleados.

                   SELECT apellido “APE”,SUBSTR (apellido, 1,1)”P” FROM EMPLE;
                   APELLIDO S
                  -------------------
                  SÁNCHEZ S
                  ARROYO A
                  SALA        S
                  JIMÉNEZ J
                  MARTÍN           M
                  NEGRO N
                  CEREZO C
                  GIL       G
                  REY        R
                  TOVAR T
                  ALONSO A
                  JIMENO J
                  FERNÁNDEZ F
                  MUÑOZ M

·    TRANSLATE (cad1,cad2,cad3) -> Devuelve <cad1> con los caracteres encontrados
    en <cad2> y sustituidos por los caracteres de <cad3>.
[Escriba texto]                                                                      Página 14
BASE DE DATOS II     15




EJ 14:     SELECT TRANSLATE (‘LOS PILARES DE LA TIERRA’,’LAEIOU’,’laeiou’)
         FROM DUAL;


   TRANSLATE ('LOSPILARESDEL
    ------------------------------------------
               loSPilaReS De la TieRRa

  Ej 15: SELECT TRANSLATE(‘SQL PLUS’,’SQL’,’123’)
       FROM DUAL;
             TRANSLAT
            --------
            123 P3U1

  EJ 16: De la tabla MISTEXTOS queremos visualizar todos los títulos sin los caracteres. “

SELECT TRANSLATE (titulo,’.”’,’ ‘) FROM MISTEXTOS;
     Transtalate, para funcionar ha de tener al menos un carácter en <cad2>.

  ¨SOUNDEX
     SELECT SOUNDEX(‘Smythe’) FROM DUAL;
     SELECT SOUNDEX(‘Smith’) FROM DUAL;




[Escriba texto]                                                                         Página 15
BASE DE DATOS II     16



4.2.3 Funciones Numéricas

ABS
Sintaxis
ABS(x)
Propósito
Devuelve el valor absoluto de x.

Ejemplo:

Select abs (7) from dual;
Resultado: 7

ASIN
Sintaxis
ASIN(x)
Propósito
Devuelve el arco seno de x. El rango de x debe estar entre -1 y 1.
Ejemplo:
Select asin(1) from dual;
Resultado: 1.57079633

FLOOR
Sintaxis
FLOOR(x)
Propósito
Devuelve el mayor entero igual o menor que x
Ejemplo:
Select floor(23.5) from dual;
Resultado: 23




[Escriba texto]                                                               Página 16
BASE DE DATOS II         17




4.2.4 Funciones fechas

Aquí algunos ejemplos para adicionar y sustraer días y meses y encontrar la diferencia
entre fechas en Oracle. Estos ejemplos toman el resultado de la tabla "dual. La tabla
Dual es una tabla virtual que existe en todas las Bases de datos Oracle. Muchas veces
hemos usado la consulta SELECT sysdate FROM dual; la cual simplemente nos retorna la
fecha y hora actual.

SYSDATE= Devuelve la fecha del sistema.
ADD_MONTHS (fecha, n)= Devuelve la fecha "fecha" incrementada en "n" meses.
LASTDAY (fecha)= Devuelve la fecha del último día del mes que contiene "fecha".
MONTHS_BETWEEN (fecha1, fecha2)= Devuelve la diferencia en meses entre las fechas
"fecha1" y "fecha2".
NEXT_DAY (fecha, cad)= Devuelve la fecha del primer día de la semana indicado por
"cad" después de la fecha indicada por "fecha".

Ajustar Días, Semanas, Horas y minutos

Para adicionar y sustraer días a una fecha, simplemente usamos los signos + o -
respectivamente.

Algunosejemplos:

SQL> SELECT sysdate + 7 FROM dual;
SYSDATE+
-------
25/09/06

SQL> SELECT sysdate - 30 FROM dual;
SYSDATE-
--------
19/08/06
SQL> SELECT to_char(sysdate - 14, 'MM/DD/YYYY HH:MI AM') FROM
dual;
TO_CHAR(SYSDATE-14,
-------------------
09/04/2006 11:41 AM


En el primer ejemplo, vemos que la consulta retorna la fecha siete días a partir de hoy.
La segunda retorna la fecha de hace 30 días. En la tercera, se ha usado la función de
conversión to_char, para ver las horas y minutos. Esto nos muestra que mientras la
fecha, ha cambiado, el tiempo no cambia.
Los ejemplos primero y tercero además
muestran como el adicionar días, puede ser útil para computar semanas.




[Escriba texto]                                                                    Página 17
BASE DE DATOS II      18



 Si usted desea simplificar el computo de semanas, podías usar querys de este
tipo:
SQL> SELECT sysdate + (7 * 3) FROM dual;
SYSDATE+
--------
09/10/06
Así
mismo, para trabajar con horas ud podría usar fracciones de día. La forma más simple
para mostrar esto es dividiendo por 24, que es el número de horas diarias.
Aunque el paréntesis no es necesario, permite evidenciar con más claridad la
sentencia
Aquí, se muestra la hora actual y luego la hora actual mas dos horas:
SQL>
SELECT to_char(sysdate, 'HH:MI AM') FROM dual;
TO_CHAR(
--------
02:00 PM
SQL>
SELECT to_char(sysdate + (2/24), 'HH:MI AM') FROM dual;
TO_CHAR(
--------
04:00 PM
Una alternativa a este método es el uso de la función numtodsinterval. El anterior
ejemplo puede ser reescrito de la siguiente manera (la función numtodsinterval viene
incorporada en la BD apartir de oracle 9i):
SQL> SELECT to_char(sysdate +
numtodsinterval(2, 'HOUR'), 'HH:MI AM')
FROM dual;
TO_CHAR(
---
02:00 PM
Aquí la
función numtodsinterval está haciendo el trabajo de dividir 2/24 horas. Las opciones
válidas para esta función son: ‘DAY’, ‘HOUR’, ‘MINUTE’, o ‘SECOND’. Aquí un ejemplo
usando ‘MINUTE’. Cuando se trabaja con minutos la función numtodsinterval es mucho
más legible.
SQL> SELECT to_char(sysdate + numtodsinterval(45, 'MINUTE'), 'HH:MI
AM')FROM dual;
TO_CHAR(
--------
03:19 PM




[Escriba texto]                                                             Página 18
BASE DE DATOS II      19



4.2.5 Funciones de Conversión
TO_CHAR= Transforma un tipo DATE ó NUMBER en una cadena de caracteres.

TO_CHAR
Sintaxis
TO_CHAR ( d[,formato[,paramnls]] )
Propósito
Convertir la fecha d a una cadena de caracteres VARCHAR2. El parámetro paramnls
controla el idioma de los componentes de mes y día de la cadena devuelta. El formato
de paramnls es:
'NLS _DATE_LANGUAGE=idioma'

Ejemplo:
selectto_char(sysdate,'dd/mm/yyyy')from dual;
Resultado: 19/03/2002

TO_DATE= Transforma un tipo NUMBER ó CHAR en DATE.



Sintaxis
TO_DATE (cadena [, formato [, paramnls]])
Propósito
Convierte una cadena CHAR o VARCHAR2 a una valor de fecha tipo DATE. El parámetro
formato es una cadena de formato fecha.
Ejemplo:
Select to_date(’19/03/2002’,’dd/mm/yyyy’) from dual;
Resultado: 19/03/2002


TO_NUMBER= Transforma una cadena de caracteres en NUMBER.
• Sintaxis
• TO_NUMBER ( cadena[,formato[,paramnls]] )
• Propósito
• Convierte la cadena CHAR o VARCHAR2 a un valor de tipo NUMBER.

[Escriba texto]                                                               Página 19
BASE DE DATOS II         20




• Ejemplo:
• select to number(’$123.45’,’$999.99’) from dual;
• Resultado: 123,45




Función                                      Propósito

TO_CHAR(fecha,'formato')                     Esta función nos convierte una
                                             fecha de tipo date a una fecha de
                                             tipo varchar2

TO_CHAR(numero,'formato')                    Nos convierte un dato de tipo
                                             number a un tipo varchar2

TO_DATE(cad,'formato')                       Convierte un tipo de dato
                                             varchar2 o char a un valor de
                                             tipo date con el formato
                                             especificado

TO_NUMBER(cadena,['formato'])                Convierte una cadena a tipo de
                                             dato number, y si se le pasa, con
                                             el formato especificado




[Escriba texto]                                                                  Página 20
BASE DE DATOS II          21




                                4.2.6 OTRAS Funciones

GREATEST
Sintaxis
GREATEST ( expr1[,expr2].. )
Propósito
Devuelve la expresión con mayor valor de todos sus argumentos.
Ejemplo:
select greatest(10,’7’,’3’) from dual;
Resultado: 10

UID
Sintaxis
USER
Sintaxis
USER
Propósito
Devuelve un valor VARCHAR2 que contiene el nombre de usuario actual de Oracle.
Ejemplo:
selectuserfrom dual;
Resultado: CLOOAVALVERDE

Otras funciones
1) Mostramos el nombre de los alumnos y si su asignatura es lengua le ponemos un código 1, si es
matemáticas un código 2 y si no es ninguna de esas un 3.

Select alumnos, DECODE (asignatura, 'lenguaje',1, 'matemáticas', 2, 3) "código" from alumnos;
2) Mostramos el usuario que está conectado.

Show USER;
3) Mostramos el número de bytes que tiene la columna nombre de la tabla usuarios.

Selec t VSIZE(nombre) "tamaño", nombre from usuarios;




[Escriba texto]                                                                                    Página 21
BASE DE DATOS II      22




                           BIBLIOGRAFIA


LIBRO:


Korth, Henry, Silberschatz. “Fundamentos de Base de Datos”. Mc Graw
Hill, IV Edition 2002.



Kroenke, David M. “Procesamiento de Base de Datos”. Prentice May, V
edición, 1996.



PAGINAS WEB:
Nivaildo Polanco Martínez “Propuesta de un rediseño de base de datos en
postgresql” en:

http://www.monografias.com/trabajos91/propuesta-rediseno-base-
datos-postgresql/propuesta-rediseno-base-datos-postgresql.shtml



Chagra “Base de datos” en:
http://www.monografias.com/trabajos7/bada/bada.shtml




[Escriba texto]                                                      Página 22

Más contenido relacionado

Destacado

Lesscode WebMontag Mannheim September 2010
Lesscode WebMontag Mannheim September 2010Lesscode WebMontag Mannheim September 2010
Lesscode WebMontag Mannheim September 2010Heiko Seebach
 
Kinder schützen - Wie Jugendarbeit das Kindeswohl wirksam schützen kann
Kinder schützen - Wie Jugendarbeit das Kindeswohl  wirksam schützen kannKinder schützen - Wie Jugendarbeit das Kindeswohl  wirksam schützen kann
Kinder schützen - Wie Jugendarbeit das Kindeswohl wirksam schützen kannLandesjugendring Niedersachsen e.V.
 
Lideres Torneo Beisbol La Vega Serie Regular
Lideres Torneo Beisbol La Vega Serie RegularLideres Torneo Beisbol La Vega Serie Regular
Lideres Torneo Beisbol La Vega Serie RegularAlberty Moronta
 
Actividad parque chicaque jesse
Actividad parque chicaque jesseActividad parque chicaque jesse
Actividad parque chicaque jessetauritho
 
La espiritualidad del_hombre_resumen_parte_ii
La espiritualidad del_hombre_resumen_parte_iiLa espiritualidad del_hombre_resumen_parte_ii
La espiritualidad del_hombre_resumen_parte_iiestudia medicina
 
Ein Diolog
Ein DiologEin Diolog
Ein Diologs ghani
 
Die Vergangenheit Perfekt G
Die Vergangenheit Perfekt GDie Vergangenheit Perfekt G
Die Vergangenheit Perfekt Gs ghani
 
Emprende.com - Webinar - El Primer Paso hacia el Emprendurismo
Emprende.com - Webinar - El Primer Paso hacia el EmprendurismoEmprende.com - Webinar - El Primer Paso hacia el Emprendurismo
Emprende.com - Webinar - El Primer Paso hacia el EmprendurismoEmprende.com
 
LinkedIn Personalities
LinkedIn PersonalitiesLinkedIn Personalities
LinkedIn PersonalitiesKim Williams
 
Presentación Taller Red de Comunicadores de BiblioRedes
Presentación Taller Red de Comunicadores de BiblioRedesPresentación Taller Red de Comunicadores de BiblioRedes
Presentación Taller Red de Comunicadores de BiblioRedesARSChile
 

Destacado (20)

Práctica 10
Práctica 10Práctica 10
Práctica 10
 
Grasas protegidas
Grasas protegidasGrasas protegidas
Grasas protegidas
 
Lesscode WebMontag Mannheim September 2010
Lesscode WebMontag Mannheim September 2010Lesscode WebMontag Mannheim September 2010
Lesscode WebMontag Mannheim September 2010
 
Practica 1O
Practica 1OPractica 1O
Practica 1O
 
Kinder schützen - Wie Jugendarbeit das Kindeswohl wirksam schützen kann
Kinder schützen - Wie Jugendarbeit das Kindeswohl  wirksam schützen kannKinder schützen - Wie Jugendarbeit das Kindeswohl  wirksam schützen kann
Kinder schützen - Wie Jugendarbeit das Kindeswohl wirksam schützen kann
 
Practica 9
Practica 9Practica 9
Practica 9
 
neXTkonferenz 2.0: Prof. Dr. Rolf Kreibich
neXTkonferenz 2.0: Prof. Dr. Rolf KreibichneXTkonferenz 2.0: Prof. Dr. Rolf Kreibich
neXTkonferenz 2.0: Prof. Dr. Rolf Kreibich
 
Diapositivas leidy
Diapositivas leidyDiapositivas leidy
Diapositivas leidy
 
Lideres Torneo Beisbol La Vega Serie Regular
Lideres Torneo Beisbol La Vega Serie RegularLideres Torneo Beisbol La Vega Serie Regular
Lideres Torneo Beisbol La Vega Serie Regular
 
Contextualización
ContextualizaciónContextualización
Contextualización
 
Actividad parque chicaque jesse
Actividad parque chicaque jesseActividad parque chicaque jesse
Actividad parque chicaque jesse
 
La espiritualidad del_hombre_resumen_parte_ii
La espiritualidad del_hombre_resumen_parte_iiLa espiritualidad del_hombre_resumen_parte_ii
La espiritualidad del_hombre_resumen_parte_ii
 
коса
косакоса
коса
 
Ein Diolog
Ein DiologEin Diolog
Ein Diolog
 
Die Vergangenheit Perfekt G
Die Vergangenheit Perfekt GDie Vergangenheit Perfekt G
Die Vergangenheit Perfekt G
 
Wie funktioniert Micro Blogging?
Wie funktioniert Micro Blogging?Wie funktioniert Micro Blogging?
Wie funktioniert Micro Blogging?
 
Emprende.com - Webinar - El Primer Paso hacia el Emprendurismo
Emprende.com - Webinar - El Primer Paso hacia el EmprendurismoEmprende.com - Webinar - El Primer Paso hacia el Emprendurismo
Emprende.com - Webinar - El Primer Paso hacia el Emprendurismo
 
Contextualización
ContextualizaciónContextualización
Contextualización
 
LinkedIn Personalities
LinkedIn PersonalitiesLinkedIn Personalities
LinkedIn Personalities
 
Presentación Taller Red de Comunicadores de BiblioRedes
Presentación Taller Red de Comunicadores de BiblioRedesPresentación Taller Red de Comunicadores de BiblioRedes
Presentación Taller Red de Comunicadores de BiblioRedes
 

Similar a Cap. iv bdd ii

Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008Elizabeth Huaraya Apaza
 
Oracle Características y tipos de datos
Oracle Características y tipos de datos Oracle Características y tipos de datos
Oracle Características y tipos de datos jerson rojas lopez
 
TIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLETIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLEEder Celis
 
Unidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptxUnidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptxCarlosSandovalMedina
 
Programacion en PL/SQL teoria y ejemplos
Programacion en PL/SQL teoria y ejemplosProgramacion en PL/SQL teoria y ejemplos
Programacion en PL/SQL teoria y ejemplosxoom44
 
Oracle tipos-de-datos
Oracle tipos-de-datosOracle tipos-de-datos
Oracle tipos-de-datosJairocklml
 
Sql server 2005 (bda)henrry
Sql server 2005 (bda)henrrySql server 2005 (bda)henrry
Sql server 2005 (bda)henrryHENRRYDAVIDS1
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQLed0594
 
Tipos de datos oracle
Tipos de datos oracleTipos de datos oracle
Tipos de datos oracleAngel Livestn
 
Tipo de datos de oracle base datos
Tipo de datos de oracle base datosTipo de datos de oracle base datos
Tipo de datos de oracle base datosPaul Vega
 
Tipos de datos: Oracle
Tipos de datos: OracleTipos de datos: Oracle
Tipos de datos: OracleCesar Calcina
 
Clase06 25-06-12
Clase06 25-06-12Clase06 25-06-12
Clase06 25-06-12Free TIC
 

Similar a Cap. iv bdd ii (20)

LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
Oracle database
Oracle databaseOracle database
Oracle database
 
Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008Tipos de base de datos de sql server 2008
Tipos de base de datos de sql server 2008
 
Oracle Características y tipos de datos
Oracle Características y tipos de datos Oracle Características y tipos de datos
Oracle Características y tipos de datos
 
Tipo de datos
Tipo de datosTipo de datos
Tipo de datos
 
TIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLETIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLE
 
Unidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptxUnidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptx
 
Programacion en PL/SQL teoria y ejemplos
Programacion en PL/SQL teoria y ejemplosProgramacion en PL/SQL teoria y ejemplos
Programacion en PL/SQL teoria y ejemplos
 
Oracle tipos-de-datos
Oracle tipos-de-datosOracle tipos-de-datos
Oracle tipos-de-datos
 
Sql server 2005 (bda)henrry
Sql server 2005 (bda)henrrySql server 2005 (bda)henrry
Sql server 2005 (bda)henrry
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQL
 
Oracle database
Oracle databaseOracle database
Oracle database
 
Sql
SqlSql
Sql
 
Oracle database
Oracle databaseOracle database
Oracle database
 
Tipos de datos oracle
Tipos de datos oracleTipos de datos oracle
Tipos de datos oracle
 
Tipo de datos de oracle base datos
Tipo de datos de oracle base datosTipo de datos de oracle base datos
Tipo de datos de oracle base datos
 
Tipos de datos: Oracle
Tipos de datos: OracleTipos de datos: Oracle
Tipos de datos: Oracle
 
TODO SOBRE SQL
TODO SOBRE SQLTODO SOBRE SQL
TODO SOBRE SQL
 
Tema3
Tema3Tema3
Tema3
 
Clase06 25-06-12
Clase06 25-06-12Clase06 25-06-12
Clase06 25-06-12
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Último (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Cap. iv bdd ii

  • 1. INDICE OBJETIVOS………………………………………………………………………………………………………..3 INTRODUCCIÓN………………………………………………………………………………………………..4 4.1 TIPOS DE DATOS……………………………………………………………………………………5 4.1.1 DATOS NUMERICOS………………………………………………………………………………….5 4.1.2 DATOS CARÁCTER…………………………………………………………………………………….6 4.1.3 DATOS TIPO FECHA…………………………………………………………………………………..8 4.1.4 DATOS BINARIOS……………………………………………………………………………………...9 4.1.5 OTROS………………………………………………………………………………………………………9 4.1.6 TIPOS DE DATOS PERSONALIZADOS…………………………………………………………10 4.2 FUNCIONES 4.2.1 INTRODUCCION………………………………………………………………………………………11 4.2.2 FUNCIONES TIPO CARÁCTER…………………………………………………......... 11 4.2.3 FUNCIONES NUMERICAS………………………………………………………………………….18 4.2.4 FUNCIONES FECHAS…………………………………………………………………………………19 4.2.5 FUNCIONES DE CONVERSION……………………………………………………………………21 4.2.6 OTRAS FUNCIONES…………………………………………………………………………………...23 BIBLIOGRAFÍA………………………………………………………………………………...24
  • 2. BASE DE DATOS II 1 OBJETIVOS  Conocer los diferentes tipos de datos y sus características.  La idea fundamental es indicar la forma de escribir declaraciones correctas en Oracle o SQL, familiarizándose así con los objetos de base de datos.  Aprender una regla general, cuando se escriben declaraciones. [Escriba texto] Página 1
  • 3. BASE DE DATOS II 2 INTRODUCCIÓN Las bases de datos son una parte fundamental de cualquier aplicación, pues en ellas se almacenan información trascendental para el buen desempeño de las mismas. Con el desarrollo de los distintos sistemas de gestión de bases de datos (SGBD), algunos de ellos fueron ganando en preferencia para los diferentes usuarios; por sus características de seguridad, configuración, conectividad, etc. Todos los campos de una tabla tienen propiedades. Éstas definen las características y el comportamiento del campo. La propiedad más importante de un campo es su tipo de datos. El tipo de datos de un campo determina la clase de datos que va a poder almacenar. Por ejemplo, un campo cuyo tipo de datos sea Texto podrá almacenar datos que se compongan de caracteres de texto, mientras que un campo cuyo tipo de datos sea Número sólo podrá almacenar datos numéricos. Como veremos El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. [Escriba texto] Página 2
  • 4. BASE DE DATOS II 3 CONTENIDO IV. TIPOS DE DATOS Y FUNCIONES ASOCIADAS 4.1 TIPOS DE DATOS Un tipo de datos es un atributo que especifica el tipo de datos que el objeto puede contener: datos de enteros, datos de caracteres, datos de moneda, datos de fecha y hora, cadenas binarias, etc. 4.1.1. Datos Numéricos El tipo de datos NUMBER es utilizado para guardar los números cero, negativos, positivos, fijos y de punto flotante, con hasta 38 dígitos de precisión. Los números van desde del 1.0x10 -130 hasta 1.0x10 126. Los NUMBER pueden ser definidos de tres formas: NUMBER(p,s) Donde p es la precisión de hasta 38 dígitos y s es la escala (número de dígitos a la derecha del punto decimal) NUMBER (p) Es este un número de punto fijo con una escala de cero y precisión de p. NUMBER Este es un número punto flotante con una precisión de 38. La siguiente tabla muestra como Oracle almacena las diferentes escalas y precisiones: Dato actual Definido como Almacenado como 7,456,123.89 NUMBER 7456123.89 7,456,123.89 NUMBER(*,1) 7456123.9 7,456,123.89 NUMBER(9) 7456124 7,456,123.89 NUMBER(9,2) 7456123.89 7,456,123.89 NUMBER(9,1) 7456123.9 7,456,123.89 NUMBER(6) (no aceptado, excede la precisión) 7,456,123.89 NUMBER(7,-2) 7456100 [Escriba texto] Página 3
  • 5. BASE DE DATOS II 4 4.1.2. Datos Carácter Existen cuatro tipos de datos para caracteres: El tipo de datos CHAR es utilizado como un campo de largo fijo. El tamaño puede ser especificado entre 1 y 255 caracteres en versión 7 y entre 1 y 2000 en versión 8. El tamaño por defecto es 1. Cuando no se indica dato de entrada, se llena con tantos espacios en blanco como sea necesario para llegar al tamaño especificado. El VARCHAR2 es utilizado para campos de largo variable. Debe indicarse para este tipo de datos el tamaño al utilizar el tipo de datos. El largo máximo es de 2000 caracteres en versión 7 y 4000 en versión 8. El tipo de datos LONG es utilizado para cantidades variables de texto muy grandes. Cualquier largo hasta 2 GB puede indicarse. Algunas restricciones para el uso de este tipo de datos son:  Sólo puede haber una columna de este tipo por ta21bla.  Una columna LONG no puede ser indexada.  Una columna LONG no puede ser pasada como parámetro de un procedimiento o función.  Una función no puede ser utilizada para retornar un valor de tipo LONG.  Una columna de tipo LONG no puede ser utilizada en el where, order by, group by o connect de una sentencia SQL. El tipo de datos VARCHAR es sinónimo de VARCHAR2. Oracle Corporation está reservando este para uso futuro. No usarlo. Los tipos de datos NCHAR y NVARCHAR2 (solo versión 8) permiten almacenar caracteres del NLS. NCHAR guarda hileras de caracteres de largo fijo que corresponden a un conjunto de caracteres de largo fijo o variable. El NVARCHAR2 guarda hileras de largo variable. Cuando se utilizan estos tipos NCHAR o NVARCHAR2, se debe especifica el tamaño máximo que puede el número de caracteres (para conjuntos de caracteres de largo fijo) o el número de bytes (para un conjunto de caracteres de largo variable).  El largo máximo para las columnas NCHAR es de 2000 bytes, o bien el número de máximo de caracteres que pueden ser grabados en 2000 bytes.  El largo máximo para las columnas NVARCHAR2 es de 4000 bytes, o bien el número de máximo de caracteres que pueden ser grabados en 4000 bytes. [Escriba texto] Página 4
  • 6. BASE DE DATOS II 5 Los tipos de datos de cadenas de caracteres de JDBC son CHAR, VARCHAR y LONGVARCHAR. También pueden ser NCHAR, NVARCHAR y LONGNVARCHAR. Estos nuevos tipos de cadena de caracteres mantienen los tipos de caracteres nativos de Java en formato Unicode y quitan la necesidad de realizar cualquier conversión ANSI a Unicode o Unicode a ANSI. Dato Carácter Características Almacena cadenas de caracteres de una longitud variable. La longitud máxima VARCHAR2 (tamaño) son 4000 caracteres. CHAR (tamaño) Almacena caracteres con una longitud fija. Siendo 2000 caracteres el máximo Tipo Descripción Longitud Los tipos de datos char y nchar de SQL Server se asignan directamente a los tipos CHAR y fija NCHAR de JDBC. Estos son tipos de longitud fija con relleno que proporciona el servidor en el caso de que la columna tenga habilitado SET ANSI_PADDING ON. El relleno siempre está habilitado para nchar, pero en el caso de char, si las columnas char del servidor no tienen relleno, el servidor lo agrega el controlador JDBC. Longitud Los tipos de datos varchar y nvarchar de SQL Server se asignan directa y respectivamente variable VARCHAR y NVARCHAR de JDBC. Long Los tipos text y ntext de SQL Server se asignan respectivamente a los tipos LONGVARCHAR y LONGNVARCHAR de JDBC. Estos son tipos que ya no se utilizan desde SQL Server 2005, por lo que en su lugar debería usar tipos de valores mayores, varchar(max) o nvarchar(max). No se pueden usar los métodos update<Numeric Type> y updateObject (int, java.lang.Object) con las columnas de servidor text y ntext. No obstante, se admite el uso del método setObject con un tipo específico de conversión de caracteres en columnas text y ntext del servidor. [Escriba texto] Página 5
  • 7. BASE DE DATOS II 6 4.1.3. Datos Fecha A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31. Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-día DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-día horas:minutos:segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo: Tamaño Formato 14 AñoMesDiaHoraMinutoSegundo aaaammddhhmmss 12 AñoMesDiaHoraMinutoSegundo aammddhhmmss 8 ñoMesDia aaaammdd 6 AñoMesDia aammdd 4 AñoMes aamm 2 Año aa Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos. Tipo de Campo Tamaño de Almacenamiento DATE 3 bytes DATETIME 8 bytes TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte [Escriba texto] Página 6
  • 8. BASE DE DATOS II 7 4.1.4 Tipos de datos binarios Permiten almacenar información en formato "crudo", valores binarios tal y como se almacenan en el disco duro o como residen en memoria. Estas columnas se pueden utilizar tanto para almacenar grandes cantidades de datos (hasta 4Gb.), Tipo de dato LONG: Almacena caracteres de longitud variable hasta 2 Gb. En Oracle8 y siguientes versiones se deben usar los tipos de datos CLOB y NLOB para almacenar grandes cantidades de datos alfanuméricos. 4.1.5 Otros Tipos de Datos Cada fila en la base de datos tiene una dirección. Esta dirección puede ser obtenida por medio de la función ROWID. . El formato es el siguiente (versión 7): BLOCK.ROW.FILE BLOCK es el bloque de datos de archivo de datos FILE conteniendo el ROW. Estos datos se dan en formato hexadecimal y el tipo de datos es ROWID. Este valor no puede ser exportado, pues al importarse la dirección del registro es casi seguro que variará. El ROWID extendido (versión 8) tiene el siguiente formato: OOOOOOFFFBBBBBBRRR Donde: OOOOOO es el número de objeto de datos que identifica el segmento de la base de datos. Objetos que se encuentren en un mismo segmento, como un cluster de tablas, tiene el mismo número de objeto de datos. FFF es el datafile que contiene la fila. BBBBBB este el bloque de datos que contiene la fila y son relativos al datafile (no al tablespace) RRR la fila en el bloque. Finalmente el MLSLABEL es un tipo de datos utilizado para almacenar el formato binario de etiquetas (labels), utilizado en sistemas operativos seguros. [Escriba texto] Página 7
  • 9. BASE DE DATOS II 8 4.1.6 Tipos de Datos Definidos por el Usuario Además de los tipos vistos (built-in datatypes), Oracle permite definir nuevos tipos de datos a los usuarios. Basado en el concepto de objeto, permite crear tipos como objetos del mundo real, los cuales tiene tres componentes básicos:  Un nombre, el cual lo identifica de forma única en un esquema.  Atributos, los cuales pueden ser de tipo predefinidos u otros tipos definidos por el usuario.  Métodos, los cuales son funciones o procedimientos escritos en PL/SQL y almacenados en la base de datos, o bien escritos en C o Java y almacenados externamente. Para poder distinguir un objeto de otro dentro de la base de datos se define el object identifier (OID), para poder representar estas identificaciones existe el tipo REF, el cual es el contenedor de un identificador de objeto, el cual es básicamente un puntero a un objeto. Otros tipos de datos son los VARRAY, los cuales permiten definir tablas del tipo de datos seleccionado. [Escriba texto] Página 8
  • 10. BASE DE DATOS II 9 4.2 Funciones 4.2.1Introducción. * Las funciones trabajan con columnas variables o constantes EJ:) pasar a minúscula el valor de una columna. //UPPER * Las funciones se utilizan en: SELECT’s WHERE y ORDER BY * Se pueden anidar. 4.2.2 Funciones con cadenas de caracteres. ¨ CONCAT(c ad1,cad2) -> Devuelve cad1 concatenado con cad2. Sólo admite 2 parámetros. EJ 1: SELECT CONCAT(‘El apellido es:’,apellido) FROM EMPLE; CONCAT ('ELAPELLIDOES:', AP ------------------------- El apellido es: SÁNCHEZ El apellido es: ARROYO El apellido es: SALA El apellido es: JIMÉNEZ El apellido es: MARTÍN El apellido es: NEGRO El apellido es: CEREZO El apellido es: GIL El apellido es: REY El apellido es: TOVAR El apellido es: ALONSO El apellido es: JIMENO El apellido es: FERNÁNDEZ El apellido es: MUÑOZ [Escriba texto] Página 9
  • 11. BASE DE DATOS II 10 EJ 2: Teniendo la tabla EMPLE efectuar la consulta que nos devolvería... Sánchez es Empleado Arroyo es Vendedor ......... SELECT CONCAT (apellido,CONCAT(’ es ‘, oficio)) FROM EMPLE; ¨ LOWER -> Devuelve la cadena <<cad>> con todas las letras convertidas a minúsculas. ¨ UPPER -> Igual pero a MAYUSCULAS. EJ 3: Obtención del nombre de los empleados minúsculas y mayúsculas respectivamente. SELECT LOWER(apellido) FROM EMPLE; SELECT UPPER(apellido) FROM EMPLE; ¨ INITCAP(cadena) Convierte la primera letra de cada palabra de la cadena <cad> a MAYÚSCULAS y el resto a minúsculas. EJ 4: Convertir a Título... SELECT INITCAP(‘DESARROLLO de aplicaciones informáticas’) FROM DUAL; ¨ LPAD(cad1,n[,cad2]) ->Esta función añade caracteres a la izq. De la cadena <cad1> hasta que alcance una cierta longitud <n>. Devuelve <cad1> con longitud <n> y ajustado a la derecha; <cad2> es la cadena con la q se rellena por la izq. <cad1> puede ser una columna de una tabla o un literal. Si <cad2> se suprime se asume como carácter de relleno el BLANCO. Sirve para rellenar con ceros. [Escriba texto] Página 10
  • 12. BASE DE DATOS II 11 EJ 5: Por cada fila de la tabla NOTAS_ALUMNOS, obtener el nombre del alumno de tal manera q tenga una longitud de 30 caracteres y rellenado a la izq. Por puntos. SELECT LPAD(nombre_alumno,30,’.’) FROM NOTAS_ALUMNOS; LPAD(NOMBRE_ALUMNO,30,'.') ------------------------------ ......Alcalde García, M. Luisa ...........Benito Martín, Luis ........Casas Martínez, Manuel .......Corregidor Sánchez, Ana ...........Díaz Sánchez, María EJ 5: Ajustar a la decha rellenando por la izq con ceros: b7557 donde long.Total es 5 caracteres. Select LPAD (‘757’, 5, and ’0’) FROM DUAL; LPAD ( ----- 0 757 //Esto no rellenaría con 0 el espacio que hay en ‘0 757’, Para ello utilizaremos: RTRIM ó LTRIM ¨ RPAD -> RPAD(cad1,n[,lo mismo q LPAD pero rellenando por la derecha. Devuelve cad1 con longitud <n> y ajustado a la izq.; <cad2> es la cadena a rellenar por la derecha [Escriba texto] Página 11
  • 13. BASE DE DATOS II 12 EJ 6: Para cada empleado obtener el apellido ajustado a la izq. Y rellenado por la derecha con asteriscos, obteniendo una long. Total de 11 caractes. SELECT RPAD(apellido,11,’*’) FROM EMPLE; RPAD(APELLI ----------- SÁNCHEZ**** ARROYO***** SALA******* JIMÉNEZ**** [...] · LTRIM(cad[,SET]) Devuelve <cad> con el grupo de carecteres SET omitidos por la izq. De la cadena por defecto, si la cadena contiene blancos a la izq. Y se omite el segundo parámetro SET, la fºn devuelve la cadena sin blancos a la izq. SET es la cadena que no se van a mostrar, de izq. A drecha y mientras vaya encontrando caracteres que contenga la cadena SET. ( Es decir se tendran en cuenta todas los caracteres ddel SET indistintamente del orden). EJ 7: Dada la cadena ‘ hola’ se pide devolver la misma cadena eliminando los blancos de la izq. SELECT LTRIM(‘ hola’) FROM DUAL; LTRI ---- hola EJ 7: Dada la cadena ‘abaAabUNIDAD’ se pide q con una sentencia LTRIM eliminar los caracteres ‘a’ y ‘b’ por la izq. para q devuelva ‘AabUNIDAD’. SELECT LTRIM(‘abaAabUNIDAD’,’aba’) FROM DUAL; LTRIM ('AB --------- AabUNIDAD //se ha dejado ‘ab’ pero es porque va de izq. A dcha. Y ha encontrado ‘A’ que no está en la cadena SET. ¨ RTRIM(cad[,SET]) : Es lo mismo que RTRIM pero desde la derecha. [Escriba texto] Página 12
  • 14. BASE DE DATOS II 13 EJ 8: Eliminar los blancos de la cadena: ‘adios ‘. SELECT RTRIM(‘adios ‘,’ ‘) FROM DUAL; RTRIM ----- adios EJ 9: Quitar las comillas dobles de la izq. y las de la dcha. Junto con el punto de la dcha. De la tabla MIS_TEXTOS. SQL> SELECT * FROM MISTEXTOS; TITULO AUTOR METODOLOGÍA DE LA PROGRAMACIÓN. ALCALDE, GARCÍA "INFORMÁTICA BÁSICA." GARCÍA GARCERÁN SISTEMAS OPERATIVOS J.F. GARCÍA SISTEMAS DIGITALES. M.A. RUÍZ "MANUAL DE C." M.A. RUÍZ SELECT RTRIM(LTRIM(titulo,’”’),’”.’) FROM MISTEXTOS; METODOLOGÍA DE LA PROGRAMACIÓN INFORMÁTICA BÁSICA SISTEMAS OPERATIVOS SISTEMAS DIGITALES MANUAL DE C EJ 10: Dada la cadena ‘ 757 ‘, devolver la cadena ‘00000757’. SELECT LPAD( LTRIM(RTRIM(‘ 757 ‘,’ ‘),’ ‘),8,’0’) FROM DUAL; LPAD(LTR -------- 00000757 · REPLACE(cad,cadena_busqueda[,cadena_sustitucion]) Devuelve <cad> con cada ocurrencia de cadena_busqueda sustituida por cadena_sustitución. Si no ponemos nada en la cadena sustitucion, se sustituirá la cdena_busqueda por NADA. [Escriba texto] Página 13
  • 15. BASE DE DATOS II 14 EJ 11: Dada la cadena ‘BLANCO Y NEGRO’ obtener ‘BLANCAS Y NEGRAS’. SELECT REPLACE(‘BLANCO Y NEGRO’,’O’,’AS’) from dual; REPLACE('BLANCOY ---------------- BLANCAS Y NEGRAS · SUBSTR(cad,inicio[,n]) Extrae una parte de una cadena (subcadena) ydevuelve la subcadena de <cad> q abarca desde la posición indicada en <inicio> hasta tantos caracteres como indique <n>. El valor de <n> no puede ser inferior a 1. EJ 12: Partiendo de la cadena ‘ABCDEF’ obtener la cadena ’CD’. SELECT SUBSTR(‘ABCDEF’,3,2) FROM DUAL; EJ 13: Visualizar el apellido y la primera letra del mismo en minúsculas en columnas diferentes de todos los empleados. SELECT apellido “APE”,SUBSTR (apellido, 1,1)”P” FROM EMPLE; APELLIDO S ------------------- SÁNCHEZ S ARROYO A SALA S JIMÉNEZ J MARTÍN M NEGRO N CEREZO C GIL G REY R TOVAR T ALONSO A JIMENO J FERNÁNDEZ F MUÑOZ M · TRANSLATE (cad1,cad2,cad3) -> Devuelve <cad1> con los caracteres encontrados en <cad2> y sustituidos por los caracteres de <cad3>. [Escriba texto] Página 14
  • 16. BASE DE DATOS II 15 EJ 14: SELECT TRANSLATE (‘LOS PILARES DE LA TIERRA’,’LAEIOU’,’laeiou’) FROM DUAL; TRANSLATE ('LOSPILARESDEL ------------------------------------------ loSPilaReS De la TieRRa Ej 15: SELECT TRANSLATE(‘SQL PLUS’,’SQL’,’123’) FROM DUAL; TRANSLAT -------- 123 P3U1 EJ 16: De la tabla MISTEXTOS queremos visualizar todos los títulos sin los caracteres. “ SELECT TRANSLATE (titulo,’.”’,’ ‘) FROM MISTEXTOS; Transtalate, para funcionar ha de tener al menos un carácter en <cad2>. ¨SOUNDEX SELECT SOUNDEX(‘Smythe’) FROM DUAL; SELECT SOUNDEX(‘Smith’) FROM DUAL; [Escriba texto] Página 15
  • 17. BASE DE DATOS II 16 4.2.3 Funciones Numéricas ABS Sintaxis ABS(x) Propósito Devuelve el valor absoluto de x. Ejemplo: Select abs (7) from dual; Resultado: 7 ASIN Sintaxis ASIN(x) Propósito Devuelve el arco seno de x. El rango de x debe estar entre -1 y 1. Ejemplo: Select asin(1) from dual; Resultado: 1.57079633 FLOOR Sintaxis FLOOR(x) Propósito Devuelve el mayor entero igual o menor que x Ejemplo: Select floor(23.5) from dual; Resultado: 23 [Escriba texto] Página 16
  • 18. BASE DE DATOS II 17 4.2.4 Funciones fechas Aquí algunos ejemplos para adicionar y sustraer días y meses y encontrar la diferencia entre fechas en Oracle. Estos ejemplos toman el resultado de la tabla "dual. La tabla Dual es una tabla virtual que existe en todas las Bases de datos Oracle. Muchas veces hemos usado la consulta SELECT sysdate FROM dual; la cual simplemente nos retorna la fecha y hora actual. SYSDATE= Devuelve la fecha del sistema. ADD_MONTHS (fecha, n)= Devuelve la fecha "fecha" incrementada en "n" meses. LASTDAY (fecha)= Devuelve la fecha del último día del mes que contiene "fecha". MONTHS_BETWEEN (fecha1, fecha2)= Devuelve la diferencia en meses entre las fechas "fecha1" y "fecha2". NEXT_DAY (fecha, cad)= Devuelve la fecha del primer día de la semana indicado por "cad" después de la fecha indicada por "fecha". Ajustar Días, Semanas, Horas y minutos 
Para adicionar y sustraer días a una fecha, simplemente usamos los signos + o - respectivamente. Algunosejemplos:
 SQL> SELECT sysdate + 7 FROM dual;
SYSDATE+
-------
25/09/06
 SQL> SELECT sysdate - 30 FROM dual;
SYSDATE-
--------
19/08/06 SQL> SELECT to_char(sysdate - 14, 'MM/DD/YYYY HH:MI AM') FROM dual;
TO_CHAR(SYSDATE-14,
-------------------
09/04/2006 11:41 AM
 En el primer ejemplo, vemos que la consulta retorna la fecha siete días a partir de hoy. La segunda retorna la fecha de hace 30 días. En la tercera, se ha usado la función de conversión to_char, para ver las horas y minutos. Esto nos muestra que mientras la fecha, ha cambiado, el tiempo no cambia.
Los ejemplos primero y tercero además muestran como el adicionar días, puede ser útil para computar semanas. [Escriba texto] Página 17
  • 19. BASE DE DATOS II 18 Si usted desea simplificar el computo de semanas, podías usar querys de este tipo:
SQL> SELECT sysdate + (7 * 3) FROM dual;
SYSDATE+
--------
09/10/06
Así mismo, para trabajar con horas ud podría usar fracciones de día. La forma más simple para mostrar esto es dividiendo por 24, que es el número de horas diarias. Aunque el paréntesis no es necesario, permite evidenciar con más claridad la sentencia
Aquí, se muestra la hora actual y luego la hora actual mas dos horas:
SQL> SELECT to_char(sysdate, 'HH:MI AM') FROM dual;
TO_CHAR(
--------
02:00 PM
SQL> SELECT to_char(sysdate + (2/24), 'HH:MI AM') FROM dual; TO_CHAR(
--------
04:00 PM Una alternativa a este método es el uso de la función numtodsinterval. El anterior ejemplo puede ser reescrito de la siguiente manera (la función numtodsinterval viene incorporada en la BD apartir de oracle 9i):
SQL> SELECT to_char(sysdate + numtodsinterval(2, 'HOUR'), 'HH:MI AM')
FROM dual;
TO_CHAR(
---
02:00 PM
Aquí la función numtodsinterval está haciendo el trabajo de dividir 2/24 horas. Las opciones válidas para esta función son: ‘DAY’, ‘HOUR’, ‘MINUTE’, o ‘SECOND’. Aquí un ejemplo usando ‘MINUTE’. Cuando se trabaja con minutos la función numtodsinterval es mucho más legible.
SQL> SELECT to_char(sysdate + numtodsinterval(45, 'MINUTE'), 'HH:MI AM')FROM dual;
TO_CHAR(
--------
03:19 PM [Escriba texto] Página 18
  • 20. BASE DE DATOS II 19 4.2.5 Funciones de Conversión TO_CHAR= Transforma un tipo DATE ó NUMBER en una cadena de caracteres. TO_CHAR Sintaxis TO_CHAR ( d[,formato[,paramnls]] ) Propósito Convertir la fecha d a una cadena de caracteres VARCHAR2. El parámetro paramnls controla el idioma de los componentes de mes y día de la cadena devuelta. El formato de paramnls es: 'NLS _DATE_LANGUAGE=idioma' Ejemplo: selectto_char(sysdate,'dd/mm/yyyy')from dual; Resultado: 19/03/2002 TO_DATE= Transforma un tipo NUMBER ó CHAR en DATE. Sintaxis TO_DATE (cadena [, formato [, paramnls]]) Propósito Convierte una cadena CHAR o VARCHAR2 a una valor de fecha tipo DATE. El parámetro formato es una cadena de formato fecha. Ejemplo: Select to_date(’19/03/2002’,’dd/mm/yyyy’) from dual; Resultado: 19/03/2002 TO_NUMBER= Transforma una cadena de caracteres en NUMBER. • Sintaxis • TO_NUMBER ( cadena[,formato[,paramnls]] ) • Propósito • Convierte la cadena CHAR o VARCHAR2 a un valor de tipo NUMBER. [Escriba texto] Página 19
  • 21. BASE DE DATOS II 20 • Ejemplo: • select to number(’$123.45’,’$999.99’) from dual; • Resultado: 123,45 Función Propósito TO_CHAR(fecha,'formato') Esta función nos convierte una fecha de tipo date a una fecha de tipo varchar2 TO_CHAR(numero,'formato') Nos convierte un dato de tipo number a un tipo varchar2 TO_DATE(cad,'formato') Convierte un tipo de dato varchar2 o char a un valor de tipo date con el formato especificado TO_NUMBER(cadena,['formato']) Convierte una cadena a tipo de dato number, y si se le pasa, con el formato especificado [Escriba texto] Página 20
  • 22. BASE DE DATOS II 21 4.2.6 OTRAS Funciones GREATEST Sintaxis GREATEST ( expr1[,expr2].. ) Propósito Devuelve la expresión con mayor valor de todos sus argumentos. Ejemplo: select greatest(10,’7’,’3’) from dual; Resultado: 10 UID Sintaxis USER Sintaxis USER Propósito Devuelve un valor VARCHAR2 que contiene el nombre de usuario actual de Oracle. Ejemplo: selectuserfrom dual; Resultado: CLOOAVALVERDE Otras funciones 1) Mostramos el nombre de los alumnos y si su asignatura es lengua le ponemos un código 1, si es matemáticas un código 2 y si no es ninguna de esas un 3. Select alumnos, DECODE (asignatura, 'lenguaje',1, 'matemáticas', 2, 3) "código" from alumnos; 2) Mostramos el usuario que está conectado. Show USER; 3) Mostramos el número de bytes que tiene la columna nombre de la tabla usuarios. Selec t VSIZE(nombre) "tamaño", nombre from usuarios; [Escriba texto] Página 21
  • 23. BASE DE DATOS II 22 BIBLIOGRAFIA LIBRO: Korth, Henry, Silberschatz. “Fundamentos de Base de Datos”. Mc Graw Hill, IV Edition 2002. Kroenke, David M. “Procesamiento de Base de Datos”. Prentice May, V edición, 1996. PAGINAS WEB: Nivaildo Polanco Martínez “Propuesta de un rediseño de base de datos en postgresql” en: http://www.monografias.com/trabajos91/propuesta-rediseno-base- datos-postgresql/propuesta-rediseno-base-datos-postgresql.shtml Chagra “Base de datos” en: http://www.monografias.com/trabajos7/bada/bada.shtml [Escriba texto] Página 22