Beruflich Dokumente
Kultur Dokumente
1 14/04/2012
Tipos de SQL
Tres tipos:
Interactivo Embebido
Esttico Dinmico
Pg: 2
14/04/2012
Esquemas:
Claves:
Tablas:
Table spaces
Pg: 3
Catlogo
Logs
Buffer pool
Pg: 4
14/04/2012
Reglas de negocio
Integridad referencial Restricciones de integridad referencial Restricciones Triggers:
Pg: 5
14/04/2012
Identificadores
SQL Host
Pg: 6
14/04/2012
Tipos de datos
Columnas Constantes Expresiones Funciones Variables Host Registros especiales
Pg: 7
14/04/2012
Tipos de columnas
Carcter
Fijos
Decimales
Numricos
Enteros
Precision sencilla (Real) Doble precisin (Double Float) Decimal (Decimal(e,d)) (Numeric(e,d))
Smallint Integer
Fecha
Fecha
Pg: 8
Nulos (Null)
Funciones
Pg: 9
14/04/2012
Predicados
Between, Null
Pg: 10
14/04/2012
Sentencias SQL
SELECT
DELETE UPDATE INSERT CURSOR SET
14/04/2012
Pg: 11
Select
SELECT ALL|DISTINCT *|columna, FROM tabla|view alias,
Pg: 12
14/04/2012
EJERCICIOS I
Visualizar las filas de la tabla PERSONAL Visualizar las filas de la tabla DEPARTAMENTOS Visualizar las filas de ambas tablas a la vez Visualizar el valor de PUESTO de la tabla personal para todas las filas Visualizar el valor de PUESTO de forma que slo se muestren los valores que sean distintos
Pg: 13
14/04/2012
Where
WHERE predicado AND|OR predicado
Pueden utilizarse parntesis para establecer el orden de evaluacin de los predicados Se aplican a las sentencias SELECT, UPDATE Y DELETE
Pg: 14
14/04/2012
EJERCICIOS II
Visualizar el personal del departamento 20 Visualizar los vendedores (SALES) del departamento 38 Visualizar las personas con una antigedad > 9 aos Visualizar las personas con antigedad igual a 3, 5 7 aos, Visualizar las personas con antigedad entre 3 y 7 aos Visualizar las personas cuyo nombre comience por G Visualizar las personas cuyo nombre termine por S Visualizar las personas cuyo nombre contenga AR Visualizar las personas con nombre de 6 car. de longitud Visualizar los vendedores (SALES) del oeste (WESTERN)
Pg: 15
14/04/2012
Pg: 16
14/04/2012
FUNCIONES DE COLUMNA
AVG COUNT y COUNT_BIG MAX y MIN SUM
Pg: 17
14/04/2012
FUNCIONES DE COLUMNA II
AVG(columna)
Pg: 18
14/04/2012
Pg: 19
14/04/2012
FUNCIONES DE COLUMNA IV
MAX(columna) MIN(columna)
FUNCIONES DE COLUMNA V
SUM(columna)
Obtiene la suma de todos los valores de la columna. La columna debe ser numrica.
Pg: 21
14/04/2012
Obtener la suma de los salarios de cada uno de los departamentos Contar el numero de personas, agrupadas por el puesto que ocupan Obtener la media de las comisiones, el total de las comisiones y el nmero de personas de cada uno de los departamentos Obtener la media del gasto total (salario + comisiones), el total del gasto total y el nmero de personas de cada uno de los departamentos
14/04/2012
Pg: 22
Having (Ejercicios V)
HAVING predicado AND|OR predicado
Obtener la media del gasto total (salario + comisiones), el total del gasto total y el nmero de personas de cada uno de los departamentos, para los departamentos de ms de 1 persona Obtener la media del gasto total (salario + comisiones), el total del gasto total y el nmero de personas de cada uno de los departamentos, para los departamentos con gasto medio mayor de 1500
14/04/2012
Pg: 23
Obtener, en la misma lista de salida, los nombres de las personas con un salario > 15.000 y los nombres de los departamentos del oeste WESTERN
Pg: 24
14/04/2012
Update
UPDATE tabla|view
SET columna = expresion|literal|columna, columna = expresion|literal|columna, SET columna = expresion|literal|columna
WHERE
Pg: 25
14/04/2012
EJERCICIOS VII
Modificar la antigedad de GRAHAM a 15 aos Modificar el salario de GRAHAM aadindole 100 $ Aumentar las comisiones de todos los vendedores (SALES) sumndoles un 10% Aumentar 1000 $ a la comisin de las personas de los departamentos del oeste (WESTERN)
Pg: 26
14/04/2012
Delete
DELETE FROM tabla|view WHERE
Pg: 27
14/04/2012
EJERCICIOS VIII
Copiar la tabla de personal con el nombre PERSONAL_OLD Eliminar la fila correspondiente a GRAHAM Borrar las filas de las personas de los departamentos del oeste (WESTERN)
Pg: 28
14/04/2012
Insert
INSERT INTO tabla|view [(columna, columna )] VALUES( expresion, expresion ) INSERT INTO tabla|view [(columna, columna )] SELECT
Pg: 29
14/04/2012
EJERCICIOS IX
Id = 991 Nombre = Martn Dep = 10 Puesto = SALES Anos = 2 Salario = 1000 Comisin = 200
Crear la tabla PERSONAL_NEW vacia Insertar las filas de la tabla PERSONAL en PERSONAL_NEW Insertar en la tabla de personal una fila con los siguientes valores:
Id = 992
Visualizar las filas de PERSONAL cuyo NOMBRE sea nulo Visualizar las filas de PERSONAL cuyo NOMBRE sea no nulo
14/04/2012
Pg: 30
Privilegios
GRANT { ALL [PRIVILEGES] | (1) } ON TABLE tabla o view, ... TO { public | usuario, ...} WITH GRANT OPTION (1) ALTER, DELETE, INDEX, INSERT, SELECT, TRIGGERS, REFERENCES (columna, ...), UPDATE (columna, ...),
REVOKE { ALL [PRIVILEGES] | (2) } ON TABLE tabla o view, ... FROM { public | usuario, ...} (2) ALTER, DELETE, INDEX, INSERT, SELECT, TRIGGERS, REFERENCES, UPDATE
Pg: 31
14/04/2012
Proceso de compilacin
Informe
Fuente
Precompilador Precompilador
DBRM
Informe Compilador
Fuente traducido
BIND
Objeto
Linkeditor
Load
Pg: 32
14/04/2012
Pg: 33
14/04/2012
Pg: 34
14/04/2012
SQLCA
01 SQLCA. 05 05 05 05
05 05 05
05
Pg: 35
SQLCAID SQLCABC SQLCODE SQLERRM. 49 SQLERRML 49 SQLERRMC SQLERRP SQLERRD SQLWARN. 10 SQLWARN0 10 SQLWARN1 10 SQLWARN2 10 SQLWARN3 10 SQLWARN4 10 SQLWARN5 10 SQLWARN6 10 SQLWARN7 SQLEXT. 10 SQLWARN8 10 SQLWARN9 10 SQLWARNA 10 SQLSTATE
Declaracin de tablas
DCLGEN:
Genera
EXEC SQL INCLUDE SQLCA END-EXEC EXEC SQL INCLUDE tablename END-EXEC
Pg: 36
14/04/2012
Gestin de errores
SQLCODE:
Mayor
que cero: Correcto, pero avisos Cero: Correcto Menor que cero: Error, no se recupera nada 100: No se encuentran datos
Pg: 37
14/04/2012
Cursores
EXEC SQL DECLARE nombre INSENSITIVE [SCROLL] SENSITIVE [STATIC] WITH HOLD WITH RETURN
CURSOR
FOR select
END-EXEC
EXEC SQL OPEN nombre END-EXEC EXEC SQL CLOSE nombre END-EXEC
14/04/2012
SET
SET :host-var = [CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP] Ejemplos: SET :FECHA-AYER = CURRENT_DATE 1 DAY SET :FECHA-MES-ANT = CURRENT_DATE 1 MONTH
Pg: 39
14/04/2012
Proceso de compilacin
Informe
Fuente
Precompilador Precompilador
DBRM
Informe Compilador
Fuente traducido
BIND
Objeto
Linkeditor
Load
Pg: 40
14/04/2012
Unidad de trabajo
INSERT INTO EMPLEADOS ( ID, NOMBRE) VALUES (132,JUAN PEREZ)
INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN) INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN) INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN)
Pg: 41
14/04/2012
Unidad de trabajo
INSERT INTO EMPLEADOS ( ID, NOMBRE) VALUES (132,JUAN PEREZ)
INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN) COMMIT INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN) INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN)
Pg: 42
14/04/2012
Unidad de trabajo
INSERT INTO EMPLEADOS ( ID, NOMBRE) VALUES (132,JUAN PEREZ)
INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN) ROLLBACK INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN) INSERT INTO EMP-HIJOS ( ID_EMP, ID, NOMBRE) VALUES (132, 1, JUAN)
Pg: 43
14/04/2012
Declaracin de tablas
DCLGEN:
Genera
EXEC SQL INCLUDE SQLCA END-EXEC EXEC SQL INCLUDE tablename END-EXEC
Pg: 44
14/04/2012
Gestin de errores
SQLCODE:
Mayor
que cero: Correcto, pero avisos Cero: Correcto Menor que cero: Error, no se recupera nada -100: No se encuentran datos
Pg: 45
14/04/2012
EJERCICIOS X
Para obtener la descripcin del puesto se acceder a la tabla de puestos (puestos) Si se produce un error no esperado (DB2) realizar un ROLLBACK y terminar en programa con un cdigo de retorno 333
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3LA EQUITATIVA S.A. PAG.- Z.ZZ9 EJERCICIODB1 FECHA: XX-XX-XXXX GASTOS DE PERSONAL POR DEPARTAMENTO HORA: XX:XX:XX DEPARTAMENTO: 999 - XXXXXXXXXXXXXX ===================================
NUMERO EMPLEADO -------99999 99999 P U E S T O COD. DESCRIPCION --------------------XXXXX XXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXX
N O M B R E --------------XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX
ANTIGEDAD ---------99 99
ZZZZ.ZZ9,99 ZZZZ.ZZ9,99
ZZZZ.ZZ9,99 ZZZZ.ZZ9,99
ZZZZ.ZZ9,99 ZZZZ.ZZ9,99
Pg: 46
14/04/2012
EJERCICIOS XI
(A=Alta, B=Baja, M=Modificacion) (Slo para bajas y modificaciones) (Slo para altas y modificaciones) (Slo para altas y modificaciones) (Slo para altas y modificaciones) (slo para modificaciones) (slo para modificaciones)
Se validar lo siguiente:
El tipo debe ser A, B M El empleado debe ser numrico y existir en personal (para bajas y modif.) El nombre debe estar relleno para altas El puesto debe existir en la tabla puestos (slo altas y modificaciones) El departamento debe existir en la tabla de departamentos (altas y modificaciones) El salario debe ser numrico blancos La Comisin debe ser numrica o blancos
En caso de error se grabar un fichero (COPY ERRORES) con el mismo formato que el de entrada ms un mensaje.
14/04/2012
Pg: 47
EJERCICIOS XI (Cont.)
El nmero de empleado, para las altas, ser el siguiente al mayor existente en la tabla de personal Para las altas el salario y la comisin se tomar de la tabla puestos, en funcin del puesto ocupado Slo se modificarn los campos que sean distintos de blancos Cualquier actualizacin realizada aparecer en el fichero de errores con uno de los siguientes mensajes:
Pg: 48
14/04/2012
EJERCICIOS XI
Nombre de programa Frecuencia de COMMIT Ultimo registro tratado Verifique la existencia del programa en la tabla REARRANQUE (Error en caso contrario (ABEND)) Realice un COMMIT cada n registros (n=fecuencia de commit) Si el ltimo registro tratado de la tabla REARRANQUE est relleno debe comenzar, en el fichero de entrada, por el registro siguiente al indicado en dicha tabla. En caso contrario debe comenzar desde el principio A la terminacin correcta del programa se pondr a ceros el ltimo registro tratado de la tabla REARRANQUE
Pg: 49
14/04/2012