miércoles, 21 de marzo de 2012

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
--------------------------------------------------------------------

No hay comentarios:

Publicar un comentario