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(D BMS):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: Objet o particular que es representado en una b ase 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 MU CHOS: Un padre le correspond en n hijos y cada hijo le corresponden n padres. TIPOS DE BD: JERARQUIC AS: 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 p rocesamiento de altos volúmenes de información. RELACIONA L:(se maneja mediante algún dato que las relacione) Almacenamiento en tablas(renglones y columnas), una fila corresponde a un registr o 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 consi stentemente. 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

DB2

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.

5/12/2018 DB2 - slidepdf.com

http://slidepdf.com/reader/full/db25571fe4649795991699b07c4 17/17