Upload
ariana-ramirez
View
248
Download
0
Embed Size (px)
Citation preview
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 1/17
Sistemas Manejadores de Bases de Datos y Bases de Datos
BASE DE DATOS: Colección de archivos que alojan y guardan la relación existe entre registros
MANEJADOR DE BD(DBMS):Grupo de programas escritos que pueden definir y localizar datos existentes en
una bd.
TIPOS DE ORGANIZACON:
FISICA: Espacio y ubicación para alojar datos.
LOGICA: Relaciones lógicas que están almacenadas en bd, sus elementos son:
• ENTIDAD: Objeto particular que es representado en una base de datos(tabla)
• RELACION: Correspondencia entre entidades(llaves).
o UNO A UNO: Un padre le corresponde a un hijo
o UNO A MUCHO: Un padre le corresponden n hijos
o MUCHOS A MUCHOS: Un padre le corresponden n hijos y cada hijo le corresponden n padres.
TIPOS DE BD:
• JERARQUICAS: Basada en una relación uno a uno o uno a muchos, de arriba abajo entre los datos.
• RED:(mediante un algoritmo, para accesar las tablas) Establece relaciones desde uno a uno, uno a
muchos y muchos a muchos. Apropiada para el rápido procesamiento de altos volúmenes de
información.
• RELACIONAL:(se maneja mediante algún dato que las relacione) Almacenamiento en tablas(renglones y
columnas), una fila corresponde a un registro y columna a un solo campo del registro. La relación se
mantiene atendiendo la unión de columnas comunes(integridad referencial).
Ventajas de un DBMS.
• Velocidad. Los datos accedidos rápidamente.
• Seguridad. acceso a datos controlado
• Reduce la redundancia de datos. Los datos sólo pueden ser almacenados una vez.
• Datos compartidos. Más de una persona puede acceder a los mismos datos.
• Integridad de los datos. Puede ser mantenida exacta y consistentemente.
• Almacenamiento lógico de los datos. No es necesario conocer dónde se encuentran los datos
almacenados, es suficiente hacer referencia lógica a los datos.
SQL
SQL (Structure Query Language). Es un lenguaje de manipulación de datos, en combinación con un manejador
de base de datos permite acceder y manipular datos. Y son accedidos a través de QUERIES, que son sentencias
casi en lenguaje inglés
DB2
Características de DB2: Utiliza lenguaje SQL (Structure Query Language), para acceder a los datos.
-Data Definition Language (DDL). Definición de las tablas de las bases de datos. Manipula la estructura de las
tablas. CREATE, ALTER, DROP
-Data Manipulation Language (DML). Permite la manipulación o procesamiento de los datos de las tablas.
SELECT, UPDATE, INSERT, DELETE
-Control. Destinados a permitir o denegar los niveles de accesos a las tablas.(a los usuarios, y principalmente al
DBA) GRANT, REVOKE
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 2/17
TERMINOS DB2
TABLA: Es similar a un archivo, se encuentra compuesta de columnas y renglones.
Vista: Es una representación alternativa de los datos de una o más tablas.
Funciones básicas de SQL.
-Seleccionar (acceder) datos de las tablas (SELECT).
SELECT [*][nombre_columna1,nombre_columnaN] FROM tabla WHERE condición
SELECT
Selección de todos los registros SELECT * FROM PRESIDENTES
Selección de datos de columnas separadas por comas(,) y cuyo orden aparecerá en el orden especificado en el
query SELECT PRE_NOMBRE, PRE_SEXO FROM PRESIDENTES
Selecciona los datos de las columnas especificadas por su posición y en dicho orden en que se especifica en el
query SELECT 5,1 FROM PRESIDENTES
La sentencia SELECT DISTINCT permite seleccionar datos de la tabla y eliminar de la selección aquellos
duplicados. El resultado de los renglones es secuenciado en las columnas de izquierda a derecha ORDER BY
puede ser usado para controlar la secuencia.
WHERE
- WHERE. Permite establecer condiciones especificas de la selección de datos, donde, Valor puede ser
numérico, alfanumérico o variable, donde los valores alfanuméricos van entre apóstrofes
SELECT PRE_NOMBRE FROM PRESIDENTES WHERE PRE_SEXO = 'M'
Operadores de comparación. = Igual, <> No igual, > Mayor, >= Mayor o igual, < Menor, <= Menor o igual .
WHERE puede ser combinado con las cláusulas AND y OR.
OR - Permite vincular las condiciones de búsqueda en un query, la selección regresa los registros que cumplan
con alguna de las condiciones especificadas.
SELECT PRE_NOMBRE, PRE_OFIC,PRE_SEXO FROM PRESIDENTES WHERE PRE_OFIC = ‘TORONTO’
OR PRE_OFIC = ‘GENOVA’
AND - Se utiliza para vincular las condiciones de búsqueda en un query, la selección regresa los registros que
cumplan con todas las condiciones especificadas.
SELECT STAFF_NOMBRE,STAFF_SALARIO,STAFF_PUESTO FROM STAFF WHERE STAFF_PUESTO
=‘DIRECTOR’ AND STAFF_SALARIO > 40000
OR y AND múltiples. Se puede vincular más de una condición a través de OR y AND
SELECT PRE_NOMBRE, PRE_ANTI FROM PRESIDENTES WHERE PRE_NOMBRE= ‘JOHNSON S L’ OR
PRE_SEXO = ‘F’ OR PRE_ANTI > 4
SELECT PRE_NOMBRE, PRE_ANTI FROM PRESIDENTES WHERE PRE_NOMBRE= ‘JOHNSON S L’ AND
PRE_SEXO = ‘F’ AND PRE_ANTI > 4
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 3/17
OR y AND combinados. Se puede vincular más de una condición a través de OR y AND en forma combinada.
SQL evalúan primero las condiciones AND, en caso de que no sean utilizados paréntesis.
SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE DEPARTS > 'PM1200'
AND DESTINATION = 'NEW YORK' OR DESTINATION = 'NEWARK'
IN
Esta cláusula se usa para sustituir los OR’s en una misma columna.
SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE FLIGHT IN (101,184,193)
BETWEEN, esta cláusula permite seleccionar un rango de valores.
SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE FLIGHT >=101 AND
FLIGHT <= 142
LIKE, esta cláusula en conjunción con el signo de “%” o “_” permite buscar en una columna un subconjunto de
caracteres. % Ignora de cero a cualquier número de caracteres. _ Ignora exactamente un carácter.
SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE DESTINATION LIKE
‘%YORK’ (Selecciona los que tengan cualquier o ningún carácter y el patrón YORK)
SELECT STAFF_NOMBRES, STAFF_SALARIOS, STAFF_PUESTO FROM STAFF WHERE STAFF_PUESTO
LIKE ‘VEN%’ (Selecciona los que empiezan con el patrón VEN y después cualquier o ningún caracter )
SELECT STAFF_NOMBRES, STAFF_SALARIOS, STAFF_PUESTO FROM STAFF WHERE STAFF_NOMBRE
LIKE ‘__A%’ (Ignora las primeras 2 posiciones del nombre y comienza con el patrón A y después cualquier
caracter o ninguno)
NOT LIKE, esta combinación hace lo contrario a like, Excluye los que empiezan con el patrón VEN y después
cualquier o ningún caracter
SELECT STAFF_NOMBRES, STAFF_SALARIOS, STAFF_PUESTO FROM STAFF WHERE STAFF_PUESTO
NOT LIKE ‘VEN%’
Paréntesis y cláusula WHERE.
• Los paréntesis se pueden utilizar para eliminar el orden en que SQL evalúa las expresiones.
• El uso de paréntesis con múltiples condiciones de búsqueda permite mejorar la legibilidad de la consulta.
• El orden de búsqueda cuando se usan los paréntesis es:
o Se evalúan las expresiones encerradas en paréntesis
o Son consideradas las condiciones vinculadas con AND
o Se evalúan las condiciones vinculadas con OR
o Los paréntesis se pueden utilizar para eliminar el orden en que SQL evalúa las expresiones.
o El uso de paréntesis con múltiples condiciones de búsqueda permite mejorar la legibilidad de la
consulta.
o El orden de búsqueda cuando se usan los paréntesis es:
Se evalúan las expresiones encerradas en paréntesis
Son consideradas las condiciones vinculadas con AND
Se evalúan las condiciones vinculadas con OR
SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE (DESTINATION = 'NEW
YORK' OR DESTINATION = 'NEWARK‘) AND DEPARTS > 'PM1200
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 4/17
Uso de valores Nulos en condiciones.
Los valores nulos hacen referencia a un valor especial que indica ausencia de valor. En algunos manejadores se
representan por un guión ‘-’.
Reglas de manejo para valores nulos:
• Si una condición es aplicada en una columna que contiene valores nulos, los registros no son
seleccionados.
• Si se realiza un cálculo utilizando una columna que contenga valores nulos, los registros que contienen
nulos serán ignorados.
SELECT COM_NAME, COM_JOB, COM_SALARY, COM_COMM
FROM COMMISSION
WHERE COM_JOB = ‘CLERK’ AND COM_COMM < 1000.00
Selección de valores nulos en una columna:
SELECT columna1,…,columnaN
FROM tabla
WHERE columna IS NULL
Selección de valores no nulos en una columna:
SELECT columna1,…, columnaN
FROM tabla
WHERE columna IS NOT NULL
ELECT con valores calculados. Se puede generar una columna con el resultado de un cálculo.
+ : Sumar * : Multiplicar -: Restar / : Dividir
SELECT COM_JOB, COM_SALARY, COM_COMM, COM_SALARY + COM_COMM
FROM COMMISSION
WHERE COM_JOB = ’SALES’
SELECT COM_JOB, COM_SALARY, COM_COMM, COM_SALARY + COM_COMM
FROM COMMISSION
WHERE COM_SALARY +
COM_COMM > 15000
AND COM_JOB = ‘SALES
Funciones de columnas. Reducir los datos de una columna en un valor único.
• Funciones usadas solamente para datos numéricos.
SUM Total de los valores en una columna.
AVG Promedio de los valores en una columna.SUM (Columna1+Columnan) AVG (Columna1+Columnan)
SELECT SUM(COM_SALARY),
AVG(COM_SALARY),
MIN(COM_SALARY),
MAX(COM_SALARY)
FROM COMMISSION
WHERE COM_JOB = ‘CLERK’
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 5/17
• Funciones usadas para cualquier otro tipo de datos.
MIN Valor mínimo en una columna.
MAX Valor máximo en una columna.
COUNT Número de ocurrencias que cumplen la condición buscada, Número de renglones que cumplen
la condición.
COUNT( DISTINCT Columna ) Número de valores únicos en la columna.
SELECT COUNT(DISTINCT COM_JOB),
COUNT(*)
FROM COMMISSION
WHERE COM_SALARY > 0
Asignar literales para identificar los resultados; estas deben estar entre apóstrofe(‘).
SELECT ‘SUM SALARY : ‘ ,
SUM(COM_SALARY),
‘AVG SALARY : ‘,
AVG(COM_SALARY),
FROM COMMISSION
WHERE COM_JOB =
‘CLERK’
SUM SALARY : 44767.20 AVG SALARY : 14922.40
GROUP BY agrupa columnas.
• Puede tener columnas múltiples.
• Las columnas no necesitan ser parte de las indicadas en el select.
• Las columnas seleccionadas deben formar parte de una función o estar indicadas en el GROUP BY.
• Un renglón de sumatoria es mostrado por cada valor existente en la columna especificada en el GROUP
BY. Todos los nulos son un grupo único.
SELECT COM_JOB, SUM(COM_SALARY),
SUM(COM_COMM)
FROM COMMISSION
WHERE COM_JOB <> ‘MGR’
GROUP BY COM_JOB
ORDER BY 3
DATE, TIME, TIMESTAMP son datos almacenados internamente como decimal empacado, pero sin signo
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 6/17
En la programación se trata solamente con el formato externo, el cual es una cadena de Caracteres
Registros especiales:
DATE: Fecha del día de hoy TIME:Hora del día de hoy TIMESTAMP: Fecha y hora del día de hoy
SELECT FECHA
FROM TABLA
WHERE FECHA < CURRENT DATE
ORDER BY
ORDER BY: Especifica el orden en el que deben ser listados los datos accedidos, los resultantes de la consulta
están ordenados en función de lo indicado en el ORDER BY.
En vez de utilizar los nombres de las columnas con la cláusula ORDER BY, se pueden utilizar números que
correspondan al orden en que las columnas se listan en la sentencia SELECT
SELECT PRE_NOMBRE, PRE_SEXO,PRE_ANTI FROM PRESIDENTES WHERE PRE_NAC > 1921 ORDER
BY 2, 3
ORDENACION POR UNA COLUMNA
SELECT PRE_NOMBRE, PRE_SEXO,PRE_OFIC FROM PRESIDENTES ORDER BY PRE_NOMBRE
ORDENACION POR MAS DE UNA COLUMNA
SELECT PRE_NOMBRE, PRE_SEXO,PRE_ANTI FROM PRESIDENTES WHERE PRE_NAC > 1921 ORDER
BY PRE_SEXO, PRE_ANTI
ORDENADOS ASCENDENTE Y DESCENDENTE
SELECT PRE_ANTI FROM PRESIDENTES ORDER BY PRE_ANTI ASC
SELECT PRE_ANTI FROM PRESIDENTES ORDER BY PRE_ANTI DESC
Insertar o adicionar datos a las tablas (INSERT).
INSERT , permite la adición nuevos registros a una tabla existente.
INSERT INTO tabla [ (columna1, columna2, columnan) ]
VALUES (valor1, valor2, valorN )
Reglas para uso del comando INSERT:
• Debe haber un valor para cada columna de la tabla.
• Los valores deben estar listados en el orden en que las columnas aparecen en la tabla, en caso de no
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 7/17
haber listado las columnas ya que estas son opcionales.
• Los valores deben estar separados por comas.
• Cada campo alfanumérico (caracter) debe estar entre comillas. Los valores numéricos no requieren
comillas.
Inserción de registros sin especificación de columnas. El orden de los valores debe ser el mismo en el que seencuentran organizadas las columnas de la tabla.
Inserción de registros especificando los nombres de columnas. De esta forma se pueden asignar los valores a los
campos directamente en cualquier orden, sin llevar el mismo orden en que se encuentran organizadas lascolumnas de la tabla.
Inserción de registros con valores nulos. El valor nulo sólo puede ser asignado para aquellas columnas que
fueron definidas para valores nulos. Cuando la columna maneja nulos, ésta puede ser omitida del query.
Inserción de renglones múltiples; para esto es necesario tener una tabla que contenga las mismas columnas
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 8/17
Actualizar, modificar o dar mantenimiento a las tablas (UPDATE).
UPDATE, permite la actualización de nuevos registros a una tabla existente. Si la cláusula WHERE es omitida, la
actualización se realiza en todos los registros de la tabla.Si se desea actualizar mas de una columna, se deberá
separar por una coma y un espacio
UPDATE TELEFONOS
SET EXT = 111,
NO_TELEF = 6666666666
WHERE APELLIDO = ‘ DIETZ’
AND NOMBRE = ‘ELLEN’
Actualización de TODOS los registros en una columna especifica.
UPDATE TELEFONOS
SET NO_TELEF = 4444444444
Eliminar o borrar datos de las tablas (DELETE).
DELETE permite el borrado de registros de una tabla. Si la cláusula WHERE es omitida, todos los registros de la
tabla son borrados. La tabla queda vacía.
Eliminación de registros con una condición especifica
DELETE FROM TELEFONOS WHERE APELLIDO = ‘BAKER
Eliminación de registros de una tabla DELETE FROM TELEFONOS
SUBSELECT.
Es un select dentro de la condición del Where, del Select principal para que nos proporcione el valor o los
valores de condición para satisfacer al select principal ESTO ES EN LA MISMA TABLA. Cuando DB” encuentra
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 9/17
un Select dentro de otro, evaluara primero el select interno y su resultado se substituira para evaluar el select
principal. Se pueden codificar hasta cinco niveles (subselect`s).
• SUBSELECT De Valor único, ya que la evaluación del subselect , nos da como resultado un único
valor.
•
SUBSELECT De múltiples valores, la evaluación del subselect, devuelve múltiples valoreso ALL La condición deberá cumplirse con todos los valores devueltos.
SELECT EMNUME, EMAPEL, EMFENT, EMSALA, EMCTRA, EMDPTO
FROM TAEMPL
WHERE EMSALA > ALL (SELECT EMSALA
FROM TAEMPL
WHERE EMDPTO = 30)
ORDER BY EMNUME
o ANY La condición deberá cumplirse con alguno de los valores devueltos (acepta también el
SOME)
SELECT EMNUME, EMAPEL, EMFENT, EMSALA, EMCTRA, EMDPTO
FROM TAEMPL
WHERE EMSALA > ANY (SELECT EMSALA
FROM TAEMPL
WHERE EMDPTO = 30)
ORDER BY EMNUME
SUBSELECT Relacionada: son aquellas en que debe evaluarse o calcularse para cada fila candidata al Select
principal, las subselects vistas anteriormente se evaluaban y su resultado servía para todas las filas candidatas
del select principal.
SELECT EMNUME, EMAPEL, EMFENT, EMSALA, EMCTRA, EMDPTO
FROM TAEMPLWHERE EMSALA > (SELECT AVG(EMSALA)
FROM TAEMPL
WHERE EMDPTO = A.EMDPTO)
ORDER BY EMNUME
JOIN: Es un select que se crea para el acceso a varias tablas, donde califica tanto el nombre de la tabla como
los campos a ocupar.
SELECT A.EMAPEL, A.EMNUME, B.EMAPEL, A.EMFENT, B.NUMEMP B.EMPENTR,
FROM EMPL A, REGTO B
WHERE A.EMFENT = B.EMPENTR
AND A.EMNUME > B.NUMEMP
UNION: Consiste en efectuar varias consultas unidas por la palabra UNION.que genera un solo resultado con la
intervencion de varias tablas, las columnas por las que se realiza la UNION deben de ser de tipo compatible, asi
como en longitudes, no podrá utilizarse el UNION en subselect`s ni al crear una vista, asignará los nombres de
las columnas de l Select principal
UNION ALL
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 10/17
UNION (SIMPLE)
SELECT DPJDTO DPJDTO
FROM TDEPTO 000500
UNION 000600
SELECT EMNUME 000700
FROM TAEMPL 001000
WHERE EMCTRA > = 200
ORDER BY 1
Sentencias SQL.
Deben ser codificadas al inicio y final de cada sentencia, entre las columnas 12 y 72 del programa COBOL
EXEC SQL que indica el inicio de la sentencia SQL
SELECT *
INTO :DCLGEN-EMP
FROM EMPLEADOS
END-EXEC que indica el final de la sentencia SQL
Variables Host: Son los campos de trabajo declarados en la Working-Storage a imagen en tipo y longitud de
cómo fueron definidos en la Base de Datos. Estos campos pueden ser usados directamente entre los dos
lenguajes. Pueden ser usadas para realizar INSERT, UPDATE, DELETE y recibir valores de columnas. Pueden
ser usadas en cláusulas WHERE.
Reglas del uso de variables Host:
• No necesariamente deben ser iguales a los nombres de las columnas.
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 11/17
• Deben ser definidas en la Working-Storage.
• Cuando son usadas en una sentencia SQL deben ser precedidas por ‘:’.
• La definición de las variables host debe coincidir con cada una de las columnas definidas en la tabla.
• La longitud y el tipo definidos para las variables Host, deben ser idénticas a la
definición de las columnas de la tabla DB2.
INCLUDE: Permite integrar copy’s a la Working-Storage:
EXEC SQL
INCLUDE copy
END-EXEC.
La definición de la tabla en DB2, así como su definición COBOL generalmente se encuentran en un solo copy,
los cuales son llamados DCLGEN.
Comunicación y manejo de errores.
La ejecución de un query involucra un estatus de ejecución, a través de códigos de retorno o error. Estos códigos
de retorno son informados en la SQLCA (SQL Communication Area), la cual es incluida en la Working Storage
por medio de la sentencia INCLUDE.
El campo más usado de la SQLCA es: SQLCODE.El cual indica si la sentencia SQL fue ejecutada o no
correctamente. Los valores más frecuentes de este campo son:
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 12/17
Comunicación y manejo de errores
DISPLAY.
Es una sentencia COBOL que permite desplegar mensajes de error durante la ejecución de un programa
Selección de información simple.
A través de la sentencia SELECT se puede acceder a un sólo renglón de la tabla que cumpla con el criterio
establecido.
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 13/17
EXEC SQL
SELECT nombre_columna
INTO :host-variable
FROM tabla
WHERE condición.
END-EXEC.
• Un CURSOR, es un método de SQL para acceso de uno o más renglones que cumplen un criterio
establecido. El uso de un cursor requiere de cuatro sentencias: DECLARE, OPEN, FETCH, CLOSE.
o La sentencia DECLARE, define y le da nombre al área de trabajo que alojará los renglones
recuperados de la ejecución de la sentencia SQL incluida en el cuerpo del DECLARE.
o La sentencia DECLARE, se incluye en la working-storage después de los INCLUDE de las tablas
a utilizar en el programa y no es una sentencia ejecutable.
o La opción WITH HOLD evita que el cursor se cierre como consecuencia de una operación
COMMIT.
o Todos los cursores se cierran implícitamente con una operación ROLLBACK.
o La sentencia OPEN, activa el cursor declarado en working-storage y es la instrucción que ejecuta
el SELECT declarado en el cursor alojando los datos que cumplen con la condición.
Sintaxis Ejemplo
EXEC SQL
OPEN nombre_cursor
END-EXEC.
MOVE WS-SALARIO TO EMP-SALARIO.
EXEC SQL
OPEN EMPLEADO_CURSOR
END-EXEC.
o La sentencia FETCH, accede uno a uno los registros del cursor empezando desde el primero.
Sintaxis Ejemplo
EXEC SQL
FETCH nombre_cursor
INTO :HOST1, :HOST2, :HOSTn
END-EXEC.
EXEC SQL
FETCH EMPLEADO_CURSOR
INTO :EMP-ID, :EMP-NOMBRE,
:EMP:_SALARIO, :EMP_COMM
END-EXEC.
o La sentencia CLOSE, libera los recursos asignados al cursor.
Sintaxis Ejemplo
EXEC SQL
CLOSE nombre_cursor
END-EXEC.
EXEC SQL
CLOSE EMPLEADO_CURSOR
END-EXEC.
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 14/17
Inserción de registros en una tabla. Actualización de registros en una tabla
EXEC SQL
INSERT INTO nombre-tabla
VALUES (:variable-host1, :variable-host2)
END-EXEC
EXEC SQL
UPDATE nombre-tabla
SET columna1 = :variable-host1,
columna2 = :variable-host2
WHERE condición
END-EXEC
Eliminación de registros en una tabla.
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 15/17
EXEC SQL
DELETE FROM nombre-tabla
WHERE condición
END-EXEC
Termina la unidad de trabajo actual y empieza una nueva.
EXEC SQL
COMMIT
END-EXEC.
• Actualiza y confirma todos los cambios hechos por ALTER, CREATE, DROP, DELETE, INSERT,
UPDATE, GRANT, REVOKE registrados en el log.
• Todos los cursores abiertos con WITH HOLD, se conservan así como los SELECT preparados para
estos cursores.
• Los cursores abiertos sin WITH HOLD se cierran y las declaraciones preparadas, para ellos se
destruyen.
• Al final del proceso de una aplicación, se considera una aplicación implícita de COMMIT si termina
exitósamente o de ROLLBACK si termina con código de retorno de error.
ROLLBACK elimina las modificaciones hechas a la base de datos por ALTER, CREATE, DROP, INSERT,
DELETE, UPDATE, GRANT, REVOKE HASTA la última actualización efectuada.
5/12/2018 DB2 - slidepdf.com
http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 16/17
EXEC SQL
ROLLBACK
END-EXEC.
• Los cursores abiertos se cierran.
• Todas las páginas con LOCK se liberan.
Modificación de Tablas en COBOL.
05 WS-INCREMENTO PIC 9(03)V99 VALUE 200.00
05 WS-NUM-UPDATE PIC 9(04) VALUE 1000.
05 WC-CONT-REGS PIR 9(04) VALUE ZEROES.
PERFORM LEE-CURSOR
EXEC SQL
UPDATE COMMISSION
SET COM_SALARY = COM_SALARY + :WS-INCREMENTO
END-EXEC.
IF SQLCODE = 0
ADD 1 TO WC-CONT-REGS
IF WC-CONT-REGS > = WS-NUM-UPDATE
PERFORM 900-COMMIT
MOVE ZEROES TO WC-CONT-REGS
END-IF
ELSE
PERFORM 910-ABORTA
END-IF.
------------------------------------------------------------------------------------------------------------------------------
900-COMMIT.
EXEC SQL
COMMIT
END-EXEC.
DISPLAY ‘CAMBIOS EFECTUADOS A LA BASE DE DATOS’.
900-COMMIT-EXIT.
EXIT.
910-ABORTA.
EXEC SQL
ROLLBACK
END-EXEC.
DISPLAY ‘ ERROR EN PROCESO LOS CAMBIOS NO SE EJECUTARON’.910-ABORTA-EXIT.
EXIT.