Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cap. iv bdd ii

363 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Cap. iv bdd ii

  1. 1. INDICEOBJETIVOS………………………………………………………………………………………………………..3INTRODUCCIÓN………………………………………………………………………………………………..44.1 TIPOS DE DATOS……………………………………………………………………………………54.1.1 DATOS NUMERICOS………………………………………………………………………………….54.1.2 DATOS CARÁCTER…………………………………………………………………………………….64.1.3 DATOS TIPO FECHA…………………………………………………………………………………..84.1.4 DATOS BINARIOS……………………………………………………………………………………...94.1.5 OTROS………………………………………………………………………………………………………94.1.6 TIPOS DE DATOS PERSONALIZADOS…………………………………………………………104.2 FUNCIONES4.2.1 INTRODUCCION………………………………………………………………………………………114.2.2 FUNCIONES TIPO CARÁCTER…………………………………………………......... 114.2.3 FUNCIONES NUMERICAS………………………………………………………………………….184.2.4 FUNCIONES FECHAS…………………………………………………………………………………194.2.5 FUNCIONES DE CONVERSION……………………………………………………………………214.2.6 OTRAS FUNCIONES…………………………………………………………………………………...23BIBLIOGRAFÍA………………………………………………………………………………...24
  2. 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. 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. 4. BASE DE DATOS II 3 CONTENIDOIV. TIPOS DE DATOS Y FUNCIONES ASOCIADAS4.1 TIPOS DE DATOSUn tipo de datos es un atributo que especifica el tipo de datos que el objeto puedecontener: datos de enteros, datos de caracteres, datos de moneda, datos de fecha yhora, cadenas binarias, etc.4.1.1. Datos NuméricosEl tipo de datos NUMBER es utilizado para guardar los números cero, negativos, positivos, fijos y depunto flotante, con hasta 38 dígitos de precisión. Los números van desde del 1.0x10 -130 hasta 1.0x10126.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 puntodecimal) NUMBER (p)Es este un número de punto fijo con una escala de cero y precisión de p. NUMBEREste es un número punto flotante con una precisión de 38. La siguiente tabla muestra como Oraclealmacena 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. 5. BASE DE DATOS II 44.1.2. Datos CarácterExisten 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 entre1 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 seindica dato de entrada, se llena con tantos espacios en blanco como sea necesario para llegar altamaño especificado.El VARCHAR2 es utilizado para campos de largo variable. Debe indicarse para este tipo de datos eltamaño al utilizar el tipo de datos. El largo máximo es de 2000 caracteres en versión 7 y 4000 enversión 8.El tipo de datos LONG es utilizado para cantidades variables de texto muy grandes. Cualquier largohasta 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 delargo 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 puedeel número de caracteres (para conjuntos de caracteres de largo fijo) o el número de bytes (para unconjunto 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. 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áximaVARCHAR2 (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. 7. BASE DE DATOS II 64.1.3. Datos FechaA la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una maneraestricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12y 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 dediciembre de 9999. El formato de almacenamiento es de año-mes-díaDateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. Elformato de almacenamiento es de año-mes-día horas:minutos:segundosTimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. Elformato 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 aaTime: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59minutos y 59 segundos. El formato de almacenamiento es de HH:MM:SSYear: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campopuede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatrodí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. 8. BASE DE DATOS II 74.1.4 Tipos de datos binariosPermiten almacenar información en formato "crudo", valores binarios tal y como se almacenan en eldisco duro o como residen en memoria. Estas columnas se pueden utilizar tanto para almacenargrandes cantidades de datos (hasta 4Gb.),Tipo de dato LONG: Almacena caracteres de longitud variable hasta 2 Gb. En Oracle8 y siguientesversiones se deben usar los tipos de datos CLOB y NLOB para almacenar grandes cantidades de datosalfanuméricos.4.1.5 Otros Tipos de DatosCada fila en la base de datos tiene una dirección. Esta dirección puede ser obtenida por medio de lafunción ROWID. . El formato es el siguiente (versión 7):BLOCK.ROW.FILEBLOCK es el bloque de datos de archivo de datos FILE conteniendo el ROW. Estos datos se dan enformato 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 quevariará.El ROWID extendido (versión 8) tiene el siguiente formato:OOOOOOFFFBBBBBBRRRDonde:OOOOOO es el número de objeto de datos que identifica el segmento de la base de datos. Objetos quese encuentren en un mismo segmento, como un cluster de tablas, tiene el mismo número de objeto dedatos.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. 9. BASE DE DATOS II 84.1.6 Tipos de Datos Definidos por el UsuarioAdemás de los tipos vistos (built-in datatypes), Oracle permite definir nuevos tipos de datos a losusuarios.Basado en el concepto de objeto, permite crear tipos como objetos del mundo real, los cuales tienetres 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 unidentificador 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. 10. BASE DE DATOS II 9 4.2 Funciones4.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(cad1,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. 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 aminúsculas. ¨ UPPER -> Igual pero a MAYUSCULAS. EJ 3: Obtención del nombre de los empleados minúsculas y mayúsculasrespectivamente. 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 yel 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 ajustadoa la derecha; <cad2> es la cadena con la q se rellena por la izq. <cad1> puede ser unacolumna de una tabla o un literal. Si <cad2> se suprime se asume como carácter derelleno el BLANCO. Sirve para rellenar con ceros.[Escriba texto] Página 10
  12. 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 es5 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. Devuelvecad1 con longitud <n> y ajustado a la izq.; <cad2> es la cadena a rellenar por laderecha[Escriba texto] Página 11
  13. 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. 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 ladcha. 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. 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. 16. BASE DE DATOS II 15EJ 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. 17. BASE DE DATOS II 164.2.3 Funciones NuméricasABSSintaxisABS(x)PropósitoDevuelve el valor absoluto de x.Ejemplo:Select abs (7) from dual;Resultado: 7ASINSintaxisASIN(x)PropósitoDevuelve el arco seno de x. El rango de x debe estar entre -1 y 1.Ejemplo:Select asin(1) from dual;Resultado: 1.57079633FLOORSintaxisFLOOR(x)PropósitoDevuelve el mayor entero igual o menor que xEjemplo:Select floor(23.5) from dual;Resultado: 23[Escriba texto] Página 16
  18. 18. BASE DE DATOS II 174.2.4 Funciones fechasAquí algunos ejemplos para adicionar y sustraer días y meses y encontrar la diferenciaentre fechas en Oracle. Estos ejemplos toman el resultado de la tabla "dual. La tablaDual es una tabla virtual que existe en todas las Bases de datos Oracle. Muchas veceshemos usado la consulta SELECT sysdate FROM dual; la cual simplemente nos retorna lafecha 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/06SQL> SELECT to_char(sysdate - 14, MM/DD/YYYY HH:MI AM) FROMdual;
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 deconversión to_char, para ver las horas y minutos. Esto nos muestra que mientras lafecha, ha cambiado, el tiempo no cambia.
Los ejemplos primero y tercero ademásmuestran como el adicionar días, puede ser útil para computar semanas.[Escriba texto] Página 17
  19. 19. BASE DE DATOS II 18 Si usted desea simplificar el computo de semanas, podías usar querys de estetipo:
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 simplepara 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 lasentencia
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 PMUna alternativa a este método es el uso de la función numtodsinterval. El anteriorejemplo puede ser reescrito de la siguiente manera (la función numtodsinterval vieneincorporada 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í lafunción numtodsinterval está haciendo el trabajo de dividir 2/24 horas. Las opcionesválidas para esta función son: ‘DAY’, ‘HOUR’, ‘MINUTE’, o ‘SECOND’. Aquí un ejemplousando ‘MINUTE’. Cuando se trabaja con minutos la función numtodsinterval es muchomás legible.
SQL> SELECT to_char(sysdate + numtodsinterval(45, MINUTE), HH:MIAM)FROM dual;
TO_CHAR(
--------
03:19 PM[Escriba texto] Página 18
  20. 20. BASE DE DATOS II 194.2.5 Funciones de ConversiónTO_CHAR= Transforma un tipo DATE ó NUMBER en una cadena de caracteres.TO_CHARSintaxisTO_CHAR ( d[,formato[,paramnls]] )PropósitoConvertir la fecha d a una cadena de caracteres VARCHAR2. El parámetro paramnlscontrola el idioma de los componentes de mes y día de la cadena devuelta. El formatode paramnls es:NLS _DATE_LANGUAGE=idiomaEjemplo:selectto_char(sysdate,dd/mm/yyyy)from dual;Resultado: 19/03/2002TO_DATE= Transforma un tipo NUMBER ó CHAR en DATE.SintaxisTO_DATE (cadena [, formato [, paramnls]])PropósitoConvierte una cadena CHAR o VARCHAR2 a una valor de fecha tipo DATE. El parámetroformato es una cadena de formato fecha.Ejemplo:Select to_date(’19/03/2002’,’dd/mm/yyyy’) from dual;Resultado: 19/03/2002TO_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. 21. BASE DE DATOS II 20• Ejemplo:• select to number(’$123.45’,’$999.99’) from dual;• Resultado: 123,45Función PropósitoTO_CHAR(fecha,formato) Esta función nos convierte una fecha de tipo date a una fecha de tipo varchar2TO_CHAR(numero,formato) Nos convierte un dato de tipo number a un tipo varchar2TO_DATE(cad,formato) Convierte un tipo de dato varchar2 o char a un valor de tipo date con el formato especificadoTO_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. 22. BASE DE DATOS II 21 4.2.6 OTRAS FuncionesGREATESTSintaxisGREATEST ( expr1[,expr2].. )PropósitoDevuelve la expresión con mayor valor de todos sus argumentos.Ejemplo:select greatest(10,’7’,’3’) from dual;Resultado: 10UIDSintaxisUSERSintaxisUSERPropósitoDevuelve un valor VARCHAR2 que contiene el nombre de usuario actual de Oracle.Ejemplo:selectuserfrom dual;Resultado: CLOOAVALVERDEOtras funciones1) Mostramos el nombre de los alumnos y si su asignatura es lengua le ponemos un código 1, si esmatemá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. 23. BASE DE DATOS II 22 BIBLIOGRAFIALIBRO:Korth, Henry, Silberschatz. “Fundamentos de Base de Datos”. Mc GrawHill, IV Edition 2002.Kroenke, David M. “Procesamiento de Base de Datos”. Prentice May, Vedición, 1996.PAGINAS WEB:Nivaildo Polanco Martínez “Propuesta de un rediseño de base de datos enpostgresql” en:http://www.monografias.com/trabajos91/propuesta-rediseno-base-datos-postgresql/propuesta-rediseno-base-datos-postgresql.shtmlChagra “Base de datos” en:http://www.monografias.com/trabajos7/bada/bada.shtml[Escriba texto] Página 22

×