viernes, 16 de diciembre de 2011

QUINTA CLASE FUNDAMENTOS DE ORACLE 16/12/2011

QUINTA CLASE FUNDAMENTOS DE ORACLE 10/12/2011
----------------------------------------------------------------------------------
INSERT

TABLA T1 (
A  INT
B  VARCHAR2(25)
);

INSERT INTO T1 VALUES
(1.'......')
INSERT INTO T1 (a)VALUES(1);   -- INSERTAR CUANDO NO CONSCO EL ATRIBUTO

----------------------------------------------------------------------------------
CONSTRAINT
INSERT
TABLA T1 (
A  INT PRIMARY KEY ,                    -- EVITA LLAVES DUPLICADAS ,
B  VARCHAR2(25)
);
----------------------------------------------------------------------------------
SELECT
----------------------------------------------------------------------------------
diferencia entre delete y drop
delete borra contenido , drop borra tabla completo
----------------------------------------------------------------------------------
listar las propiedades que arrienda un cliente
(nombre, apellido,numprop,finarriendo,arriendo)
Se debe utilizar join
select c.nombre, c.apellido,a.numpropiedad, a.sinarriendo
from   cliente c, arriendo a
where  c.numcliente=a.numcliente
and c.nombre='juan'
and c.apellido='perez'
UPPER(C.APELLIDO)='PEREZ'
----------------------------------------------------------------------------------
DDL/DML
LENGUAGE DE DEFINICION DE DATOS
---------------------------------------------------------------------------------
NULL VALOR ESPECIAL PARA ATRIBUTOS SIN CONTENIDO
---------------------------------------------------------------------------------
QUE INSTRUCCION SE DEBE HACER PARA MOSTRAR NUMEROS DE OFICINA VALDIVIA
SELECT NUMOFICINA
FROM OFICINA
WEHERE CIUDAD=''VALDIVIA';
--------------------------------------------------------------------------------
MUESTRE TODOS LOS EMPLEADOS QUE TRABAJAN EN VALDIVIA
SELECT NUMEMPLEADO, NOMBRE, APELLIDO
FROM EMPLEADO
WEHERE NUMOFICINA='B15'
O
WHERE NUMOFICINA IN (SELECT NUMOFICINA
FROM OFICINA WHERE CIUDAD='VALDIVIA' )
--------------------------------------------------------------------------------
TRIM QUITA LOS BLANCO DE TRAS Y DE ADELANTE
--------------------------------------------------------------------------------
CREATETE SEQUENCE SEWT1
START WITH 10
INCREMENT BY 10;
SELECT SEQT1.NETVAL FROM DUAL,
INSERT INTO T1 VALUES (SEQT1.NETVAL,'HOLA);
--------------------------------------------------------------------------------
SACAR PROMEDIO DE LOS EMPLEADOS QUE TRABAJAN EN LA MISMA OFICINA
SELECT  NOMBRE, APELLIDO,SALARIO, (SELECT AVG(SALARIO) FROM EMPLEADO)AS
PROMEDIO,SALARIO-(SELECT AVG(SALARIO) FROM EMPLEADO)
FROM EMPLEADO
--------------------------------------------------------------------------------
CON UN DECIMAL
SELECT  NOMBRE, APELLIDO,SALARIO,ROUND( (SELECT AVG(SALARIO) FROM EMPLEADO),1)AS
PROMEDIO,SALARIO-(SELECT AVG(SALARIO) FROM EMPLEADO)
FROM EMPLEADO
--------------------------------------------------------------------------------
NUMERO DE LA OFICINA , CUANTOS EMPLEADOS Y RENTA PROMEDIO
SELECT NUMOFICINA,COUNT(*),AVG(SALARIO),MAX(SALARIO),MIN(SALARIO)
FROM EMPLEADO
GROUP BY NUMOFICINA

--------------------------------------------------------------------------------
SELECT' ** '||TRIM ('') ||'**'FROM DUAL
ESTA TABLA PERMITE PROCESAR OPERACIONES QUE NO AFECTAN DATOS
-------------------------------------------------------------------------------
AGRUPAR EL CONCEPTO Y EL TOTAL
EJ TOTAL DE OFICINAS POR CIUDAD
------
REPASAR PARA PRIMERA CATEDRA
DELETE
DML/DDL
NULL
DROP
IN
DUAL
GROUP
DISTING
TRIM
CREATE  TABLE
CREATE  SEQUENCE
LIKE
WHERE
COUNT / MAX / MIN / AVG
ORDER BY
DESC
BETWEEN
UPPER/LOWER
---------------------------------------------------------------------------------

sábado, 10 de diciembre de 2011

CUARTA CLASE FUNDAMENTOS DE ORACLE 10/12/2011

Clase 4

1) Ejemplos
a) Listar todo el personal con un sueldo entre 200.000 y 300.000
SELECT *
FROM EMPLEADO
WHERE SALARIO >= 200000
AND SALARIO <= 100000;
SELECT *
FROM EMPLEADO
WHERE SALARIO BETWEEN 200000
AND 300000;

b) Listar los empleados con la ciudad de la oficina donde trabajan
SELECT E.EMPLEADO, NOMBRE, CIUDAD
FROM EMPLEADO E, OFICINA O
WHERE E.NUMOFICINA = O.NUMOFICINA;

c) Borrar los gerentes que ganen más de 100.000 pesos
SELECT *
FROM EMPLEADO
WHERE CARGO = 'Gerente'
AND SALARIO >= 100000;

d) Listar todo los clientes que tengan en su dirección la palabra "Glasgow"
SELECT *
FROM CLIENTE
WHERE DIRECCION LIKE '%GLASGOW%';

e) Listar todos los comentarios de las propiedades que han sido visitadas
SELECT * FROM VISITA
WHERE COMENTARIO IS NOT NULL;

2) Practicar los comandos
DELETE
IN
HAVING
ORDER BY
GROUP BY
BETWEEN
UPPER
LOWER
ROUND
VARCHAR2
NUMBER
INTEGER
BOOLEAN
LIKE

3) Instalación oracle express 11g + Oracle SQL Developer

Instrucciones para instalar Oracle Express 11g
Descargar:
Oracle Express 11g http://www.oracle.com/technetwork/database/express-edition/downloads/index.html
Oralce SQL Developer http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Despues de instalar Oracle Express:
Para iniciar oracle express, ir a inicio, todos los programas, oracle database 11g express edition, entrar get started.
Oracle Sql Developer se ejecuta, y en los valores por defecto queda configurado para usarlo con oracle express.

4) Crear tabla en PL/SQL
CREATE TABLE T2(
e INTEGER,
f INTEGER
);
INSERT INTO T2 VALUES (1,3);
INSERT INTO T2 VALUES (2,4);

5) Asignación y cambio de variables (INTO asignación de variables)
DECLARE
a NUMBER;
b NUMBER;
BEGIN
SELECT e,f INTO a,b
FROM T2
WHERE e>1;   --ESTE SELECT ASIGNA EL ATRIBUTO E-->A Y F-->B DE TO0DOS AQUELLOS
REGISTROS CUYO ATRIBUTO E>1
INSERT INTO T2 VALUES (b,a);
END;
* Al ejecutar por segunda vez el procedimiento da un error porque hay una sutileza, funciona cuando el resultado
 entregue una sola tupla.

6) Mostrar en pantalla
SET SERVEROUTPUT ON
BEGIN
DBMS_OUTPUT.PUT_LINE ('Hola mundo');
END;

7) Instrucción IF
DECLARE
PRECIO INTEGER :=18;
BEGIN
 IF PRECIO >= 15 THEN
       DBMS_OUTPUT.PUT_LINE ('El precio es: '||PRECIO);
 END IF;
END;
DECLARE
PRECIO INTEGER :=18;
TEXTO VARCHAR2(5);
BEGIN
 IF PRECIO >= 15 THEN
       TEXTO := 'MAYOR';
 ELSE
   TEXTO := 'MENOR';
 END IF;
 DBMS_OUTPUT.PUT_LINE ('El precio es'||TEXTO||'y es: '||PRECIO);
END;

8) Instrucción LOOP
DECLARE
I INTEGER;
BEGIN
I:=1;
LOOP
 DBMS_OUTPUT.PUT_LINE('Hola mundo: '||I);
 I:=I+1;
 EXIT WHEN I>10;
END LOOP;
END;

viernes, 9 de diciembre de 2011

TERCERA CLASE FUNDAMENTOS DE ORACLE 09/12/2011

-------------------------------------------------------------------
Para saver la fecha de hoy se debe digitar Select sysdate from dual
-------------------------------------------------------------------
Tabla Dual preghunta prueba
Todos los elementos que estan dentros de la BD son tablas
-------------------------------------------------------------------
crear tabla persona
id         integer primary key,
nombre     Varchar2 (35),                 ----------> significa que es variable
apellido   varchar2 (40),
fechanac   date,
renta      numeric (5,1)                  ----------> 4 enteros un decimal
-------------------------------------------------------------------
create table persona (
id        integer primary key,
nombre    Varchar2 (35),    
apellido   varchar2 (40),
fechanac     date,
renta     numeric (5,1)
);
-------------------------------------------------------------------
constraint pkpersona primary key (id); ------------------->es una restrinsion para que valor no se pueda repetir
OJO : Solo  puede tener una clave primaria
-------------------------------------------------------------------
Forma insertar un registro
insertar datos en tabla persona
insert into persona values (1,'Pedro','picapiedra','1-12-1960',200);
create sequence seqpersona;
-------------------------------------------------------------------
select * from tab----> sirve para ver las tablas creadas
select * from cat----> sirve para ver las tablas creadas
---------------------------o-------------------------------------------------
desc persona ------------------->muestra la estructura de la tabla person
------------------------------------------------------------------------------
http://umanitoba.ca/computing/ist/internal/admin_sys/project_review/media/Oracle_PLSQL_Quick_Reference_Card.pdf
Hoya de ayuda
--------------------------------

Trabajo Nª1: Buenas practicas para Oracle.

Descripción de las mejores practicas para Oracle PL/SQL.

Para ver el documento haz click aca


El grupo esta conformado por:

-Luisa Apaz
-Marisol Gutierrez
-Pedro Paredes
-Daniel Berrios

sábado, 3 de diciembre de 2011

SEGUNDA CLASE FUNDAMENTOS DE ORACLE 03/12/2011

TEMARIO

CREAR UNA TABLA

CREAR TIPOS DE ATRIBUTOS

PREGUNTAS DE PRUEBA

LLAVES PRIMARIAS Y FORANEAS

SEGUNDA FORMA DE CREAR TABLAS

REALIZAR TRABAJO DE INVESTIGACION (LAS MEJORES PRACTICAS DE MLSQL)

PUBLICAR EN BLOG DIRECCIONANDO LOS LINK DE WORD Y POWER POINT DESDE DROPBOX

viernes, 2 de diciembre de 2011

Primeros pasos en primera clase

Se debe ingresar a pagina
http://orahelp.blogspot.com/
luego buscar la palabra completo y seleccionar codigo y pegar en oracle.-
 
/*==============================================================*/
/* BORRADO DE TABLAS */
/*==============================================================*/

drop table TotPropEmpleado cascade constraints;

drop table ARRIENDO cascade constraints;

drop table CLIENTE cascade constraints;

drop table EMPLEADO cascade constraints;

drop table OFICINA cascade constraints;

drop table PROPIEDAD cascade constraints;

drop table PROPIETARIO cascade constraints;

drop table VISITA cascade constraints;
/*==============================================================*/
/* Tabla: ARRIENDO */
/*==============================================================*/

create table ARRIENDO (
NUMARRIENDO INTEGER not null,
NUMPROPIEDAD CHAR(4),
NUMCLIENTE CHAR(4),
RENTA FLOAT,
FORMAPAGO CHAR(10),
DEPOSITO FLOAT,
PAGADO CHAR(1),
INICIORENTA DATE,
FINRENTA DATE,
constraint PK_ARRIENDO primary key (NUMARRIENDO)
);

/*==============================================================*/
/* Tabla: CLIENTE */
/*==============================================================*/
create table CLIENTE (
NUMCLIENTE CHAR(4) not null,
NOMBRE CHAR(30),
APELLIDO CHAR(30),
DIRECCION CHAR(35),
TELEFONO CHAR(10),
TIPOPREF CHAR(25),
MAXRENT FLOAT,
constraint PK_CLIENTE primary key (NUMCLIENTE)
);

/*==============================================================*/
/* Tabla: EMPLEADO */
/*==============================================================*/
create table EMPLEADO (
NUMEMPLEADO CHAR(4) not null,
NOMBRE CHAR(30),
APELLIDO CHAR(30),
CARGO CHAR(35),
SEXO CHAR(1),
FECHNAC DATE,
SALARIO FLOAT,
NUMOFICINA CHAR(4),
constraint PK_EMPLEADO primary key (NUMEMPLEADO)
);

/*==============================================================*/
/* Tabla: OFICINA */
/*==============================================================*/
create table OFICINA (
NUMOFICINA CHAR(4) not null,
CALLE CHAR(30),
CIUDAD CHAR(25),
CODIGOPOSTAL CHAR(10),
constraint PK_OFICINA primary key (NUMOFICINA)
);

/*==============================================================*/
/* Tabla: PROPIEDAD */
/*==============================================================*/
create table PROPIEDAD (
NUMPROPIEDAD CHAR(4) not null,
CALLE CHAR(30),
CIUDAD CHAR(25),
CODIGOPOSTAL CHAR(10),
TIPO CHAR(25),
HAB INTEGER,
RENTA FLOAT,
NUMPROPIETARIO CHAR(4),
NUMEMPLEADO CHAR(4),
constraint PK_PROPIEDAD primary key (NUMPROPIEDAD)
);

/*==============================================================*/
/* Tabla: PROPIETARIO */
/*==============================================================*/

create table PROPIETARIO (
NUMPROPIETARIO CHAR(4) not null,
NOMBRE CHAR(30),
APELLIDO char(30),
DIRECCION CHAR(30),
TELEFONO CHAR(10),
constraint PK_PROPIETARIO primary key (NUMPROPIETARIO)
);

/*==============================================================*/
/* Tabla: VISITA */
/*==============================================================*/
create table VISITA (
NUMCLIENTE CHAR(4) not null,
NUMPROPIEDAD CHAR(4) not null,
FECHA DATE not null,
COMENTARIO VARCHAR2(30),
constraint PK_VISITA primary key (NUMCLIENTE, NUMPROPIEDAD, FECHA)
);

/*==============================================================*/
/* Tabla TotPropEmpleado */
/* Se utiliza para insertar desde otra tabla
/*==============================================================*/

create table TotPropEmpleado (
NUMEMPLEADO CHAR(4) not null,
totProp INTEGER,
constraint PK_TotPropEmpleado primary key (NUMEMPLEADO)
);

alter table TotPropEmpleado
add constraint FK_TotProp_REFERENCE_EMPLEADO foreign key (NUMEMPLEADO)
references EMPLEADO (NUMEMPLEADO);

alter table EMPLEADO
add constraint FK_EMPLEADO_REFERENCE_OFICINA foreign key (NUMOFICINA)
references OFICINA (NUMOFICINA);

alter table PROPIEDAD
add constraint FK_PROPIEDA_REFERENCE_EMPLEADO foreign key (NUMEMPLEADO)
references EMPLEADO (NUMEMPLEADO);

alter table VISITA
add constraint FK_VISITA_REFERENCE_CLIENTE foreign key (NUMCLIENTE)
references CLIENTE (NUMCLIENTE);

alter table VISITA
add constraint FK_VISITA_REFERENCE_PROPIEDA foreign key (NUMPROPIEDAD)
references PROPIEDAD (NUMPROPIEDAD);


/*==============================================================*/
/*= P o b l a m i e n t o d e t a b l a s =*/
/*==============================================================*/

/*==============================================================*/
/* datos: oficina */
/*==============================================================*/
insert into oficina values('B005','16 Holhead','Aberdeem','AB7 5SU');
insert into oficina values('B007','6 Argvill St.','London','NW2');
insert into oficina values('B003','164 Main street','Glasgow','G119Qx');
insert into oficina values('B004','2 Manor Rd','Glasgow','G114Qx');
insert into oficina values('B001','10 Dale Rd','bristol','G12');
insert into oficina values('B002','17 Holhead','Aberdeem','AB7 5SU');
insert into oficina values('B008','7 Argvill St.','London','NW21');
insert into oficina values('B006','163 Main street','Glasgow','G11');
insert into oficina values('B010','2 Manor Rd','Glasgow','G114x');
insert into oficina values('B011','14 Dale Rd','bristol','G2');
insert into oficina values('B017','6 Argvill St.','London','W2');
insert into oficina values('B013','166 Main street','Glasgow','9Qx');
insert into oficina values('B014','3 Manor Rd','Glasgow','Qx');
insert into oficina values('B012','11 Dale Rd','bristol','GH2');
insert into oficina values('B015','Costanera 25','Valdivia','0324');
insert into oficina values('B115','Picarte 124','Valdivia','0324');
insert into oficina values('B215','El Morro 110','Arica','10300');
insert into oficina values('B315','El Vergel 1500','Arica','123123');
insert into oficina values('B415','Av. Walker Martinez 1360','Santiago','W101');
insert into oficina values('B515','Av. Antonio Varas 929','Santiago','W101');

/*==============================================================*/
/* datos: cliente */
/*==============================================================*/
insert into cliente values('CR76','Jhon','Kay','56 High ST,Londonn,SW14EH','0207774563','Departamento',450);
insert into cliente values('CR56','Aline','Stewart','64 Fern Dr, Glasgow G42 OBL','0141324182','Departamento',350);
insert into cliente values('CR74','Mike','Ritchie','63 Well St, Glasgow,G42','0141943742','Casa',750);
insert into cliente values('CR62','Mary','Tregear','12 Park PI, Glasgow, G40QR','0141225742','Departamento',600);
insert into cliente values('CR78','Juan','Kayser','55 High ST,Londonn,SW14EH','0207774564','Departamento',450);
insert into cliente values('CR57','Alicia','Soto','63 Fern Dr,. GlasgowG42 OBL','0141324183','Departamento',350);
insert into cliente values('CR72','Miguel','Torres','62 Well St, Glasgow,G42','0141943740','Casa',750);
insert into cliente values('CR63','Maria','Perez','13 Park PI, Glasgow,G4 0QR','0141225741','Departamento',600);

/*==============================================================*/
/* datos: empleado */
/*==============================================================*/
insert into empleado values('SL21','Jhon','White','Gerente','M','01/10/45',300000,'B005');
insert into empleado values('SG37','Peter','Denver','Asistente','M','10/11/60',120000,'B006');
insert into empleado values('SG14','David','Ford','Supervisor','M','09/09/58',180000,'B003');
insert into empleado values('SA9','Mary','Lee','Asistente','F','17/09/59',90000,'B007');
insert into empleado values('SG5','Susan','Sarandon','Gerente','F','21/03/60',240000,'B003');
insert into empleado values('SL41','Julie','Roberts','Asistente','F','13/06/63',90000,'B005');
insert into empleado values('SL22','Juan','Blanco','Gerente','M','01/10/44',300000,'B005');
insert into empleado values('SG36','Luis','Jara','Asistente','M','10/11/61',120000,'B003');
insert into empleado values('SG13','David','Gates','Supervisor','M','09/09/58',180000,'B003');
insert into empleado values('SA8','Maria','Bombal','Asistente','F','17/09/59',90000,'B007');
insert into empleado values('SG4','Susana','Sarandons','Gerente','F','21/03/60',240000,'B003');
insert into empleado values('SL40','James','Bond','Asistente','F','13/06/63',90000,'B005');
insert into empleado values('SL50','Juan','Perez','Vendedor','M','13/06/63',151000,'B015');
insert into empleado values('SL60','Jaime','Soto','Vendedor','M','14/06/83',350000,'B115');
insert into empleado values('SL70','Julia','Berne','Vendedor','F','23/01/53',200000,'B215');
insert into empleado values('SL55','Jorge','Fernandez','Vendedor','M','13/06/63',151000,'B015');
insert into empleado values('SL65','Jose','Isla','Vendedor','M','14/06/83',350000,'B115');

/*==============================================================*/
/* datos: Propietario */
/*==============================================================*/
insert into propietario values('C046','Joe','Keogh','2 Fergus Dr, AberdeenAB 7SX','0122486121');
insert into propietario values('C087','Carol','Farrel','6 Achray St.Glasgow, G32 9DX','0141357741');
insert into propietario values('C040','Tina','Murphy','63 Well St, Glasgow, G42','0141943742');
insert into propietario values('C093','Tony','Shaw','12 Park PI, Glasgow, G40QR','0141225742');
insert into propietario values('C047','Jose','Casanova','El Volvan 123, Santiago AB 7SX','0122486125');
insert into propietario values('C088','Carolina','Fernandez','Macul 1800. Santiago, G32 9DX','0141357741');
insert into propietario values('C041','Cristina','Mora','Av. Matta 1800, Santiago, G42','0141943752');
insert into propietario values('C094','Tomas','Figueroa','Av. Macul 120, Santiago, G40QR','0141225542');

/*==============================================================*/
/* datos: PROPIEDAD */
/*==============================================================*/
insert into PROPIEDAD values('PA14','16 Holhead','Aberdeem','AB7 5SU','Casa','6','650','C046','SL21');
insert into PROPIEDAD values('PL94','6 Argvill St.','London','NW2','Departamento','4','400','C087','SL21');
insert into PROPIEDAD values('PG4' ,'6 Lawrence St','Glasgow','G119QX','Departamento','3','350','C040','SA9');
insert into PROPIEDAD values('PG36','2 Manor Rd','Glasgow','G114QX','Departamento','3','375','C093','SA9');
insert into PROPIEDAD values('PG21','AV. Matta 150','Santiago','G12','Casa','5','600','C087','SG5' );
insert into PROPIEDAD values('PR01','Macul 120 ','Santaigo','G129AX','Departamento','4','450','C093','SA8');
insert into PROPIEDAD values('PR02','Macul 220','Santiago','G129AX','Departamento','5','550','C093','SG13');
insert into PROPIEDAD values('PR03','Macul 420','Santiago','G129AX','Departamento','6','650','C093','SG14');
insert into PROPIEDAD values('PR04','Macul 620','Santiago','G129AX','Departamento','3','350','C093','SG36');
insert into PROPIEDAD values('PR05','Loa 100','Santiago','G129AX','Departamento','2','250','C093','SG4');
insert into PROPIEDAD values('PG16','Arturo Prats 250','Santiago','G129AX','Departamento','4','450','C047','SL22');
insert into PROPIEDAD values('PR07','Gorbea 200','Santiago','G129AX', 'Departamento','6','650','C047','SL40');
insert into PROPIEDAD values('PR08','Gomez 230','Santiago','G129AX', 'Departamento','2','250','C041','SL41');
insert into PROPIEDAD values('PR09','Garibaldi 1500','Santiago','G129AX', 'Departamento','6','650','C041','SL50');
insert into PROPIEDAD values('PR10','Las Urbinas 210','Santiago','G129AX', 'Departamento','6','650','C094','SL55');
insert into PROPIEDAD values('PR11','Lastarria 1400','Santiago','G129AX', 'Departamento','3','350','C094','SL60');
insert into PROPIEDAD values('PR12','Las Giraldas 200','Santiago','G129AX','Departamento','4','450','C093','SL70');

/*==============================================================*/
/* datos: VISITA */
/*==============================================================*/
insert into visita values('CR56','PA14','24-11-1999','muy pequeño');
insert into visita values('CR62','PA14','14-11-1999','no tiene salón');
insert into visita values('CR76','PG4','20-10-1999','muy lejos');
insert into visita values('CR72','PG16','24-06-2007','Bakan');
insert into visita values('CR72','PG36','24-06-2007','Super');
insert into visita values('CR62','PG16','25-06-2007','Cool');
insert into visita values('CR62','PG4','25-06-2007', NULL);
insert into visita values('CR62','PG36','25-06-2007','No salva');
insert into visita (numCliente, numPropiedad, fecha) values ('CR72','PG4','25-06-2007');
insert into visita (numCliente, numPropiedad, fecha) values('CR56','PG36','28-10-1999');
insert into visita (numCliente, numPropiedad, fecha) values('CR56','PG4','26-11-1999');

/*==============================================================*/
/* datos: ARRIENDO*/
/*==============================================================*/
insert into arriendo values('10024','PA14','CR62','650','Visa','1300','Y','01-06-2005','31-05-2006');
insert into arriendo values('10075','PL94','CR76','400','Contado','800','N','01-08-2005','31-01-2006');
insert into arriendo values('10012','PG21','CR74','600','Cheque','1200','Y','01-07-2005','30-06-2006');
/*==============================================================*/

PRIMERA CLASE FUNDAMENTOS DE ORACLE

HORARIO

TODOS LOS VIERNES CLASE HASTA LAS 22:00  HORAS CLASE SIN BREAK

SABADO 10  RECUPERACION 2011

SABADO 17  RECUPERACION  2011

SABADO 7  RECUPERACION  2012
CAT1              17/2011
CAT2               6/2012
EXAMEN        14/2012
Paginas que se usaran en este ramo

http://www.diigo.com/user/efischer
blogger.com
http://www.dropbox.com/