viernes, 17 de junio de 2011

Respuestas Guia

I-
1) El Resultado muestra el nombre, salario y cargo de aquellos empleados que posean el salario mas alto.

2) El Resultado muestra el Numero de Empleado, Nombre, Apellido y Numero de Oficina de los empleados que no administran propiedades.

3) El Resultado muestra el Numero de Oficina y que posean mas de 3 empleados a cargo de dichas oficinas

4) Mal Redactado:

Update Empleado
Set salario = salario*1,2
having cargo = 'Asistente'

Bien Redactado:

Update Empleado
Set salario = salario*1.2
where cargo = 'Asistente'

II-
5) SELECT NOMBRE, APELLIDO, SALARIO
FROM EMPLEADO
WHERE APELLIDO LIKE 'B%'
AND NUMEMPLEADO IN (SELECT NUMEMPLEADO FROM PROPIEDAD)
AND SEXO LIKE 'F'

6) select nombre ,apellido, salario
from empleado
where sexo like 'F'
and salario > some (select salario from empleado where sexo like 'M')

7) Select nombre, count(numempleado)
from empleado
group by nombre
having count(numEmpleado) > 1

8) Select P.numpropiedad
from Propiedad P, Visita V
where V.fecha like '%06/07'

9) select nombre , apellido
from propietario
where nombre not in(select nombre from propietario)
and apellido not in (select apellido from propietario )

Formulario para Preparacion de Examen

Bueno, ahi les dejo el link con el Formulario. Exito!

https://spreadsheets.google.com/spreadsheet/viewform?hl=es&formkey=dE5tN21ZcHVkcjkxRWVfMGdKRlFwSkE6MQ#gid=0

Namaste!!

viernes, 3 de junio de 2011

Codigo CREACION DE USURIO

Con este codigo creamos un usuario para la BaseDeDatos en ISQLPLUS.

drop user "RUT-DV" cascade;
CREATE USER "RUT-DV" PROFILE "DEFAULT"
    IDENTIFIED BY "RUT-DV"
    DEFAULT TABLESPACE "CURSOSBD2009"
    TEMPORARY TABLESPACE "TEMP"
    ACCOUNT UNLOCK;
    GRANT "CONNECT" TO "RUT-DV";
    GRANT "RESOURCE" TO "RUT-DV";

Metodo ocupado para crear multiples usuarios: COMBINACION POR CORRESPONDENCIA EN WORD 2007.

En el campo "RUT-DV" se reemplaza por alguna lista de excel y se personaliza con bloques de datos.

NAMASTE!!

domingo, 22 de mayo de 2011

Codigo Oracle AMIGOS Y CERVEZA

 SE CREA LA TABLA AMIGO. ENCABEZADO CON CREATE, LOS ATRIBUTOS Y SUS TIPOS. LA LINEA QUE DICE CONSTRAINT AMIGO ... SE SEÑALA IDAMIGO COMO LA PK
CREATE TABLE AMIGO
 (
   IDAMIGO NUMBER,
   NOMBRE VARCHAR2(30),
   APELLIDO VARCHAR2(30),
   TELEFONO NUMBER,
   EMAIL VARCHAR2(50),
   TWITTER VARCHAR2(30),
   FECHANACIMIENTO DATE,
   CONSTRAINT AMIGO_PK PRIMARY KEY(IDAMIGO) ENABLE
 );



 SE CREA LA TABLA CERVEZA CON SUS ATRIBUTOS Y PK.
CREATE TABLE CERVEZA
 (   
   IDCERVEZA NUMBER,
   NOMBRE VARCHAR2(20),
   MARCA VARCHAR2(10),
   CONSTRAINT CERVEZA_PK PRIMARY KEY (IDCERVEZA) ENABLE
 );
  
 SE CREA TABLA PRUEBA, CON ATRIBUTOS Y PRIMARY KEY. LAS DOS LINEAS QUE DICEN CONSTRAINT PRUEBA_FK ... SEÑALA LAS LLAVES FORANEAS (FK). DICEN QUE POR EJEMPLO, IDCERVEZA SERA LO MISMO QUE LA PK IDCERVEZA DE LA TABLA CERVEZA. MEDIANTE ESO SE UNEN LAS TABLAS AMIGO, PRUEBA Y CERVEZA.
CREATE TABLE  PRUEBA
 (   
   IDPRUEBA  NUMBER,
   IDAMIGO   NUMBER,
   IDCERVEZA NUMBER,
   CONSTRAINT PRUEBA_PK PRIMARY KEY (IDPRUEBA) ENABLE,
   CONSTRAINT PRUEBA_FK_AMIGO FOREIGN KEY (IDAMIGO) REFERENCES  AMIGO (IDAMIGO) ENABLE,
   CONSTRAINT PRUEBA_FK2_CERVEZA FOREIGN KEY (IDCERVEZA) REFERENCES  CERVEZA (IDCERVEZA) ENABLE
 );

 SE CREA LA TABLA BAR, CON SUS ATRIBUTOS Y PK.
CREATE TABLE BAR
 (
   IDBAR NUMBER,
   NOMBRE VARCHAR2(25),
   DIRECCION VARCHAR2(50),
   COMUNA VARCHAR(20),
   TELEFONO NUMBER,
   CONSTRAINT BAR_PK PRIMARY KEY(IDBAR) ENABLE
 );

 SE CREA TABLA FRECUENTA, CON ATRIBUTOS, PK Y 2 FK. CON ESTO UNEN AMIGO, FRECUENTA Y BAR. ADEMAS EN EL ULTIMO CONSTRAINT FRECUENTA_HORARIO ... SE USA COMO UNA VALIDACION. MECIONA QUE EL ATRIBUTO HORARIO SOLO PODRA RECIBIR LOS VALORES MAÑANA, TARDE, NOCHE O INDIFERENTE.
CREATE TABLE FRECUENTA
 (
   IDFRECUENTA NUMBER,
   IDAMIGO NUMBER,
   IDBAR NUMBER,
   HORARIO VARCHAR2(10),
   CONSTRAINT FRECUENTA_PK PRIMARY KEY(IDFRECUENTA) ENABLE,
   CONSTRAINT FRECUENTA_FK_AMIGO FOREIGN KEY (IDAMIGO) REFERENCES  AMIGO (IDAMIGO) ENABLE,
   CONSTRAINT FRECUENTA_FK2_BAR FOREIGN KEY (IDBAR) REFERENCES  BAR (IDBAR) ENABLE,
   CONSTRAINT FRECUENTA_HORARIO CHECK (HORARIO IN ('MAÑANA', 'TARDE', 'NOCHE', 'INDIFERENTE')) ENABLE
 );

 CREA TABLA SIRVE, CON SUS ATRIBUTOS, PK Y SUS 2 FK. SE CREA LA CONEXION BAR, SIRVE, CERVEZA.
CREATE TABLE SIRVE
 (
   IDSIRVE NUMBER,
   IDBAR NUMBER,
   IDCERVEZA NUMBER,
   CONSTRAINT SIRVE_PK PRIMARY KEY(IDSIRVE) ENABLE,
   CONSTRAINT SIRVE_FK_CERVEZA FOREIGN KEY (IDCERVEZA) REFERENCES  CERVEZA (IDCERVEZA) ENABLE,
   CONSTRAINT SIRVE_FK2_BAR FOREIGN KEY (IDBAR) REFERENCES  BAR (IDBAR) ENABLE
 );

 ACA SE POBLA LA TABLA AMIGO, ES DECIR, SE LE AGREGAN DATOS. EL BEGIN Y EL END HACEN QUE SE PUEDAN AGREGAR TODOS LOS DATOS DE UNA VEZ.
Begin
Insert into Amigo values (10, 'Pedro', 'Picapiedra', 5555555, 'ppicapiedra@gmail.com','@Picapiedra', '06/06/1966');
insert into Amigo Values (20, 'Rick', 'Wackeman', 932456765, 'rwackeman@hotmail.com', '@wackeman', '25/05/1960');
insert into Amigo Values (30, 'Jack', 'Bauer', 74859632, 'jbauer@ctu.org', '@bauer', '24/06/1970');
insert into Amigo Values (40, 'Chuck', 'Norris', 7777777, 'cnorris@dios.com', '@DonChuck', '07/07/1940');
End

SE POBLA LA TABLA CERVEZA.
BEGIN
insert into Cerveza values (10, 'Escudo', 'CCU');
insert into Cerveza values (20, 'Pale Ale', 'Kunstmann');
insert into Cerveza values (30, 'Bock', 'Kunstmann');
insert into Cerveza values (40, 'Cristal', 'CCU');
insert into Cerveza values (50, 'Baltica', 'CCU');
insert into Cerveza values (60, 'Heinecken', 'Heinecken');
insert into Cerveza values (70, 'Chimbombo', 'Cuneta');
END

SE POBLA LA TABLA PRUEBA
Begin
insert into prueba values (10, 10, 10);
insert into prueba values (11, 10, 20);
insert into prueba values (12, 10, 30);
insert into prueba values (13, 20, 10);
insert into prueba values (14, 20, 70);
insert into prueba values (15, 30, 40);
insert into prueba values (16, 30, 60);
insert into prueba values (17, 40, 70);
insert into prueba values (18, 40, 20);
END

SE POBLA LA TABLA BAR
BEGIN
insert into bar values (1, 'El Bar de Moe', 'Av. Siempre Viva 278', 'Springfield', 4884665);
insert into bar values (2, 'El Pobre Carlos', 'Av. Balmaceda 2487', 'Talagante', 8154879);
insert into bar values (3, 'Groops!', 'Downtown 200', 'Ciudad de York', 9905674);
insert into bar values (4, 'Atico', 'Santelices 669', 'Isla de Maipo', 8194596);
END

SE POBLA LA TABLA FRECUENTA
BEGIN
insert into frecuenta values (1, 10, 1, 'NOCHE');
insert into frecuenta values (2, 20, 1, 'MAÑANA');
insert into frecuenta values (3, 10, 2, 'NOCHE');
insert into frecuenta values (4, 10, 3, 'TARDE');
insert into frecuenta values (5, 30, 1, 'NOCHE');
insert into frecuenta values (6, 40, 1, 'TARDE');
insert into frecuenta values (7, 40, 3, 'MAÑANA');
insert into frecuenta values (8, 20, 4, 'NOCHE');
insert into frecuenta values (9, 40, 2, 'TARDE');
insert into frecuenta values (10, 30, 2, 'NOCHE');
END

SE POBLA LA TABLA SIRVE
BEGIN
insert into sirve values(30, 1, 10);
insert into sirve values(31, 2, 20);
insert into sirve values(32, 1, 10);
insert into sirve values(33, 2, 20);
insert into sirve values(34, 3, 60);
insert into sirve values(35, 3, 30);
insert into sirve values(36, 3, 20);
insert into sirve values(37, 4, 40);
insert into sirve values(38, 4, 60);
END

SELECT * FROM nombreTabla: DEVUELVE TODOS LOS REGISTROS (DATOS ALMACENADOS EN ATRIBUTOS) DE LA TABLA MENCIONADA
SELECT * FROM AMIGO
SELECT * FROM CERVEZA
SELECT * FROM PRUEBA
SELECT * FROM BAR
SELECT * FROM FRECUENTA
SELECT * FROM SIRVE

EN ESTA CONSULTA, SE ABREN LAS TABLAS AMIGO, CERVEZA Y PRUEBA, DONDE SE LE ASIGNAN ALIAS A, C Y P. SE DEVOLVERA SOLO EL NOMBRE Y EL APELLIDO DEL AMIGO. PRIMERO SE HACE EL JOIN, DONDE SE IGUALAN LAS ID DE UNA TABLA CON EL ID DE LA TABLA INTERMEDIA (EJ: IDAMIGO DE LA TABLA AMIGO CON IDAMIGO DE LA TABLA PRUEBA) . Y FINALMENTE SE ESCRIBE LA CONDICION. ESTA DICE QUE DEVUELVA EL NOMBRE Y APELLIDO DE LOS QUE HAN CONSUMIDO ESCUDO Y ADEMAS BOCK (SE HACE UNA INSTRUCCION ESPECIAL CON IN DONDE SOLO SE UTILIZA EL IDAMIGO PARA SABER LA SEGUNDA CERVEZA QUE BEBIO Y VOLVER A VERIFICAR).
SELECT A.NOMBRE, A.APELLIDO
FROM AMIGO A, CERVEZA C, PRUEBA P
WHERE A.IDAMIGO = P.IDAMIGO
      AND P.IDCERVEZA = C.IDCERVEZA
      AND C.NOMBRE = 'Escudo'
      AND A.IDAMIGO IN
      ( SELECT IDAMIGO
        FROM PRUEBA P, CERVEZA C
        WHERE C.IDCERVEZA = P.IDCERVEZA
              AND C.NOMBRE = 'Bock'
      );

VISTA: ESTA LINEA CREA UNA VISTA PARA SER OCUPADA DESPUES Y VER CAMBIOS. TAMBIEN PUEDE SER LLAMADA COMO SELECT * FROM VISTA SIEMPRE Y CUANDO SE HAYA COLOCADO ARRIBA EN UNA CONSULTA DEFINIDA.
CREATE VIEW VISTA

ESTA CONSULTA DICE QUE OCUPARA LAS TABLAS AMIGO, BAR, FRECUENTA, CERVEZA Y SIRVE. SOLO DEVOLVERA EL NOMBRE DEL AMIGO, NOMBRE DE LA CERVEZA, NOMBRE DEL BAR Y EL HORARIO (SIN CONDICION, VALIDACION O FILTRACION). SE HACEN LOS JOIN.
SELECT A.NOMBRE, C.NOMBRE, B.NOMBRE, HORARIO
FROM AMIGO A, BAR B, FRECUENTA F, CERVEZA C, SIRVE S
WHERE A.IDAMIGO = F.IDAMIGO
  AND F.IDBAR = B.IDBAR
  AND B.IDBAR = S.IDBAR
  AND S.IDCERVEZA = C.IDCERVEZA
 
USER_TABLES MUESTRA TODAS LA INFORMACION DE TODAS LAS TABLAS
SELECT * FROM USER_TABLES

ESTO DESCRIBE LA ESTRUCTURA DE LA TABLA CERVEZA
DESCRIBE CERVEZA

NAMASTE!!!

lunes, 2 de mayo de 2011

Formas Normales

Nuevamente, subimos el material usado para la Disertacion sobre: FORMAS NORMALES.

  • Normalizacion
  • Primera Forma Normal (1FN) + Ejemplo
  • Segunda Forma Normal (2FN) + Ejemplo
  • Tercera Forma Normal (3FN) + Ejemplo 
Descargable aca:  Formas Normales.ppsx


NAMASTE!

lunes, 11 de abril de 2011

Modelo Entidad - Relacion

Este es el material usado para la Disertacion sobre: MODELO ENTIDAD - RELACION.
  • Pasos para Realizar un buen Modelo ENTIDAD - RELACION
  • Ejercicio: Amigos & Cervezas. Enunciado, Modelo y Preguntas.
  • Ejercicio: Curso de Capacitacion Enunciado, Modelo y Preguntas.

Lo pueden descargar a traves de el siguiente link:
MODELO ENTIDAD - RELACION.PPSX

NAMASTE !!

sábado, 9 de abril de 2011

Oracle 10g (proximamente completo el post)

Hola en esta ocacion escribire sobre Oracle 10g Express Edition

"Inserte la definicion de oracle aqui XD"

Comandos:
(colocare algunas cosas a color, para que sea facil de acimilar cuando se hable de lo mismo)

Crear Tabla:
create table nombreTabla (
nombreAtributo tipoAtributo,
nombreAtributo2 tipoAtributo2);


Insertar Valores:
begin
insert into nombreTabla values (valorAtributo1, valorAtributo2);
insert into nombreTabla values (valorAtributo1, valorAtributo2);
end

Ver Tabla:
select * from nombreTabla;

Ver en la tabla los valores que cumplen la condicion:
select * from nombreTabla where nombreAtributo like valorAtributo1;

Cambiar valor a los atributos:
update nombreTabla set nombreAtributo = valorNuevo
where nombreAtrivuto = valorAntiguo;


Cambiar valor a los atributos que cumplan la condicion:
update nombreTabla set nombreAtributo = valorNuevo
where nombreAtrivuto = valorAntiguo;

and nombreAtributo2 = valorAtributo2;

Ver descripcion de la tabla:
describe nombreTabla;

Eliminar tabla:
delete nombreTabla;

Eliminar de la tabla el que cumpla la condicion:
delete nombreTabla where nombreAtributo = valorAtributo
and nombreAtributo2 = valorAtributo2;