lunes, 18 de abril de 2011

Crear un esquema de libreria para practicas de consultas SQL

Les dejo la guia que preparé para crear el esquema lib, que será utilizado en la capacitación en Oracle 11g que se está realizando en la Comunidad Oracle Hispana,

http://rapidshare.com/files/455875490/Guia_de_Creacion_del_esquema_lib_-_COH.rar

Estos son los script que preparamos con Fernando Garcia:

lib_ppal.sql

prompt ...Creando esquema lib
drop user lib cascade
/
create user lib identified by lib
default tablespace users
temporary tablespace temp
/
grant CREATE VIEW to lib
/
grant UNLIMITED TABLESPACE to lib
/
grant CREATE DATABASE LINK to lib
/
grant CREATE SEQUENCE to lib
/
grant CREATE SESSION to lib
/
grant ALTER SESSION to lib
/
grant CREATE SYNONYM to lib
/
grant CREATE TABLE to lib
/
conn lib/lib
@@lib_cre.sql
@@lib_popul.sql
exit




lib_cre.sql

prompt ...Creando tablas

CREATE TABLE Autores
(
Aut_ID NUMBER (8),
Aut_Nombre VARCHAR2 (30) NOT NULL,
Aut_Inicial_Medio VARCHAR2 (1),
Aut_Apellido VARCHAR2 (30) NOT NULL,
Aut_Fecha_Nac DATE,
Aut_Genero VARCHAR2 (1) NOT NULL,
Aut_Contacto VARCHAR2 (30),
Aut_Otros_Detalles VARCHAR2 (200)
) ;

CREATE TABLE Clientes
(
Cli_ID NUMBER (8),
Cli_Nombre VARCHAR2 (30) NOT NULL,
Cli_Direccion VARCHAR2 (40) NOT NULL,
Cli_Telefono VARCHAR2 (15),
Cli_Email VARCHAR2 (30)
) ;

CREATE TABLE Categorias_Libros
(
Cat_ID number(8),
Cat_Descripcion varchar2(60) NOT NULL
) ;

CREATE TABLE Libros
(
Lib_ID NUMBER (8),
Lib_Aut_ID NUMBER (8) NOT NULL,
Lib_Cat_ID NUMBER (8) NOT NULL,
Lib_ISBN VARCHAR2 (15) NOT NULL,
Lib_Fecha_Publicacion DATE,
Lib_Fecha_Adquirido DATE,
Lib_Titulo_Obra VARCHAR2 (100) NOT NULL,
Lib_Precio_Recomendado NUMBER (8,2) NOT NULL,
Lib_Comentario VARCHAR2 (200)
) ;

CREATE TABLE Pedidos
(
Ped_ID NUMBER (8),
Ped_Cli_ID NUMBER (8) NOT NULL,
Ped_Fecha_Pedido DATE NOT NULL,
Ped_Monto_Pedido NUMBER (8,2) NOT NULL
) ;

CREATE TABLE Detalle_Pedidos
(
Det_ID NUMBER (8),
Det_Ped_ID NUMBER (8) NOT NULL,
Det_Lib_ID NUMBER (8) NOT NULL,
Det_Precio_Acordado NUMBER (8,2) NOT NULL,
Det_Comentario VARCHAR2 (200)
) ;

prompt ...Creando las PK
 
alter table autores add constraint aut_id_pk primary key (aut_id);
alter table clientes add constraint cli_id_pk primary key (cli_id);
alter table pedidos add constraint ped_id_pk primary key (ped_id);
alter table categorias_libros add constraint cat_id_pk primary key (cat_id);
alter table libros add constraint lib_id_pk primary key (lib_id);
alter table detalle_pedidos add constraint det_id_pk primary key (det_id);
 
prompt ...Creando las FK

alter table libros add CONSTRAINT Lib_Aut_fk FOREIGN KEY (Lib_Aut_ID) REFERENCES autores (Aut_ID);
alter table libros add CONSTRAINT Lib_Cat_fk FOREIGN KEY (Lib_Cat_ID) REFERENCES categorias_libros (Cat_ID);
alter table pedidos add CONSTRAINT Ped_Cli_fk FOREIGN KEY (Ped_Cli_ID) REFERENCES clientes (Cli_ID);
alter table detalle_pedidos add CONSTRAINT Det_Ped_fk FOREIGN KEY (Det_Ped_ID) REFERENCES pedidos (Ped_ID);
alter table detalle_pedidos add CONSTRAINT Det_Lib_fk FOREIGN KEY (Det_Lib_ID) REFERENCES libros (Lib_ID);

prompt ...Creando los Indices

CREATE INDEX ISBN_idx1 ON Libros (Lib_ISBN);


lib_popul.sql

(Solo dejo ejemplo del script)

REM INSERTING into CATEGORIAS_LIBROS
Insert into CATEGORIAS_LIBROS (CAT_ID,CAT_DESCRIPCION) values (1,'Universal');
Insert into CATEGORIAS_LIBROS (CAT_ID,CAT_DESCRIPCION) values (2,'Terror');

REM INSERTING into AUTORES
Insert into AUTORES (AUT_ID,AUT_NOMBRE,AUT_INICIAL_MEDIO,AUT_APELLIDO,AUT_FECHA_NAC,AUT_GENERO,AUT_CONTACTO,AUT_OTROS_DETALLES) values (1,'Louisa','M','Alcott',null,'F','null','null');
Insert into AUTORES (AUT_ID,AUT_NOMBRE,AUT_INICIAL_MEDIO,AUT_APELLIDO,AUT_FECHA_NAC,AUT_GENERO,AUT_CONTACTO,AUT_OTROS_DETALLES) values (2,'Isabel',null,'Allende',null,'F','null','null');

REM INSERTING into CLIENTES
Insert into CLIENTES (CLI_ID,CLI_NOMBRE,CLI_DIRECCION,CLI_TELEFONO,CLI_EMAIL) values (1,'Gonzalez Edgardo','Incas 2331','2449735','egonzalez@yaju.com');
Insert into CLIENTES (CLI_ID,CLI_NOMBRE,CLI_DIRECCION,CLI_TELEFONO,CLI_EMAIL) values (2,'Muñoz Edith','Aztecas 6753','8752055','emunoz@jotmail.com');

REM INSERTING into LIBROS
Insert into LIBROS (LIB_ID,LIB_AUT_ID,LIB_CAT_ID,LIB_ISBN,LIB_FECHA_PUBLICACION,LIB_FECHA_ADQUIRIDO,LIB_TITULO_OBRA,LIB_PRECIO_RECOMENDADO,LIB_COMENTARIO) values (1,1,7,'950-08-1521-4',to_timestamp('01-JAN-03 12.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('23-NOV-06 12.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),'Mujercitas',24.2,'Null');
Insert into LIBROS (LIB_ID,LIB_AUT_ID,LIB_CAT_ID,LIB_ISBN,LIB_FECHA_PUBLICACION,LIB_FECHA_ADQUIRIDO,LIB_TITULO_OBRA,LIB_PRECIO_RECOMENDADO,LIB_COMENTARIO) values (2,2,7,'9789871138906',to_timestamp('02-APR-07 12.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),to_timestamp('11-APR-07 12.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),'Casa de los espíritus',34.5,'Null');

REM INSERTING into PEDIDOS
Insert into PEDIDOS (PED_ID,PED_CLI_ID,PED_FECHA_PEDIDO,PED_MONTO_PEDIDO) values (1,1,to_timestamp('11-FEB-11 12.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),0);
Insert into PEDIDOS (PED_ID,PED_CLI_ID,PED_FECHA_PEDIDO,PED_MONTO_PEDIDO) values (2,3,to_timestamp('11-FEB-11 12.00.00.000000000 AM','DD-MON-RR HH.MI.SS.FF AM'),0);

REM INSERTING into DETALLE_PEDIDOS
Insert into DETALLE_PEDIDOS (DET_ID,DET_PED_ID,DET_LIB_ID,DET_PRECIO_ACORDADO,DET_COMENTARIO) values (1,1,115,34.6,'Null');
Insert into DETALLE_PEDIDOS (DET_ID,DET_PED_ID,DET_LIB_ID,DET_PRECIO_ACORDADO,DET_COMENTARIO) values (2,2,14,32,'Null');

Les dejo el link para bajar los 3 scritps:

http://rapidshare.com/files/455875492/myscripts.rar

Cualquier consulta la pueden hacer a través de los foros de la Comunidad.


Licencia Creative Commons
Crear un esquema de libreria para practicas de consultas SQL por Clarisa Maman Orfali - Fernando Garcia se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

4 comentarios:

  1. Se encuentra abajo el link de los script, los puedes subir nuevamente, gracias.

    ResponderEliminar
  2. muy buen articulo, pero el link de los scripts no funciona.

    Mario

    ResponderEliminar
  3. Buen articulo, pero definitivamente los link no sirven, gracias por su ayuda

    ResponderEliminar
  4. Que significa:
    REM INSERTING INTO TABLE
    SET DEFINE OFF;

    ResponderEliminar