Taller 2 SQL
Taller 2 SQL
Taller 2 SQL
2) Si ya tiene claro lo solicitado, pero de todas formas necesita mas apoyo para
resolver el problema,
puede continuar con el nivel 'MODERADO'
/*
Abrir ACS y expandir para explorar SCHEMAS
Expandir su Schema de trabajo ISQL36
Explorar los objetos SQL de su Schema y responder las siguientes preguntas:
-- Creación de Tablas
--
-----------------------------------------------------------------------------------
-------------
-- 1. Cree una estructura de tabla llamada FACTURA_XX en su schema de trabajo.
-- NO OLVIDE cambiar XX por el consecutivo de su schema de trabajo.
CALL LABSQLDB2.HINTS_LAB ('201', 'DIFICIL');
-- Ayuda
-- Sentencia SQL
stop;
CREATE TABLE FACTURA_36
(LIKE LABSQLDB2.FACTURA);
stop;
stop;
SELECT * FROM FACTURA_36;
stop;
-- Sentencia SQL
stop;
CREATE TABLE PAGO_36 AS
(SELECT NIT, DOCUMENTO, NRO_DOCUMENTO, NRO_FACT, FECHA_PAGO FROM LABSQLDB2.PAGO)
WITH NO DATA;
stop;
stop;
SELECT * FROM PAGO_36;
stop;
-- Sentencia SQL
stop;
CREATE TABLE PACIENTE_36 AS
(SELECT IDENTIFICACION, TIP_DOC_PAC, NOMBRE_PACIENTE, FCH_NACIMIENTO, SEXO,
DIRECCION, PRIMER_NOMBRE FROM LABSQLDB2.PACIENTE) WITH DATA;
stop;
SELECT * FROM PACIENTE_36;
stop;
-- Sentencia SQL
STOP;
CREATE TABLE DESPACHOS_36 AS
(SELECT * FROM LABSQLDB2.DESPACHOS) WITH DATA;
STOP;
SELECT * FROM DESPACHOS_36; --ORDER BY FECHA_SOLICITUD DESC;
STOP;
ALTER TABLE DESPACHOS_36 ADD MES SMALLINT;
STOP;
-- Alteración de Tablas
--
-----------------------------------------------------------------------------------
-------------
--5. Actualice la columna MES de la tabla DESPACHOS_36.
-- Tome el tiempo de ejecución en ms, ello aparece en el area de mensajes de ACS
CALL LABSQLDB2.HINTS_LAB ('205', 'DIFICIL');
-- Ayuda
-- Sentencia SQL
STOP;
UPDATE DESPACHOS_36 SET MES = MONTH (FECHA_SOLICITUD);
STOP;
-- Sentencia SQL
STOP;
CREATE ALIAS CLIENTE_36 FOR QIWS.QCUSTCDT;
STOP;
-- Sentencia SQL
STOP;
ALTER TABLE DESPACHOS_36 ADD CONSTRAINT CHK_MES CHECK (MES BETWEEN 1 AND 12);
-- Vistas y Catálogos
--
-----------------------------------------------------------------------------------
-------------
--8. Consultar el Catalogo de la base de datos.
-- Se requiere generar una consulta rápida del modelo de datos para ejercicios
posteriores.
CALL LABSQLDB2.HINTS_LAB ('208', 'DIFICIL');
-- Ayuda
/* 208 DIFICIL
Cree una vista llamada DATAMOD en su schema de trabajo basada en el catalogo de
COLUMNAS de Db2
La vista debe incluir todas las filas de tablas que terminen en _XX, (XX es el
consecutivo asignado a su schema de trabajo).
La vista debe contener las siguientes columnas del catalogo:
Nombre del schema: TABLE_SCHEMA
Nombre de tabla: TABLE_NAME
Orden posicional de la columna en la tabla: ?
Nombre de la columna: ?
Tipo de datos: ?
Longitud: ?
Posiciones decimales: NUMERIC_SCALE
Encabezado de Columna: COLUMN_HEADING
-- Sentencia SQL
STOP;
CREATE OR REPLACE VIEW DATAMOD AS
(SELECT DBNAME, TBNAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, LENGTH,
NUMERIC_SCALE, COLUMN_HEADING FROM SYSCOLUMNS WHERE TBNAME LIKE '%36');
STOP;
SELECT * FROM DATAMOD;
stop;
Debe crear una tabla llamada CUSTOMER_XX basada en todas las columnas y datos de un
objeto
ubicado en el schema QIWS y cuyo nombre es QCUSTCDT.
Una vez creada asegurese de ubicar el cursor al final de este comentario y pulse el
ICONO de Insert Generated SQL
Pulse el boton -->ADD y seleccione la tabla recien creada CUSTOMER_XX de su esquema
de trabajo
Deje los valores por omision y pulse el boton --> GENERATE
*** Dada la latencia de la red , este procedimiento puede tardar algunos minutos.
***
Si no pudo completar la actividad via ACS, puede continuar con el siguiente
ejercicio.
*/
-- Sentencia SQL
-- Generar SQL
-- Versión: V7R3M0 160422
-- Generado en: 21/02/13 13:33:25
-- Base de datos relacional: N2104FAW
-- Opción de estándares: ISO
CREATE TABLE ISQL36.CUSTOMER_36 (
CUSNUM NUMERIC(6, 0) NOT NULL DEFAULT 0 ,
LSTNAM CHAR(8) NOT NULL DEFAULT ' ' ,
INIT CHAR(3) NOT NULL DEFAULT ' ' ,
STREET CHAR(13) NOT NULL DEFAULT ' ' ,
CITY CHAR(6) NOT NULL DEFAULT ' ' ,
STATE CHAR(2) NOT NULL DEFAULT ' ' ,
ZIPCOD NUMERIC(5, 0) NOT NULL DEFAULT 0 ,
CDTLMT NUMERIC(4, 0) NOT NULL DEFAULT 0 ,
CHGCOD NUMERIC(1, 0) NOT NULL DEFAULT 0 ,
BALDUE NUMERIC(6, 2) NOT NULL DEFAULT 0 ,
CDTDUE NUMERIC(6, 2) NOT NULL DEFAULT 0 ) ;
-- Sentencia SQL
STOP;
CALL QSYS2.GENERATE_SQL(
DATABASE_OBJECT_NAME => '%_36',
DATABASE_OBJECT_LIBRARY_NAME => 'ISQL36',
DATABASE_OBJECT_TYPE => 'TABLE',
DATABASE_SOURCE_FILE_NAME => 'QSQLSRC',
DATABASE_SOURCE_FILE_LIBRARY_NAME => 'ISQL36',
DATABASE_SOURCE_FILE_MEMBER => 'LAB2A_DDL',
DROP_OPTION => 1,
COMMENT_OPTION => 1,
LABEL_OPTION => 1
);
STOP;
-- También pude generar el DDL y obtener el código fuente en un result set, para
ello
-- ejecute el mismo procedimiento anterior y elimine todos los parámetros
-- que inician con DATABASE_SOURCE_FILE
-- Sentencia SQL
STOP;
CALL QSYS2.GENERATE_SQL(
DATABASE_OBJECT_NAME => '%_36',
DATABASE_OBJECT_LIBRARY_NAME => 'ISQL36',
DATABASE_OBJECT_TYPE => 'TABLE',
DROP_OPTION => 1,
COMMENT_OPTION => 1,
LABEL_OPTION => 1
);
STOP;
-- FIN