Вы находитесь на странице: 1из 16

Unidades Tecnolgicas de Santander.

Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

PRCTICA ORACLE)
OBJETIVO

08

(Base

de

Datos

Relacional

Realizacin de Consultas con funciones. Las funciones en las consultas.

Funciones
Existen en SQL muchas funciones que pueden complementar el manejo de los datos en las consultas. Se utilizan dentro de las expresiones y actuan con los valores de las columnas, variables o constantes. Se pueden incluir en las clsulas SELECT, WHERE y ORDER BY. Pueden anidarse funciones dentro de funciones. Y existe una gran variedad de funciones para cada tipo de datos: aritmticas, de cadenas de caracteres, de manejo de fechas, de conversin, otras, de grupo.

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Funciones Aritmticas
Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

Las funciones matemticas realizan operaciones con expresiones numricas y retornan un resultado, operan con tipos de datos numricos. Las funciones numricas aceptan parmetros de entrada de tipo numrico y retornan valores numricos. Oracle tiene algunas funciones para trabajar con nmeros. Aqu presentamos algunas. - abs(x): retorna el valor absoluto del argumento "x". Ejemplo: select abs(-20) from dual;--retorna 20. La tabla dual es una tabla virtual que existe en todas las Bases de datos Oracle. - ceil(x): redondea a entero, hacia arriba, el argumento "x". Ejemplo: select ceil(12.34) from dual;--retorna 13. - floor(x): redondea a entero, hacia abajo, el argumento "x". Ejemplo: select floor(12.34) from dual; --12 - mod(x,y): devuelve el resto de la divisin x/y. Ejemplos: select mod(10,3) from dual;--retorna 1. select mod(10,2) from dual;--retorna 0. - power(x,y): retorna el valor de "x" elevado a la "y" potencia. Ejemplo: select power(2,3) from dual;--retorna 8. - round(n,d): retorna "n" redondeado a "d" decimales; si se omite el segundo argumento, redondea todos los decimales. Si el segundo argumento es positivo, el nmero de decimales es redondeado segn "d"; si es negativo, el nmero es redondeado desde la parte entera segn el valor de "d". Ejemplos: select select select select select round(123.456,2) from dual;-- retorna "123.46", es decir, redondea desde el segundo decimal. round(123.456,1) from dual;-- 123.5, es decir, redondea desde el primer decimal. round(123.456,-1) from dual;-- 120, redondea desde el primer valor entero (hacia la izquierda). round(123.456,-2) from dual;-- 100, redondea desde el segundo valor entero (hacia la izquierda). round(123.456) from dual;-- 123.

- sign(x): si el argumento es un valor positivo, retorna 1, si es negativo, devuelve -1 y 0 si es 0. Ejemplo: select sign(-120) from dual;--retorna -1 select sign(120) from dual;--retorna 1 - trunc(n,d): trunca un nmero a la cantidad de decimales especificada por el segundo argumento. Si se omite el segundo argumento, se truncan todos los decimales. Si "d" es negativo, el nmero es truncado desde la parte entera. Ejemplo:

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


select select select select Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. trunc(1234.5678,2) from dual;--retorna 1234.56 trunc(1234.5678,-2) from dual;--retorna 1200 trunc(1234.5678,-1) from dual;--retorna 1230 trunc(1234.5678) from dual;--retorna 1234

- sqrt(x): devuelve la raiz cuadrada del valor enviado como argumento. Ejemplo: select sqrt(9) from dual;--retorna 3 Oracle dispone de funciones trigonomtricas que retornan radianes, calculan seno, coseno, inversas, etc.: acos, asin, atan, atan2, cos, cosh, exp, ln, log, sin, sinh, tan, tanh. No las veremos en detalle. Se pueden emplear las funciones matemticas enviando como argumento el nombre de un campo de tipo numrico.

Funcin ABS(n) CEIL(n)

Cometido Calcula el valor absoluto de n.

Ejemplo select abs(-15) from dual;

Resultado 15 16

Calcula el valor entero inmediatamente superior o select ceil(15.7) from dual; igual a n. Calcula el valor entero inmediatamante inferior o select floor(15.7) from dual; igual a n. Calcula el resto resultante de dividir m entre n. Calcula la potencia n-esima de m. select mod(11,4) from dual; select power(3,2) from dual; round(123.456,1) from

FLOOR(n) MOD(m,n) POWER(m,n)

15 3 9

ROUND(m,n)

Calcula el redondeo de m a n decimales. Si n<0 el select redondeo se efectua a por la izquierda del punto dual; decimal. Calcula la raz cuadrada de n.

123.5

SQRT(n) TRUNC(m,n)

select sqrt(4) from dual; trunc(123.456,1) from

2 123.4

Calcula m truncado a n decimales (n puede ser select negativo). dual;

SIGN(n)

Calcula el signo de n, devolviendo -1 si n<0, 0 si select sign(-12) from dual; n=0 y 1 si n>0.

-1

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Problema:
Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. Una empresa almacena los datos de sus empleados en una tabla denominada "empleados".

Eliminamos la tabla: drop table empleados; Creamos la tabla: create table empleados( legajo number(5), documento char(8) not null, nombre varchar2(30) not null, domicilio varchar2(30), sueldo number(6,2), hijos number(2), primary key (legajo) ); Ingresamos algunos registros: insert into empleados values(1,'22333444','Ana Acosta','Avellaneda 213',870.79,2); insert into empleados values(20,'27888999','Betina Bustos','Bulnes 345',950.85,1); insert into empleados values(31,'30111222','Carlos Caseres','Caseros 985',1190,0); insert into empleados values(39,'33444555','Daniel Duarte','Dominicana 345',1250.56,3); Vamos a mostrar los sueldos de los empleados redondeando el valor hacia abajo y luego hacia arriba (empleamos "floor" y "ceil"): select floor(sueldo) as "sueldo hacia abajo", ceil(sueldo) as "sueldo hacia arriba" from empleados; Mostramos los nombre de cada empleado, su respectivo sueldo, y el sueldo redondeando el valor a entero ("round") y truncado a entero ("trunc"): select nombre, sueldo, round(sueldo) as "sueldo redondeado", trunc(sueldo) as "sueldo truncado" from empleados; Note que los valores devueltos segn la funcin empleada, son diferentes. Mostramos el resultado de "2 elevado a la potencia 5" ("power"): select power(2,5) from dual; Retorna el valor 32. Mostramos el resto de la divisin "1234 / 5" ("mod"): select mod(1234,5) from dual; Devuelve el valor 4. Calculamos la raz cuadrada de 81: select sqrt(81) from dual; Retorna 9.

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Funciones de Cadenas de Caracteres:
Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

Las funciones de manejo de caracteres alfanumricos aceptan argumentos de tipo caracter y retornan caracteres o valores numricos. Las siguientes son algunas de las funciones que ofrece Oracle para trabajar con cadenas de caracteres: - chr(x): retorna un caracter equivalente al cdigo enviado como argumento "x". Ejemplo: select chr(65) from dual;-- retorna 'A'. select chr(100) from dual;-- retorna 'd'. - concat(cadena1,cadena2): concatena dos cadenas de caracteres; es equivalente al operador ||. Ejemplo: select concat('Buenas',' tardes') from dual;--retorna 'Buenas tardes'. - initcap(cadena): retorna la cadena enviada como argumento con la primera letra (letra capital) de cada palabra en mayscula. Ejemplo: select initcap('buenas tardes alumno') from dual;--retorna 'Buenas Tardes Alumno'. - lower(cadena): retorna la cadena enviada como argumento en minsculas. "lower" significa reducir en ingls. Ejemplo: select lower('Buenas tardes ALUMNO') from dual;--retorna "buenas tardes alumno". - upper(cadena): retorna la cadena con todos los caracteres en maysculas. Ejemplo: select upper('www.oracle.com') from dual;-- 'WWW.ORACLE.COM' - lpad(cadena,longitud,cadenarelleno): retorna la cantidad de caracteres especificados por el argumento "longitud", de la cadena enviada como primer argumento (comenzando desde el primer caracter); si "longitud" es mayor que el tamao de la cadena enviada, rellena los espacios restantes con la cadena enviada como tercer argumento (en caso de omitir el tercer argumento rellena con espacios); el relleno comienza desde la izquierda. Ejemplos: select lpad('alumno',10,'xyz') from dual;-- retorna 'xyzxalumno' select lpad('alumno',4,'xyz') from dual;-- retorna 'alum' - rpad(cadena,longitud,cadenarelleno): retorna la cantidad de caracteres especificados por el argumento "longitud", de la cadena enviada como primer argumento (comenzando desde el primer caracter); si "longitud" es mayor que el tamao de la cadena enviada, rellena los espacios restantes con la cadena enviada como tercer argumento (en caso de omitir el tercer argumento rellena con espacios); el relleno comienza desde la derecha (ltimo caracter). Ejemplos: select rpad('alumno',10,'xyz') from dual;-- retorna 'alumnoxyzx' select rpad('alumno',4,'xyz') from dual;-- retorna 'alum' - ltrim(cadena1,cadena2): borra todas las ocurrencias de "cadena2" en "cadena1", si se encuentran al comienzo; si se omite el segundo argumento, se eliminan los espacios. Ejemplo: select ltrim('la casa de la cuadra','la') from dual;-- ' casa de la cuadra'

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. select ltrim(' es la casa de la cuadra','la') from dual;-- no elimina ningn caracter select ltrim(' la casa') from dual;-- 'la casa' - rtrim(cadena1,cadena2): borra todas las ocurrencias de "cadena2" en "cadena1", si se encuentran por la derecha (al final de la cadena); si se omite el segundo argumento, se borran los espacios. Ejemplo: select rtrim('la casa lila','la') from dual;-- 'la casa li' select rtrim('la casa lila ','la') from dual;-- no borra ningn caracter select rtrim('la casa lila ') from dual; --'la casa lila' - trim(cadena): retorna la cadena con los espacios de la izquierda y derecha eliminados. "Trim" significa recortar. Ejemplo: select trim(' oracle ') from dual;--'oracle'

- replace(cadena,subcade1,subcade2): retorna la cadena con todas las ocurrencias de la subcadena de reemplazo (subcade2) por la subcadena a reemplazar (subcae1). Ejemplo: select replace('xxx.oracle.com','x','w') from dual; retorna "www.oracle.com'. - substr(cadena,inicio,longitud): devuelve una parte de la cadena especificada como primer argumento, empezando desde la posicin especificada por el segundo argumento y de tantos caracteres de longitud como indica el tercer argumento. Ejemplo: select substr('www.oracle.com',1,10) from dual;-- 'www.oracle' select substr('www.oracle.com',5,6) from dual;-- 'oracle' - length(cadena): retorna la longitud de la cadena enviada como argumento. "lenght" significa longitud en ingls. Ejemplo: select length('www.oracle.com') from dual;-- devuelve 14. - instr (cadena,subcadena): devuelve la posicin de comienzo (de la primera ocurrencia) de la subcadena especificada en la cadena enviada como primer argumento. Si no la encuentra retorna 0. Ejemplos: select instr('Jorge Luis Borges','or') from dual;-- 2 select instr('Jorge Luis Borges','ar') from dual;-- 0, no se encuentra - translate(): reemplaza cada ocurrencia de una serie de caracteres con otra serie de acracteres. La diferencia con "replace" es que aquella trabaja con cadenas de caracteres y reemplaza una cadena completa por otra, en cambio "translate" trabaja con caracteres simples y reemplaza varios. En el siguiente ejemplo se especifica que se reemplacen todos los caracteres "O" por el caracter "0", todos los caracteres "S" por el caracter "5" y todos los caracteres "G" por "6": select translate('JORGE LUIS BORGES','OSG','056') from dual;--'J0R6E LUI5 B0R6E5' Se pueden emplear estas funciones enviando como argumento el nombre de un campo de tipo caracter.

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. Funcin CHR(n) ASCII(cad) Cometido Devuelve el carcter codificado es n. cuyo valor Ejemplo select chr(65) from dual; select ascii('A') from dual; Resultado A 65

Devuelve el valor ascii de cad.

CONCAT(cad1,cad2)

Devuelve cad1 concatenada con cad2. select concat(concat(nombre,' Cano es Esta funcin es esquivalente al operador es '),oficio) from emp; Presidente, etc. ||. Devuelve la cadena cad con todas sus select lower('MinUsCulAs') from letras convertidas a minsculas. dual; Devuelve la cadena cad con todas sus select upper('maYuSCulAs') letras convertidas a maysculas. from dual; Devuelve cad con el primer caracter en select initcap('isabel') from dual; maysculas. Devuelve cad1 con longitud n, y ajustada a la derecha, rellenando por la select lpad('P',5,'*') from dual; izquierda con cad2. Devuelve cad1 con longitud n, y ajustada a la izquierda, rellenando por select rpad('P',5,'*') from dual; la derecha con cad2. minusculas

LOWER(cad)

UPPER(cad)

MAYUSCULAS

INITCAP(cad)

Isabel

LPAD(cad1,n,cad2)

****P

RPAD(cad1,n,cad2)

P****

Devuelve cad en la que cada ocurrencia select replace('digo','i','ie') from REPLACE(cad,ant,nue) de la cadena ant ha sido sustituida por dual; la cadena nue. Devuelve la sudcadena de cad select substr('ABCDEFG',3,2) compuesta por n caracteres a partir de from dual; la posicion m. Devuelve la longitud de cad. select dual; length('cadena') from

diego

SUBSTR(cad,m,n)

CD

LENGTH(cad)

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

Problema: Trabajamos con la tabla "libros" de una librera.


Eliminamos la tabla: drop table libros; Creamos la tabla: create table libros( codigo number(5), titulo varchar2(40) not null, autor varchar2(20) default 'Desconocido', editorial varchar2(20), precio number(6,2), cantidad number(3) ); Ingresamos algunos registros: insert insert insert insert into into into into libros libros libros libros values(1,'El aleph','Borges','Emece',25,100); values(2,'Java en 10 minutos','Mario Molina','Siglo XXI',50.40,100); values(3,'Alicia en el pais de las maravillas','Lewis Carroll','Emece',15.50,200); values(4,'El pais de las hadas',default,'Emece',25.50,150);

Mostramos slo los 12 primeros caracteres de los ttulos de los libros y sus autores, empleando la funcin "substr": select substr(titulo,1,12) as titulo from libros; Mostramos slo los 20 primeros caracteres de los ttulos de los libros y rellenando los espacios restantes con "*", empleando la funcin "rpad": select rpad(titulo,20,'*') as titulo from libros; Mostramos los ttulos de los libros empleando la funcin "initcap": select initcap(titulo) as titulo from libros; Note que cada palabra comienza con maysculas. Mostramos los ttulos de los libros y sus autores en maysculas: select titulo,upper(autor) as autor from libros; Concatenamos ttulo y autor empleando "concat": select concat(titulo, autor)

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


from libros; Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

Mostramos el ttulo y el precio de todos los libros concatenando el signo "$" a los precios: select titulo,concat('$ ',precio) as precio from libros; Recuperamos el ttulo y editorial de "libros" reemplazando "Emece" por "Sudamericana": select titulo,replace(editorial,'Emece','Sudamericana') from libros; Recuperamos el autor de todos los libros reemplazando las letras "abc" por "ABC" respectivamente (empleando "translate"): select translate(autor,'abc','ABC') from libros; Note que cada caracter individual es reemplazado por el especificado. Mostramos la posicin de la primera ocurrencia de la cadena "pais" en los ttulos de los libros: select instr(titulo,'pais') from libros; Note que los ttulos que no contienen la subcadena "pais" muestran el valor cero.

Prctica 06, Base de Datos Relacional UTS.

Unidades Tecnolgicas de Santander.


Funciones de Manejo de Fechas
Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

Oracle dispone de varias funciones que operan con tipos de datos "date". Estas son algunas: - add_months(f,n): agrega a una fecha, un nmero de meses. Si el segundo argumento es positivo, se le suma a la fecha enviada tal cantidad de meses; si es negativo, se le resta a la fecha enviada tal cantidad de meses. Ejemplo: select add_months('10/06/2007',5) from dual; --retorna "10/11/07" select add_months('10/06/2007',-5) from dual; --retorna "10/01/07" select add_months('30/01/2007',1) from dual;-- retorna "25/02/07" ya que es el ltimo da de ese mes. - last_day(f): retorna el ultimo da de mes de la fecha enviada como argumento. Ejemplo: select last_day('10/02/2007') from dual;-- "28/02/07" select last_day('10/08/2007') from dual;-- "31/08/07" - months_between(f1,f2): retorna el numero de meses entre las fechas enviadas como argumento. Ejemplo: select months_between('19/05/2003','21/06/05') from dual;-- retorna - next_day(fecha,dia): retorna una fecha correspondiente al primer da especificado en "dia" luego de la fecha especificada. En el siguiente ejemplo se busca el lunes siguiente a la fecha especificada: select next_day('10/08/2007','LUNES') from dual; - current_date: retorna la fecha actual. Ejemplo: select current_date from dual; - current_timestamp: retorna la fecha actual select current_timestamp from dual; Retorna: 10/08/07 09:59:44,109000000 AMERICA/BUENOS_AIRES - sysdate: retorna la fecha y hora actuales en el servidor de Oracle. -systimestamp: retorna fecha y hora actuales. select systimestamp from dual; Retorna 10/08/07 10:33:48,984000000 -03:00 - to_date: convierte una cadena a tipo de dato "date". Ejemplo: select to_date ('05-SEP-2007 10:00 AM','DD-MON-YYYY HH:MI AM') from dual; Retorna 05/09/07 - to_char: convierte una fecha a cadena de caracteres. Ejemplo:

Prctica 06, Base de Datos Relacional UTS.

10

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. select to_char('10/10/2007')from dual; - extract(parte,fecha): retorna la parte (especificada por el primer argumento) de una fecha. Puede extraer el ao (year), mes (month), da (day), hora (hour), minuto (minute), segundo (second), etc. Ejemplo: select extract(month from sysdate) from dual; retorna el nmero mes de la fecha actual. En Oracle: Los operadores aritmticos "+" (ms) y "-" (menos) pueden emplearse con fechas. Por ejemplos: select sysdate-3: Retorna 3 das antes de la fecha actual. select to_date('15/12/2007')-5 from dual; Retorna 10/12/07 Se pueden emplear estas funciones enviando como argumento el nombre de un campo de tipo date. Funcin SYSDATE Devuelve actuales. Cometido la fecha y hora Ejemplo select sysdate from dual; Resultado 14-MAR-97

ADD_MONTHS(d,n)

Devuelve la fecha incrementada en n meses.

d select add_months(sysdate,4) from dual;

14-JUL-97

LAST_DAY(d)

Devuelve la fecha del ltimo da select last_day(sysdate) from del mes de d. dual; select Devuelve la diferencia en meses months_between(sysdate,'01entre las fechas d1 y d2. JAN-97') from dual; Devuelve la fecha del primer da select next_day(sysdate, de la semana cad despus de la 'sunday') from dual; fecha d.

31-MAR-97

MONTHS_BETWEEN(d1, d2)

2.43409424

NEXT_DAY(d,cad)

16-MAR-97

Prctica 06, Base de Datos Relacional UTS.

11

Unidades Tecnolgicas de Santander.


Funciones de Conversin de Tipos
Funcin Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. Cometido Ejemplo Resultado

Convierte la cadena cad a un nmero, select to_number('12345') from TO_NUMBER(cad,fmto) opcionalmente de acuerdo con el 124345 dual; formato fmto. Convierte la fecha d a una cadena de caracteres, opcionalmente de acuerdo select to_char(sysdate) from dual; '14-MAR-97' con el formato fmto. Convierte la cadena cad de tipo select varchar2 a fecha, opcionalmente de dual; acuerdo con el formato fmto. to_date('1-JAN-97') from

TO_CHAR(d, fmto)

TO_DATE(cad,fmto)

01-JAN-97

Con las fechas pueden utilizarse varios formatos. Estos formatos permiten modificar la presentacin de una fecha. En la siguiente tabla se presentan algunos formatos de fecha y el resultado que generan.

Mscaras de Formato Numricas


Formato cc scc y,yyy sy,yyy Cometido Valor del siglo. Ao con coma, con o sin signo. Ejemplo select to_char(sysdate,'cc') from dual; Resultado 20

select to_char(sysdate,'y,yyy') from dual; 1,997

yyyy yyy yy Ao sin signo con cuatro, tres, dos o select to_char(sysdate,'yyyy') from dual; 1997 y un dgitos. q ww w mm ddd dd d hh hh24 mi ss sssss hh12 Trimestre. select to_char(sysdate,'q') from dual; 1 11 03 073

Nmero de la semana del ao o del select to_char(sysdate,'ww') from dual; mes. Nmero del mes. select to_char(sysdate,'mm') from dual;

Nmero del da del ao, del mes o de select to_char(sysdate,'ddd') from dual; la semana. La hora en formato 12h. o 24h. Los minutos de la hora. select to_char(sysdate,'hh') from dual; select to_char(sysdate,'mi') from dual;

12 15

Los segundos dentro del minuto, o select to_char(sysdate,'sssss') from dual; 44159 desde las 0 horas.

Prctica 06, Base de Datos Relacional UTS.

12

Unidades Tecnolgicas de Santander.


Mscaras de Formato de Caracteres
Formato syear year Cometido Ao en Ingls Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro.

Ejemplo

Resultado

Select to_char(sysdate,'syear) nineteen ninety-seven from dual;

month o mon

Nombre del mes o su abreviatura de select to_char(sysdate,'month') march tres letras. from dual; Nombre del da de la semana o su select to_char(sysdate,'day') from friday abreviatura de tres letras. dual; El espacio del da. select to_char(sysdate,'a.m.') from p.m. dual; a.d.

day dy

a.m. p.m.

b.c. a.d.

Indicador del ao respecto al del select to_char(sysdate,'b.c.') nacimiento de Cristo. from dual;

Otras Funciones
Funcin Cometido Ejemplo Resultado

Convierte el valor de var, DECODE(var, val1, cod1, val2, select decode(oficio, 'Presidente', 'P', de acuerdo con la P, D, X, ... cod2, ..., defecto) 'Director', 'D', 'X') from emp; codificacin. GREATEST(exp1, exp2, ...) Devuelve el mayor valor sin ejemplo. de una lista. Devuelve el menor valor sin ejemplo. de una lista. sin ejemplo.

LEAST(cad,fmto)

sin ejemplo.

NVL(val, exp)

Devuelve la expresin select salario+nvl(comision,0) from 450000, exp si val es NULL, y val emp; 350000, ... si en otro caso.

Problema: Trabajamos con la tabla "libros" de una librera.


Eliminamos la tabla: drop table libros; Creamos la tabla: create table libros(

Prctica 06, Base de Datos Relacional UTS.

13

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. titulo varchar2(40) not null, autor varchar2(20) default 'Desconocido', editorial varchar2(20), edicion date, precio number(6,2) ); Ingresamos algunos registros: insert insert insert insert into into into into libros libros libros libros values('El aleph','Borges','Emece','10/10/1980',25.33); values('Java en 10 minutos','Mario Molina','Siglo XXI','05/05/2000',50.65); values('Alicia en el pais de las maravillas','Lewis Carroll','Emece','08/09/2000',19.95); values('Aprenda PHP','Mario Molina','Siglo XXI','02/04/2000',45);

Mostramos el ttulo del libro y el ao de edicin: select titulo, extract (year from edicion) from libros; Mostramos el ttulo del libro y el mes de edicin: select titulo, extract (month from edicion) from libros; Mostramos el ttulo del libro y los aos que tienen de editados: select titulo, extract(year from sysdate)-extract(year from edicion) as "aos de editado" from libros; Mostramos los ttulos de los libros que se editaron en el ao 2000: select titulo from libros where extract(year from edicion)=2000; Calcule 3 meses luego de la fecha actual empleando ""add_months": select add_months(sysdate,3) from dual; Muestre la fecha del primer martes desde la fecha actual: select next_day(sysdate,'martes') from dual; Muestre la fecha que ser 15 das despus de "24/08/2007" empleando el operador "+": select to_date('24/08/2007')+15 from dual; Retorna 08/09/07. Muestre la fecha que 20 das antes del "12/08/2007" empleando el operador "-": select to_date('12/08/2007')-20 from dual; Retorna 23/07/07.

Prctica 06, Base de Datos Relacional UTS.

14

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. Resumen de Funciones Funciones de valores simples: ABS(n)= Devuelve el valor absoluto de (n). CEIL(n)=Obtiene el valor entero inmediatamente superior o igual a "n". FLOOT(n) = Devuelve el valor entero inmediatamente inferior o igual a "n". MOD (m, n)= Devuelve el resto resultante de dividir "m" entre "n". NVL (valor, expresin)= Sustituye un valor nulo por otro valor. POWER (m, exponente)= Calcula la potencia de un numero. ROUND (numero [, m])= Redondea nmeros con el numero de dgitos de precisin indicados. SIGN (valor)= Indica el signo del "valor". SQRT(n)= Devuelve la raz cuadrada de "n". TRUNC (numero, [m])= Trunca nmeros para que tengan una cierta cantidad de dgitos de precisin. VAIRANCE (valor)= Devuelve la varianza de un conjunto de valores. Funciones de grupos de valores: AVG(n)= Calcula el valor medio de "n" ignorando los valores nulos. COUNT (* | Expresin)= Cuenta el numero de veces que la expresin evala algn dato con valor no nulo. La opcin "*" cuenta todas las filas seleccionadas. MAX (expresin)= Calcula el mximo. MIN (expresin)= Calcula el mnimo. SUM (expresin)= Obtiene la suma de los valores de la expresin. GREATEST (valor1, valor2)= Obtiene el mayor valor de la lista. LEAST (valor1, valor2)= Obtiene el menor valor de la lista. Funciones que devuelven valores de caracteres: CHR(n) = Devuelve el carcter cuyo valor en binario es equivalente a "n". CONCAT (cad1, cad2)= Devuelve "cad1" concatenada con "cad2". LOWER (cad)= Devuelve la cadena "cad" en minsculas. UPPER (cad)= Devuelve la cadena "cad" en maysculas. INITCAP (cad)= Convierte la cadena "cad" a tipo titulo. LPAD (cad1, n[,cad2])= Aade caracteres a la izquierda de la cadena hasta que tiene una cierta longitud. RPAD (cad1, n[,cad2])= Aade caracteres a la derecha de la cadena hasta que tiene una cierta longitud. LTRIM (cad [,set])= Suprime un conjunto de caracteres a la izquierda de la cadena. RTRIM (cad [,set])= Suprime un conjunto de caracteres a la derecha de la cadena. REPLACE (cad, cadena_busqueda [, cadena_sustitucion])= Sustituye un carcter o caracteres de una cadena con 0 o mas caracteres. SUBSTR (cad, m [,n])= Obtiene parte de una cadena. TRANSLATE (cad1, cad2, cad3)= Convierte caracteres de una cadena en caracteres diferentes, segn un plan de sustitucin marcado por el usuario. Funciones que devuelven valores numricos: ASCII(cad)= Devuelve el valor ASCII de la primera letra de la cadena "cad". INSTR (cad1, cad2 [, comienzo [,m]])= Permite una bsqueda de un conjunto de caracteres en una cadena pero no suprime ningn carcter despus. LENGTH (cad)= Devuelve el numero de caracteres de cad. Funciones para el manejo de fechas: SYSDATE= Devuelve la fecha del sistema.

Prctica 06, Base de Datos Relacional UTS.

15

Unidades Tecnolgicas de Santander.


Ingeniera en Telecomunicaciones. Docente: Ingeniero Rogerio Orlando Beltrn Castro. ADD_MONTHS (fecha, n)= Devuelve la fecha "fecha" incrementada en "n" meses. LASTDAY (fecha)= Devuelve la fecha del ltimo da 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 da de la semana indicado por "cad" despus de la fecha indicada por "fecha". Funciones de conversin: TO_CHAR= Transforma un tipo DATE NUMBER en una cadena de caracteres. TO_DATE= Transforma un tipo NUMBER CHAR en DATE. TO_NUMBER= Transforma una cadena de caracteres en NUMBER.

Prctica 06, Base de Datos Relacional UTS.

16

Вам также может понравиться