jueves, 22 de marzo de 2012

!!!!YA PUEDEN POSTEAR!!!! !!!ASI SABREMOS SI ALGUEN TIENE ALGUN COMENTARIO SOBRE ESTOS POST DE LA CLASE!!!!!!

miércoles, 21 de marzo de 2012

Clase 21/03/2012



--Declarar palabra a una variable
declare
mensage1 varchar2(4) :='Hola';
mensage2 varchar2(5) :='Mundo';

begin
DBMS_OUTPUT.PUT_LINE(mensage1 || ' ' || mensage2);
end
-------------------------------------------------------------
--Creacion de Tabla T1 con el campo E y F y agregar valores...
create table T1(
e integer,
f integer
);

begin
insert into T1 values(1,3);
insert into T1 values(2,4);
end

select *
from T1

declare
    a number;
    b number;
begin
    select e,f into a,b
    from T1
    where e>1; --Este Select Asigna Al Atributo e=>a ----El valor de la columna e que sera asignado es 2
    insert into T1 values(b,a);
end
-------------------------------------------------------------
--utilizacion de IF
declare
    a integer;
begin
    select count(*) into a
    from T1;
    if a>1 then
        dbms_output.put_line('Hay mas de un REGISTRO');
    elsif a=1 then
        dbms_output.put_line('Hay solo un REGISTRO');
        else
                dbms_output.put_line('Hay solo un REGISTRO');
    end if;
end

-------------------------------------------------------------
--Programa que verifica que el numero es par o impar

declare
    a integer;
   
begin
    a:=15;
    if mod(a,2)=0 then ----la variable 'a' toma el valor de '15'
        dbms_output.put_line('El numero es PAR');
    else
        dbms_output.put_line(''El numero es IMPAR);
    end if;
end
-----Seleccion desde la tabla
declare
    a integer;   
begin
    select count(*) into a
        from T1;
    if mod(a,2)=0 then
        dbms_output.put_line('El numero es PAR');
    else
        dbms_output.put_line('El numero es IMPAR');
    end if;
end
---- insertar mensage(msg)
declare
    a integer;
        msg varchar2(5);   
begin
    select count(*) into a
        from T1;
    if mod(a,2)=0 then
           
        msg :='PAR';
    else
        msg :='IMPAR';
    end if;
        dbms_output.put_line('El numero es' || 'msg');
end
-------------------------------------------------------------
--como usar loop (Contador)
declare
    x integer:=0; -- inicializar (CONTADOR EN '0' O EN VALOR DESIGNADO)
begin
    loop
        dbms_output.put_line('Hola Mundo'); --  Menasje a Imprimir en pantalla
                x := x + 1; -- definir el contador
        exit when x > 100; --Declaracion
    end loop;
end
-------------------------------------------------------------

Diferencia entre SQL y PL-SQL

SQL    : NO Procedual

PL-SQL : Lenguaje Precedual

-------------------------------------------------------------

Datos:


dbms_output.put_line("imprimir"); ---  Este comando es para imprimir




Repaso:


--Creacion de tabla Autor
create table Autor(
IDAutor integer not null,
NomAutor varchar2(30) not null,
constraint PK_Autor primary key(IDAutor)
);
--Creacion de tabla Libro
create table Libro(
IDLibro integer not null,
IDAutor integer not null,
NomLibro varchar2(30) not null,
constraint PK_Libro primary key(IDLibro),
constraint FK_Libro_Autor foreign key(IDAutor) references Autor
);

-- insertar datos autor

begin
insert into Autor values (100, 'Pablo Neruda');
insert into Autor values (200, 'Gabriel Garcia Marquez');
end

-- insertar datos de libro

begin
insert into libro values (10, 100, 'Confieso que he vivido');
insert into libro values (20, 100, '20 poemas de amor');
insert into libro values (30, 100, 'Versos del Capitan');
insert into libro values (40, 200, 'Cien años de soledad');
insert into libro values (50, 200, 'El amor en los tiempos del Colera');
end

-- modificar tamaño de nombre Libro

alter table Libro
modify NomLibro varchar2(50);

-- Seleccionar Datos de tabla Libro

select *
from Libro;

-- Agregar atributo Fecha de Nacimiento

alter table Autor
add FecNac date;

-- Agregar la fecha de Naciemiento a Autor

update Autor
set FecNac = '12-07-1904'
where NomAutor = 'Pablo Neruda';

update Autor
set FecNac = '06-07-1927'
where NomAutor = 'Gabriel Garcia Marquez';

-- Calcular edad

select NomAutor, round((sysdate - FecNac)/365) as Edad
from Autor
where NomAutor = 'Gabriel Garcia Marquez';

-- seleccionar todos los libros del autor 'Pablo Neruda'

--pregunta1

select *
from Libro l inner join Autor a on l.IDAutor = a.IDAutor
where a.NomAutor = 'Pablo Neruda';

--pregunta2

select *
from Libro l, Autor a
where l.IDAutor=a.IDAutor
and a.NomAutor = 'Pablo Neruda';

--pregunta3

select *
from Libro
where IDAutor = (select IDAutor
                   from Autor
                   where NomAutor = 'Pablo Neruda');

--seleccionar columna de tabla Autor y Libro

select *
from col
where tname = upper('Autor');

select *
from col
where tname = ('LIBRO');

-- Seleccionar autores con libros relacionados con palabra amor

select NomAutor
from Autor
where IDAutor in (select IDAutor
from libro
where lower(NomLibro) like '%amor%')

*Datos de Estudio...

UPPER          : Pasa las letras a Mayusculas.
LOWER        : Pasa las letras a Minusculas
DUAL           : Tabla Comodin
AS('Nombre'): Da el nombre a la tabla seleccionada Dual
DESC            : Describe la estructura de la tabla
 ROUND       : Redondear numeros (sin decimales).
--------------------------------------------------------------------

--Mostrar todas las tablas del sistema
select *
from tab

--------------------------------------------------------------------
--From Dual utilizado para mostrar una tabla sin haberla creado



select upper('abcdef') from dual

select (15*3) + 5 as Tamaño from dual
--------------------------------------------------------------------