You are on page 1of 75

MANUAL DE

ADMINISTRACION


INDICE

Contenido
INDICE ............................................................................................................................................................ 1
La Arquitectura de DB2 ................................................................................................................................. 1
Objetos almacenados en el nivel lgico de la base de datos .................................................................... 1
Objetos almacenados en el nivel fsico de la base de datos .................................................................... 2
Tipos de tablespaces: ................................................................................................................................ 2
Arquitectura general DB2 .......................................................................................................................... 3
El modelo de Procesos, la Memoria y el de Almacenamiento ...................................................................... 4
El Modelo de Procesos .............................................................................................................................. 4
Los Procesos ms comunes en DB2 son ................................................................................................ 4
Nombre del Proceso .................................................................................................................................. 4
Descripcin ................................................................................................................................................ 4
db2syscs (Win) ........................................................................................................................................... 4
b2acd ......................................................................................................................................................... 5
db2wdog .................................................................................................................................................... 5
db2vend ..................................................................................................................................................... 5
db2fmp ...................................................................................................................................................... 5
Los hilos ms comunes en DB2 son ....................................................................................................... 5
Nombre del Hilo ........................................................................................................................................ 5
Descripcin ................................................................................................................................................ 5
db2sysc ...................................................................................................................................................... 5
db2tcpcm ................................................................................................................................................... 5
db2agent ................................................................................................................................................... 5
Manual De Administracin de DB2

db2agntp ................................................................................................................................................... 5
db2pfchr .................................................................................................................................................... 5
db2pclnr .................................................................................................................................................... 5
El Modelo de Memoria .............................................................................................................................. 5
El Modelo de Almacenamiento ................................................................................................................. 7
Tamaos de las Pginas ......................................................................................................................... 7
Tamao de la extensin: ....................................................................................................................... 7
Buffer pool ............................................................................................................................................. 7
El Modelo De Procesos ............................................................................................................................. 8
Arquitectura General y Los Procesos....................................................................................................... 9
El Modelo De Memoria ........................................................................................................................... 10
Creando un buffer pool en DB..................................................................................................................... 11
Creando un bufferpool desde la consola de comandos: ..................................................................... 11
Creando un bufferpool con la herramienta TOAD .............................................................................. 12
Modificar el bufferpool creado en DB2 ............................................................................................... 15
Creando un tablespace en DB2 ................................................................................................................. 18
Trabajando desde la consola de comandos: ....................................................................................... 18
Trabajando desde la herramienta TOAD ............................................................................................. 20
Modificar un tablespace con la herramienta Toad. ........................................................................... 25
Como crear una nueva instancia ............................................................................................................. 26
Desde la consola de comandos ........................................................................................................... 26
Comandos tiles para trabajar con instancias: ....................................................................................... 26
Desde la herramienta de Centro de Control ....................................................................................... 27
Modificar el archivo de configuracin del manejador de la base de datos ............................................... 29
CREACION DE ESQUEMAS ........................................................................................................................... 33
CREACION DE TABLE SPACE......................................................................................................................... 33
Manual De Administracin de DB2

CREATE .................................................................................................................................................... 33
DROP........................................................................................................................................................ 33
CREACION DE TABLAS.................................................................................................................................. 34
AGREGAR COLUMNAS ................................................................................................................................. 35
ALTER TABLE ............................................................................................................................................ 35
ADD COLUMN .......................................................................................................................................... 35
CONSTRAINT ................................................................................................................................................ 35
LLAVES PRIMARIAS .................................................................................................................................. 35
LLAVES FORANEAS ................................................................................................................................... 36
UNIQUE.................................................................................................................................................... 37
CHECK CONSTRAINT ................................................................................................................................ 37
AADIR USUARIOS ...................................................................................................................................... 38
GRANT y USER ......................................................................................................................................... 38
REVOKE .................................................................................................................................................... 38
CREACION DE INDICES ................................................................................................................................. 39
CREACION DE SECUENCIAS ......................................................................................................................... 39
CREACION DE VISTAS ................................................................................................................................... 40
SENTENCIAS DML ........................................................................................................................................ 40
INSERT ..................................................................................................................................................... 40
CASO 1: ................................................................................................................................................ 40
CASO 2 ..................................................................................................................................................... 41
SELECT ..................................................................................................................................................... 41
SELECT CON * ...................................................................................................................................... 41
SELECT DE UN CAMPO ......................................................................................................................... 42
WHERE ..................................................................................................................................................... 42
GROUP BY ................................................................................................................................................ 42
Manual De Administracin de DB2

HAVING .................................................................................................................................................... 43
ORDER BY ................................................................................................................................................ 43
AND ......................................................................................................................................................... 44
OR ............................................................................................................................................................ 44
BETWEEN ................................................................................................................................................. 44
LIKE .......................................................................................................................................................... 45
NOT .......................................................................................................................................................... 45
UNION ALL ............................................................................................................................................... 45
UNION ..................................................................................................................................................... 46
INNER JOIN .............................................................................................................................................. 46
LEFT OUTER JOIN ..................................................................................................................................... 46
RIGHT OUTER JOIN .................................................................................................................................. 47
FULL OUTER JOIN ..................................................................................................................................... 47
SUBCONSULTAS ....................................................................................................................................... 48
IN ............................................................................................................................................................. 48
ETIQUETAS ................................................................................................................................................... 49
ETIQUETAS A LAS TABLAS ........................................................................................................................ 49
ETIQUETAS A LOS CAMPOS ..................................................................................................................... 49
FUNCIONES ESPECIALES .......................................................................................................................... 50
COUNT ................................................................................................................................................. 50
MIN ...................................................................................................................................................... 50
MAX ..................................................................................................................................................... 50
AVG (PROMEDIO) ................................................................................................................................ 50
SUM ..................................................................................................................................................... 50
FUNCIONES AGREGADAS......................................................................................................................... 51
CONVERIONES DIRECTAS .................................................................................................................... 51
Manual De Administracin de DB2

FUNCIONES NUMERICAS ......................................................................................................................... 51
ABS ....................................................................................................................................................... 51
ROUND ................................................................................................................................................ 51
SQRT .................................................................................................................................................... 51
VAR ...................................................................................................................................................... 52
EXP ....................................................................................................................................................... 52
MOD .................................................................................................................................................... 52
POWER................................................................................................................................................. 52
SIGN ..................................................................................................................................................... 52
FUNCIONES PARA STRING ....................................................................................................................... 52
ASCII ..................................................................................................................................................... 52
CHR ...................................................................................................................................................... 52
CONCAT ............................................................................................................................................... 53
LENGTH ................................................................................................................................................ 53
SUBSTR ................................................................................................................................................ 53
LOWER ................................................................................................................................................. 53
LCASE ................................................................................................................................................... 53
UPPER .................................................................................................................................................. 53
UCASE .................................................................................................................................................. 54
LPAD .................................................................................................................................................... 54
LTRIM ................................................................................................................................................... 54
SPACE ................................................................................................................................................... 54
REPEAT................................................................................................................................................. 54
CHAR .................................................................................................................................................... 54
FUNCIONES CON FECHAS ........................................................................................................................ 55
CURREN DATE ...................................................................................................................................... 55
Manual De Administracin de DB2

CURRENT TIME .................................................................................................................................... 55
DELETE ..................................................................................................................................................... 55
UPDATE .................................................................................................................................................... 55
UPDATE UN SOLO CAMPO .................................................................................................................. 55
UPDATE DE VARIOS CAMPOS .............................................................................................................. 56
PROCEDIMIENTOS ALMACENADOS ............................................................................................................. 56
PROCEDIMIENTO NORMAL ..................................................................................................................... 56
CALL ......................................................................................................................................................... 57
PROCEDIMIENTO CON VARIABLES .......................................................................................................... 57
INTO EN SELECT ................................................................................................................................... 57
PROCEDIMIENTOS CON VARIABLES IN OUT ............................................................................................ 58
IN ......................................................................................................................................................... 58
OUT ...................................................................................................................................................... 59
IN OUT ................................................................................................................................................. 59
PROCEDIMIENTO CON ASIGNACION DE VARIABLES ............................................................................... 60
IF .......................................................................................................................................................... 60
IF ELSE .................................................................................................................................................. 61
ELSE IF .................................................................................................................................................. 62
CASE ..................................................................................................................................................... 63
WHILE .................................................................................................................................................. 65
FOR ...................................................................................................................................................... 65
FUNCIONES .................................................................................................................................................. 66
FUNCION CON PARAMETROS .................................................................................................................. 66
TRIGGERS ..................................................................................................................................................... 67

Manual De Administracin de DB2 Pgina 1

La Arquitectura de DB2

La Jerarqua en DB2 tiene tres niveles: mquina, la instancia y la base de datos.

La mquina y su sistema operativo gestionan los recursos que se comparten por todas las
instancias y bases de datos. La configuracin a nivel de mquina afecta a todas las instancias.

La instancia es la unidad de administracin bsica de db2, esta controla los recursos asignados a
cada base de datos, y es quien gestiona las comunicaciones y la creacin de agentes; as tambin
el arranque y parada tambin se hacen a este nivel. Dentro de una mquina puede haber
muchas instancias y cada una con su propia base de datos, cada instancia tiene su propia
seguridad dentro de la maquina.

En tercer nivel contempla las bases de datos donde se configuran muchas de las variables que
afectan al funcionamiento de las bases de datos. Aunque la instancia es quien gestiona los
recursos, cada base de datos, en general posee sus propios recursos. Tiene sus propios buffer
pools, su propio catlogo, dentro de este tercer nivel, a su vez, est dividido entre la capa lgica
y capa fsica.

Un ejemplo claro de donde es necesario crear mltiples instancias en un servidor de datos, y usarlas para
diferentes propsitos, es usando una instancia para mantener bases de datos en produccin, otra
instancia puede ser usada para un ambiente de prueba de bases de datos, y otra para un ambiente de
desarrollo.
Adems cabe mencionar que todas estas instancias serian independientes, por lo tanto las operaciones
de una no afectaran las dems instancias.
Cuando realizamos la instalacin se crea una instancia por defecto en Windows es DB2 y en Linux
db2inst1.
Objetos almacenados en el nivel lgico de la base de datos

En el nivel lgico estn los objetos de la base de datos:

Vistas: Es una forma eficiente de representar datos sin necesidad de darles mantenimientos, no
es una tabla y no requiere almacenamiento permanente.

Tablas: Consiste en datos arreglados lgicamente en filas y columnas, las tablas estn asignada a
un tablespaces.

ndices: Permiten un acceso ms eficiente a las filas de una tabla porque crea una ruta directa a
los datos a travs de apuntadores.
Manual De Administracin de DB2 Pgina 2


Tambin se encuentran los Triggers, Procedimientos almacenados, Funciones, y las Secuencias.

Objetos almacenados en el nivel fsico de la base de datos

Una base de datos est organizada en partes llamadas tablespaces Los cuales son una interfaz lgica
entre tablas lgicas y la memoria fsica (buffer pool) y los contenedores (disco) del sistema, adems un
tablespaces se puede esparcir sobre varios dispositivos de almacenamientos fsicos.
Tipos de tablespaces:
Regular: Usadas para tablas de usuario, por ejemplo, el espacio de tabla USERSPACE1,
Creado por defecto, es regular.

Grande: Usados para separar opcionalmente datos LOB en su propio espacio de tabla.
Tambin son usados para almacenar datos XML para bases de datos que los
Soportan. Los espacios de tabla grandes se escogen por defecto.

Temporales:
Se clasifican en dos tipos:
Del Sistema: Usados por DB2 para operaciones internas, ejemplo, el espacio de Tabla
TEMPSPACE1, creada siempre que se crea una base de datos, es un espacio de tabla temporal
del sistema.
Del Usuario: Usados para crear tablas globales, temporales y definidas por el usuario
(almacenadas en memoria). Se confunden fcilmente con las anteriores.













Manual De Administracin de DB2 Pgina 3




Tambin en la capa fsica encontramos los contenedores (Containers) los cuales son asignaciones de
almacenamiento fsico, existen tres tipos de containers que podemos utilizar para almacenamiento de
datos estos son los ficheros, directorios y dispositivos, estos pueden estar en cualquier ubicacin, pero
un containers solo puede ser asignado a un tablespace y un solo tablespace puede expandirse a muchos
containers.
Los contenedores pueden ser borrados y redimensionados y los nuevos pueden ser agregados.
Arquitectura general DB2






El Almacenamiento Gestionado por el Sistema, es
el sistema operativo quien maneja este tipo de
Espacios de tabla. Son fciles de gestionar, y los
contenedores son directorios del sistema de
archivos.
El Almacenamiento Manejado por la Base de
Datos, aqu es DB2 quien maneja este tipo de
espacio de tabla. La gestin del espacio
requiere de ms intervencin manual por
parte de un DBA.

Manual De Administracin de DB2 Pgina 4




El modelo de Procesos, la Memoria y el de Almacenamiento

El Modelo de Procesos
El proceso principal de DB2 se llama db2sysc, para este proceso existen muchos hilos de los cuales el
primario tambin se llama db2sysc. Este es el hilo principal que crea a los otros, recordemos que un hilo
o subproceso es una caracterstica que permite a una aplicacin realizar varias tareas a la vez
(concurrentemente), cada hilo tiene su propia tarea especfica y determinada que tiene que realizar.
Cuando una aplicacin remota intenta conectarse al servidor usando la sentencia SQL CONNECT, los
observadores remotos del proceso de comunicaciones reciben dicha solicitud y contactan a un agente
coordinador DB2 (db2agent).
Un agente de este tipo acta como un representante de DB2 que efecta operaciones en su nombre,
responde a las peticiones de clientes y realiza las lecturas y escrituras sncronas.
Cuando la aplicacin es local, es decir, corre en el mismo servidor que DB2, los pasos son muy similares,
con la diferencia que es un agente db2ipccm quien procesa la solicitud en lugar de un hilo db2tcpcm.
Los Procesos ms comunes en DB2 son

Nombre del Proceso Descripcin
db2sysc (Linux)
db2syscs (Win)
El principal controlador/motor del sistema DB2. En DB2 9.5, solo existe un motor
principal multihilos para toda la particin. Todas las unidades despachables por el
motor son hilos dentro de este proceso.
Manual De Administracin de DB2 Pgina 5

b2acd
Demonio de computacin autnoma. Es usado para tareas automticas del lado
del cliente, como monitoreo de salud, utilidades de mantenimiento automtico y
el planificador del admin.
db2wdog
El watchdog de DB2. Es el padre de db2sysc. Se encarga de la liberacin de
recursos en caso el proceso principal finalice anormalmente.
db2vend
El proceso de vendedores cercados, nuevo en DB2 9.5. Todo cdigo de terceros
corre en este proceso, fuera del motor. Dichos cdigos son programas ajenos a
IBM que pueden interactuar con DB2; por ejemplo, el archivamiento de logs
puede ser tercerizado especificando el parmetro de rutina de salida de usuario.
db2fmp
Procesos cercados que ejecutan cdigo de usuarios fuera del firewall tanto para
procedimientos almacenados como para funciones definidas por el usuario.

Los hilos ms comunes en DB2 son

Nombre del Hilo
Descripcin
db2sysc El hilo controlador del sistema. Es responsable de las configuraciones
Inciales y finales, as como la gestin de la instancia en curso.
db2tcpcm
Observador de comunicaciones TCP/IP.
db2agent
Agente coordinador que efecta operaciones sobre la base de datos en nombre
de aplicaciones (una por conexin cuando menos, dependiendo de si Connection
Concentrator est activado).
db2agntp
Sub-agente activo creado si el valor de INTRA_PARALLEL es YES. Ejecuta
operaciones sobre la base de datos en nombre de la aplicacin. El trabajo de los
diferentes sub-agentes es coordinado por db2agent.
db2pfchr
Pre-recogedor de datos de entrada/salida (NUM_IOSERVERS). Funciona
Asncronamente (lectura).
db2pclnr
Escritor de datos de entrada/salida (NUM_IOCLEANERS). Funciona
asncronamente (escritura).

El Modelo de Memoria

El modelo de memoria de DB2 consiste en diferentes reas en memoria en los niveles: la instancia, la
base de datos, la aplicacin y el agente.
Manual De Administracin de DB2 Pgina 6

Cmo trabaja la memoria? cuando se inicia a una instancia, se reserva la memoria compartida del
manejador de base de datos (Database Manager Shared Memory). Normalmente, no se requiere de
mucho espacio para dicha reserva.
Al momento de la primera conexin con la base de datos, el Database Global Memory (Memoria Global
de Base de Datos) es reservado. En este bloque, el Bufferpools es una de las partes ms importantes,
especialmente para la mejora del desempeo de consultas, pues este almacena los datos de tablas e
ndices en memoria para evitar la lectura de disco.
El tamao del Bufferpools determina qu tan grande ser el Database Global Memory en su totalidad.
La memoria privada de agente (Agent prvate Memory) es aquella usada por cada agente DB2. Sin usar
Connection Concentrator, cada conexin requiere un agente y este usa entre 3 y 5 MB. Con
Connection Concentrator, varias conexiones pueden usar el mismo agente, de manera que se
reduce la cantidad de memoria fsica requerida.
Manual De Administracin de DB2 Pgina 7

El Modelo de Almacenamiento
El modelo de almacenamiento contiene los siguientes elementos:
Pginas y extensiones
Buffer pool (piscina de buffer)
Espacio de tablas (Tablespace)
Tamaos de las Pginas
Una pgina es la mnima unidad de almacenamiento en DB2, los tamaos de pgina permitidos son: 4K,
8K, 16K y 32K. Una extensin es un conjunto de pginas, al trabajar con una pgina a la vez sera costoso
en trminos de desempeo, por esta razn, DB2 trabaja con varias extensiones a la vez. El tamao de
pgina y extensin son definidos al trabajar con buffer pools y espacios de tablas.
Tamao de la extensin:
Cuando trabajemos con tablespace se nos presentara parmetros como el Extent size el cual representa
el nmero de pginas que se tendrn en el contenedor antes de saltar al otro contenedor del tablespace
por lo tanto el tamao de la extensin es efectivo cuando se tiene ms de un contenedor.
Buffer pool
El buffer pool es la cache de memoria para datos de tabla e ndices, mejora el desempeo al reducir la
cantidad de entradas/salidas secuenciales directas, y promueve la lectura (pre-recoger) y escritura
asncronas. En otras palabras, DB2 determina anticipadamente qu pginas sern necesitadas, las pre-
recoge del disco y las coloca en el buffer pool, de tal modo que estn listas para ser usadas.
Los buffer pool se alojan en unidades de memoria de 4K, 8K, 16K y 32K pginas. Por cada base de
datos, deber existir cuando menos un buffer pool, as como una para cada espacio de tabla de un
tamao de pgina determinado.
Especificaciones de los tamaos de pgina.
Tamao de la pagina Tamao limite de filas Cantidad de columnas
permitidas
Capacidad Mxima
(DMS tablespace)
4 KB
4 005 500 64 GB
8 KB 8 101 1 012 128 GB
16 KB
16 293 1 012 256 GB
32 KB
32 677 1 012 512 GB
Manual De Administracin de DB2 Pgina 8



Los rectngulos representan
procesos
Las elipses representan hilos
Procesos
comunes
El Modelo De Procesos
Proceso Principal
Hilo principal
Hilos ms comunes
Manual De Administracin de DB2 Pgina 9


Arquitectura General y Los Procesos
Manual De Administracin de DB2 Pgina 10

El Modelo De Memoria

La memoria compartida del
manejador de base de datos
Almacena los datos de
catlogo

Se encarga de la
ordenacin cuando
esta se realiza en
memoria
Almacena los
planes de acceso de
las sentencias
ejecutadas
Almacena los datos
escritos en los antes de
escribirlos en disco,
para acelerar una
posible lectura de log
en caso de rollback
Memoria Global
de Base de Datos
Almacena los registros
o tablas bloqueados,
as como el tipo de
bloqueo.
Almacena los datos de tablas e ndices en
memoria para evitar la lectura de disco.
La memoria
privada de
agente
El agente de pila es
la memoria virtual
que db2 asigna a
c/agente
Especifica la
cantidad mxima
de memoria para
las consultas
Se utiliza como un
espacio de trabajo
para el compilador de
SQL cuando ejecuta
instrucciones sql
Tamao del buffer de
comunicacin entre
aplicaciones remotas y sus
agentes de bd en el servidor
de bases de datos.
Manual De Administracin de DB2 Pgina 11

Creando un buffer pool en DB
Creando un bufferpool desde la consola de comandos:
Cuando una base de datos se crea, un grupo de bferes con nombre predeterminada IBMDEFAULTBP
es creada, que es compartida por todos los tablespaces, podemos realizar una consulta para obtener
informacin acerca de los buffer pool que estn disponibles.
Comando a ejecutar: DB2 SELECT * FROM SYSCAT.BUFFERPOOLS
Tambin podemos consultar que grupo de buffer pool se les asigna a los tablespaces.
DB2 SELECT TBSPACE, BUFFERPOOLID FROM SYSCAT.TABLESPACES
En el resultado el bufferpoolid permite ver qu grupo de buffer es asociada a cada tablespace.

La sentencia CREATE BUFFERPOOL define una nueva agrupacin de almacenamientos intermedios para
que la utilice el gestor de bases de dato, los parmetro que se necesitan son el nombre del nuevo buffer
pool, el tamao de la pagina.

DB2CREATE BUFFERPOOL buffibd SIZE 2000 PAGESIZE 8K



Para modificar el tamao de un buffer pool utilizamos la sentencia ALTER BUFFERPOOL este cambio
adems utiliza el parmetro VPSIZE (integer) el cual necesita que se le especifique el tamao nuevo
asignarle al bufferpool

DB2 ALTER BUFFERPOOL buffibd VPSIZE (400)


Manual De Administracin de DB2 Pgina 12

Creando un bufferpool con la herramienta TOAD
Para trabajar con TOAD debemos de realizar una conexin con la base de datos que trabajaremos,
cuando tenemos la conexin establecida podemos trabajar con los objetos de la base datos, ahora
buscamos el elemento Bufferpools hacemos clic derecho y seleccionamos create Bufferpool, ver figura









En la siguiente figura le damos un nombre al bufferpool, el modo de ejecucin que es INMEDIATE, y el
grupo de particin al que pertenecer como no est particionado, el grupo de particin es 0, para
continuar clic en Show Script, cabe mencionar que si elegimos True en la opcin Automatic los valores
sern predeterminado sino especificamos los valores del SIZE y PAGESIZE.

Manual De Administracin de DB2 Pgina 13

El script que se ha generado podemos ver los valores predeterminado asignar al bufferpool, para
continuar clic en el botn Execute.











En la siguiente ventana nos muestra un mensaje indicando que se ha creado satisfactoriamente el nuevo
bufferpool.


Manual De Administracin de DB2 Pgina 14


En la siguiente figura podemos apreciar que ya tenemos creado el bufferpool y disponible para utilizar
con los tablespaces.








Bufferpool
Caractersticas
Manual De Administracin de DB2 Pgina 15

Modificar el bufferpool creado en DB2
Para modificar el tamao almacenamiento de un bufferpool lo seleccionamos, hacemos clic derecho y
elegimos la opcin ALTER BUFFERPOOL.
















Cambiamos el valor a false de la gestin automtica para as poder modificar los parmetros.


Manual De Administracin de DB2 Pgina 16


En la presente ventana podemos modificar el nmero de pginas a contener en el almacenamiento del
bufferpool








En la presente ventana podemos observar el script de la modificacin hacer












Manual De Administracin de DB2 Pgina 17


En la presente ventana nos muestra el mensaje que el bufferpool se ha modificado de forma exitosa.





Manual De Administracin de DB2 Pgina 18

Creando un tablespace en DB2
Trabajando desde la consola de comandos:
Para listar los tablespaces disponibles, estos dependern de cual instancia tenemos activa adems en
cualquier instancia siempre que creamos una base de datos nueva con el comando create Database, se
crean por defecto los siguientes tablespaces predeterminados
1. SYSCATSPACE
2. TEMPSPACE1
3. USERSPACE1
As que para listar los tablespaces que tenemos creados realizamos lo siguiente:
1. Nos conectamos a una base de datos con el comando db2 connect to IBD115
2. Ejecutamos el comando db2 list tablespaces show detail
3. Como resultado obtenemos una descripcin con las siguientes caractersticas
El id de cada tablespaces
El nombre el tablespace
El nmero de contenedores que dispone
De El total pginas que dispone
El total de pginas utilizadas hasta el momento
El total de pginas libres
El tamao de las pginas en bytes
El tamao de la extensin que tiene (paginas)

Con el comando DB2 LIST TABLESPACE CONTAINERS FOR id del tablespaces podemos obtener la
informacin de los contenedores para el tablespace con id que especifiquemos, obtenemos las
siguientes caractersticas
El id del contenedor, el nombre del contener que es realmente la ruta fsica donde se encuentra y el tipo
de contenedor; Para crear un nuevo tablespaces se usa la sentencia CREATE TABLESPACE para crearlos.
Es posible especificar:
El tamao de pgina para el espacio de tabla (4K, 8K, 16K y 32K). El tamao de pgina debe
corresponder al de algn buffer pool.
El nombre del buffer pool asociado a esta tabla.
El tamao de la extensin
El tamao de pre-recogida.
Manual De Administracin de DB2 Pgina 19


Ejemplo se va crear un espacio de tablas de almacenamiento automtico grande denominado bad115
dentro de la instancia DB2 que permita que el sistema realice todas las decisiones con respecto al
tamao y al crecimiento del espacio de tablas, las dos sentencias hacen lo mismo:
DB2 CREATE TABLESPACE bad115 MANAGED BY AUTOMATIC STORAGE
DBW CREATE TABLESPACE bad115

Al dejarle en forma automtica este tiene valores predeterminado, el tamao de la extensin que
maneja es de 32k, un total de 4096 pginas disponibles para utilizar.

Tambin podemos crear un espacio de tablas de almacenamiento automtico del tipo temporal
DB2 CREATE TEMPORARY TABLESPACE TEMPIBD
DB2 CREATE TEMPORARY TABLESPACE TEMPIBD MANAGED BY AUTOMATIC STORAGE




Cuando se crea un tablespace de este tipo el nmero total de paginas disponibles es de una, y siempre
se mantiene la extensin de 32 k.
Tambin podemos darle un parmetro de inicio y un tamao mximo al tablespace de almacenamiento
automtico grande, por ejemplo un tamao inicial de 100 megabytes y un tamao mximo de 1
gigabyte.
DB2 CREATE TABLESPACE PRUEBA3 INITIALSIZE 100 M MAXSIZE 1 G
De esta forma le queda un total de 12800 pginas disponibles y donde los datos que se almacenen sern
permanentes.
Otro ejemplo con almacenamiento automtico se le puede reservar el tamao inicial, se le especifica
el incremento y el tamao mximo:
DB2 CREATE TABLESPACE TBSEJEMPLO INITIALSIZE 500 K INCREASESIZE 100 K
MAXSIZE 100 M
Manual De Administracin de DB2 Pgina 20

Para poder asignarle un buffer pool previamente creado a un tablespace lo podemos hacer con
la sentencia alter tablespace recordando que el tamao de pagina del tablespace debe
corresponder con el buffer pool a asignarle, por ejemplo vamos asociar el tablespace TEMPIBD
al buffer pool BUFF creado anteriormente.
Sentencia: db2 alter tablespace TEMIBD bufferpool BUFFIBD


Para eliminar un tablespace creado por nosotros se puede hacer con la siguiente sentencia.
DB2 DROP TABLESPACE TEMIBD









Trabajando desde la herramienta TOAD
Cuando ya estemos conectados con la base de datos, buscamos el elemento Tablespace, si extiendes el
folder se observa los tablespace predeterminados que se generan cuando se crea una nueva base de
datos, para crear un tablespace nuevo hacemos clic derecho y elegimos la opcin Crear Tablespace.
Manual De Administracin de DB2 Pgina 21

Manual De Administracin de DB2 Pgina 22

En la siguiente ventana le damos un nombre al nuevo tablespace, algunas caractersticas
importantes a tomar en cuenta para definir son, el bufferpool al que se va asociar, el tipo de
tablespace regular, grande, temporal, la administracin si va ser por el system, el Database o
por almacenamiento automtico, el tamao de la pagina, tamao del extent, el tamao del
Prefetch























Manual De Administracin de DB2 Pgina 23

Tambin como parte de la creacin de un tablespace tenemos que agregarle el contenedor a utilizar,
para ello le definimos un nombre del contenedor, la particin disponible, y el tipo de contenedor en este
caso va ser archivo.




En la siguiente ventana podemos observar el cdigo generado del tablespace que se va ejecutar, este script
contiene todas las caractersticas definidas anteriormente, para finalizar clic en el botn Execute.

Manual De Administracin de DB2 Pgina 24


Con la siguiente figura se da por finalizado la creacin el tablespace de forma exitosa


Ahora ya tenemos creado un tablespace definido por nosotros, al seleccionarlo podemos observar todas
las caractersticas del tablespace, ver la ventana siguiente.




Tablespace
Caractersticas
Manual De Administracin de DB2 Pgina 25

Modificar un tablespace con la herramienta Toad.
En la presente ventana seleccionamos el tablespace a modificar y con clic derecho sobre el elegimos
Alter Tablespace.

En la siguiente ventana podemos observar los parmetros que contiene el tablespace, nosotros podemos
realizar acciones como reasignar el tablespace a otro bufferpool, modificar el tamao de la pagina






Manual De Administracin de DB2 Pgina 26


Como crear una nueva instancia
Desde la consola de comandos
1. Para crear una nueva instancia llamada IBD utilizamos la siguiente sentencia, desde la
consola de comandos, el nombre para una instancia permite un mximo de 8 caracteres.
db2 db2icrt IBD
2. Podemos crear una nueva base de datos en la instancia activa solamente con el
comando db2 create database pero si deseamos crear una base de datos y no en la
instancia activa sino en otra seria as:
1. Ejecutar db2ilist para ver cuales instancias tenemos disponibles en nuestro sistema
2. Ejecutar set db2instance=IBD Donde IBD es nuestra instancia a utilizar
3. Ejecutar db2start para iniciar la instancia nueva
4. Ahora ya podemos crear una base de datos nueva dentro de esta instancia
Comandos tiles para trabajar con instancias:

Comando Descripcin

db2start Inicia la instancia actual
db2stop Detiene la instancia actual

db2icrt Crea una nueva instancia

db2idrop Borra una instancia

db2ilist Lista las instancias existentes en el sistema

db2 get instance Lista la instancia activa actualmente





Manual De Administracin de DB2 Pgina 27


Desde la herramienta de Centro de Control
Para crear una nueva instancia en nuestro sistema tenemos que abrir el centro de control,
despus en el directorio de la izquierda, le damos clic derecho en el centro de control y
elegimos crear carpeta personalizada le damos.

Ahora le damos un nombre como puede ser Sistema y en el contenido elegimos el de sistemas.













Manual De Administracin de DB2 Pgina 28


Ahora aparece la carpeta Sistema->instancia, hacemos clic derecho y elegimos la opcin aadir.










En la siguiente ventana que aparece le damos el nombre a la instancia crear, para continuar con
nuestro ejemplo se llamara IBD.


Manual De Administracin de DB2 Pgina 29


A continuacin ya nos muestra la instancia IBD creada por lo tanto ya podemos crear bases de
datos en la instancia IBD y tambin podemos configurar los parmetros de la instancia.

Modificar el archivo de configuracin del manejador de la base de datos
Es necesario conocer cmo administrar los parmetros de este archivo de configuracin pues estos
afectan la instancia y las bases de datos contenidas en ella, para realizar modificaciones utilizaremos
La herramienta centro de control de DB2 para configurar los parmetros.
Algunos ejemplos de parmetros que podemos administrar son como:
Definir el nmero mximo de conexiones de clientes a la base de datos.
Manipular la cantidad de memoria que se reserva para gestin de instancias.
Modificar el tamao de la memoria virtual que DB2 asigna para cada agente.
Definir el nmero mximo de agentes de coordinacin a existir.




Instancia IBD creada
Manual De Administracin de DB2 Pgina 30

Seleccionamos la instancia que deseamos realizarle cambios en los parmetros de configuracin para
continuar con el ejemplo seleccionamos la instancia IBD, dndole clic derecho y luego clic en Configurar
Parmetros, cuando se realiza la modificacin de parmetros es necesario detener la instancia.












Para iniciar la instancia
Para Detener la instancia
Eliminar la instancia
Manual De Administracin de DB2 Pgina 31


La siguiente ventana muestra todos los parmetros que podemos modificarle al archivo db cfg















Por ejemplo en la siguiente ventana hemos seleccionado modificar el parmetro
MAX_COORDAGENTS, despus solo clic en el botn bien y los cambios se realizaran de forma
inmediata.

Manual De Administracin de DB2 Pgina 32

Antes de comenzar con las sentencias o comandos en la administracin, hemos de crear una base de
datos que se llama Prueba1, con la cual trabajaremos para nuestros ejemplos.

Ahora bien los tipos de datos que soporta DB2 son:
DATALINK, contiene una referencia lgica a un archivo almacenado fuera de la base de datos. El tipos de
enlace que DB2 suporta es de URL (Uniform Resource Locator) que suporta HTTP, FILE, UNC, y DFS.
DATE, se un valor de 3 partes; ao, mes, y da. El rango de ao es de 0001 a 9999, de 1 a 12 para el rango
de mes, y de 1 a X, donde X depende del mes para el rango de da. Es un dato de 4 bytes. Cada byte
consiste de 2 dgitos de decimal. Los primeros 2 bytes representan el ao; el tercer byte representa el mes,
y el ultimo byte representa el da.
TIME, se un valor de 3 partes; hora, minuto, y segundo. Seala a un tiempo bajo el formato de 24 horas. El
rango de hora es de 0 a 24, de 0 a 59 para minuto y segundo. Es un dato de 3 bytes. Cada byte consiste de
2 dgitos de decimal. El primer byte representa la hora, el segundo representa el minuto, y el ltimo
representa el segundo.
TIMESTAMP, es un valor de 7 partes; ao, mes, da, hora, minuto, segundo, y microsegundo. Seala a una
fecha y hora en forma como DATE y TIME, excepto que el tiempo incluye microsegundo. Es un dato de 10
bytes de 2 dgitos de decimal. Los primeros 4 bytes representan la fecha, los siguientes 3 bytes
representan el tiempo, y los ltimos 3 bytes representan el microsegundo.
CHAR, tiene la longitud fija. Su longitud mxima es de 254 bytes.
VARCHAR, tiene la longitud variable. Su longitud mxima es de 4000 bytes.
LONG VARCHAR, tiene la longitud variable. Su longitud mxima es de 32700 bytes.
SMALLINT (Small Integer), almacena un numero de 5 dgitos con un rango de 32768 a +32767.
INTEGER, almacena un numero de 10 dgitos con un rango de 2147483648 a +2147483647.
BIGINT (Big Integer), almacena un numero de 19 dgitos con un rango de 9223372036854775808 a
+9223372036854775807.
REAL, almacena un numero de 32 bit con un rango de 3.402E+38 a 1.175E37, o un rango de 1.175E37
a 3.402E+38, y por supuesto el cero.
DOUBLE o FLOAT, almacena un numero de 64 bit con un rango de 1.79769E+308 a 2.225E307, o un
rango de 2.225E307 a 1.79769E+308, y por supuesto el cero.
DECIMAL o NUMERIC, tiene un rango mximo de 10**31+1 a 10**311.
GRAPHIC, tiene su longitud fija con un rango de 1 a 127 caracteres de doblebyte.
VARGRAPHIC, tiene su longitud variable hasta 2000 caracteres de doblebyte como mxima.
LONG VARGRAPHI, tiene su longitud variable hasta 16350 caracteres de doblebyte como mxima.
Manual De Administracin de DB2 Pgina 33

DBCLOB (DoubleByte Character Large Object), tiene su longitud variable hasta 1073741823 caracteres de
doblebyte como mxima.
CLOB (Character Large Object), tiene su longitud variable hasta 214743647 caracteres de doblebyte como
mxima.
BLOB (Binary Large Object), tiene su longitud variable hasta 214743647 caracteres de doblebyte como
mxima.
CREACION DE ESQUEMAS
Los esquemas son creados a partir del usuario que se est ocupando, si el usuario no especifica el
esquema o no tiene privilegios, el sistema le pone uno por defecto llamado
quest_schema_placer_holder.
CREACION DE TABLE SPACE
CREATE
Es una sentencia que se ocupa para la creacin de objetos, entre ellas estn tablas, esquemas, mtodos,
procedimientos, funciones, etc.
Sintaxis:
Create tablespace nombre;
Donde nombre es el nombre del table space.
Ejemplo:
create tablespace paraprueba1;
DROP
Se ocupa para la eliminacin completa de objetos antes creados y mencionados en el create.
Sintaxis:
Drop tablespace nombre;
Donde nombre es el nombre del table space.
Ejemplo:
drop tablespace paraprueba1;
Si no especifica un table space el sistema le pone uno por defecto.

Manual De Administracin de DB2 Pgina 34

CREACION DE TABLAS
Sintaxis:
Create table nombre
(
Nomcampo tipodato valdef
-----------
) in nombre tablespace;
En donde nombre, es el nombre de la tabla y nombre tablspace es el nombre del table space donde
estar esta tabla al no ponrselo el sistema lo pone en el tablespace por defecto. Y nomcampo, es el
nombre del campo,tipodato es el tipo dato que le definiremos a ese campo y valdef es el valor por
defecto que tendr.
Ejemplo:
create table estudiante
(
carnet varchar(7) not null,
nombres character(30) not null,
apellidos character(30) not null,
cumglobal decimal(4,2) not null
) in paraprueba1;

En db2 el indica los comentarios.

--Ahora crearemos la de materias
create table materia
(
codmat varchar(7) not null,
nombremat varchar(50) not null
) in paraprueba1;

--Crearemos la tabla nota
create table nota
(
Manual De Administracin de DB2 Pgina 35

notafinal decimal(4,2)not null
)in paraprueba1;

AGREGAR COLUMNAS
ALTER TABLE
Es la sentencia que se ocupa para alterar una tabla u objeto.

ADD COLUMN
Es la sentencia que se ocupa para aadir columnas en una tabla
Sintaxis:
alter table nombre tabla add column nomcampo tipodato valdef;
En donde nombre tabla es la tabla a la que se lo agregaremos, nomcampo es el nombre de la columna a
agregar, tipodato es el tipo de dato de la columna a agregar y valdef son los valores por defecto que
poseer el campo agregado.

Ejemplo:
alter table nota add column carnet varchar(7)default not null;
alter table nota add column codmat varchar(7) default not null;

CONSTRAINT
Los constraint son elementos claves que se ocupan para el establecimieto de llaves primarias, forneas,
unique y check en las relaciones de nuestras tablas.
LLAVES PRIMARIAS
Las llaves primarias son las que se establecen como valores nicos dentro de las tablas.
Sintaxis:
alter table nomtabla
add constraint nomconst primary key(campo);
Manual De Administracin de DB2 Pgina 36

En donde nomtabla es el nombre de la table en la que se agregar el constraint, nomconst es el nombre
del constraint que se le agregar y campo es el campo en la tabla que poseer el constraint.

Ejemplo:
alter table estudiante
add constraint PK_carnet primary key(carnet);

alter table materia
add constraint PK_codmat primary key(codmat);

LLAVES FORANEAS
Las llaves forneas son las que se utilizan para las interrelaciones de las llaves primarias en otras tablas.
Sintaxis:
alter table nomtab
add constraint nomconst foreign key(nomcampo)
references nomtab2(nomcampo2);
En donde nomtab es el nombre de la table que se afectar, nomconst es el nombre del contraint a
agregar nomcampo es el nombre del campo que tendr el constrint, nomtab2 es el nombre de la tabla
de referencia del constraint y nomcampo2 es el nombre del campo al que se le est haciendo referencia
en la otra tabla.
Ejemplo:
alter table nota
add constraint FK_carnet foreign key(carnet)
references estudiante(carnet);

alter table nota
add constraint FK_codmat foreign key(codmat)
references materia(codmat);



Manual De Administracin de DB2 Pgina 37

UNIQUE
El unique se ocupa como campo nico desde una tabla y puede ser especificado en cualquier campo que
lo requiera.
Sintaxis:
alter table nomtab
add constraint nomconst unique (nomcampo);
En donde nomtab es el nombre de la tabla, nomconst es el nombre del constrint que se asignar y
nomcampo es el nombre del campo que lo tendr.

Ejemplo:
alter table estudiante
add constraint U_carnet unique (carnet);

CHECK CONSTRAINT
Esta sentencia se ocupa para definir restricciones en los campos de las tablas.
Sintaxis:
alter table nomtab
add constraint nomconst check(campo condicion);
En donde nomtab es el nombre de la table, nomconst es el nombre del constraint a asignar, el campo es
el nombre del campo que tendr la restriccin y la condicin es la restriccin del campo.

Ejemplo:
alter table estudiante
add constraint C_cum check(cumglobal>=0 and cumglobal<=10);

alter table nota
add constraint C_notaf check(notafinal>=0 and notafinal<=10);


Manual De Administracin de DB2 Pgina 38

AADIR USUARIOS
Al aadir un usuario automticamente se le aaden sus privilegios.
GRANT y USER
Sintaxis:
Grant privilegios on database to user usuario.
En donde privilegios son los privilegios que se le asignan a este usuario y usuario es el nombre del
usuario que se le agregar. Entre los privilegios que existen tenemos:
DBADM: Autoridad o autorizacin en la administracin de la base de datos.
CONNECT: para establecer conexin a la base de datos.
CREATETAB: para crear tablas.
IMPLICIT_SCHEMA: Crear esquemas implcitos.
BINDADD: para enlazar o unir paquetes.
CREATE_NOT_FENCED_ROUTINE: para crear o realizar rutinas de registro para ejecutar procesos en el
gestor de bases de datos,
LOAD: para el acceso a las utilidades de carga.
CREATE_EXTERNAL_ROUTINE: crear rutinas externas, estas pueden ser funciones.
QUIESCE_CONNECT: conectar a la base en modo deshabilitado.
SECADM: para la administracin de seguridad de la base.

Ejemplo:
grant dbadm,connect,createtab,implicit_schema,bindadd,create_not_fenced_routine,load,
create_external_routine,quiesce_connect,secadm on database to user David;

REVOKE
Es la sentencia ocupada para revocar o denegar privilegios.
Sintaxis:
revoke privilegio on database from user usuario;
En donde privilegio es el privilegio asignado al usuario y usuario es el nombre del usuario.

Ejemplo:
revoke connect on database from user David;
Manual De Administracin de DB2 Pgina 39


CREACION DE INDICES
Los ndices son elementos que agilizan la bsqueda en los campos de las tablas.
Sintaxis:
create index nombreind on nomtabla (campo orden);
En donde nombreind es el nombre del ndice, nomtabla es el nombre de la tabla en donde se crear el
ndice, campo en el campo al cual se le asignar el ndice y orden es el orden que tendr ascendente o
descendente.

Ejemplo:
create index Ind_codmat1 on materia (nombremat desc);

CREACION DE SECUENCIAS
Las secuencias son objetos que se ocupan para que se tenga un valor incremental automtico.
Sintaxis:
create sequence nomseq as tipdat
increment by val1
minvalue val2
maxvalue val3
order;
En donde nomseq es el nombre de la secuencia tipdat es el tipo de dato los cuales pueden ser para la
creacin de secuencias enteros, decimales, enteros cortos y binarios enteros, val1 es el valor a
incrementar, val2 es el valor mnimo y val3 es el valor mximo al cual se incrementar. Por defecto el
valor del incremento es 1 y su mnimo valor tambin.

Ejemplo:
create sequence seqprb as integer
increment by 2
minvalue 2
Manual De Administracin de DB2 Pgina 40

maxvalue 10
order;

CREACION DE VISTAS
Las vistas son observaciones generales de una consulta que se necesita observar.
Sintaxis:
create view nomvist
as sentencia;
En donde nomvist es el nombre de la vista y la sentencia por lo general es una consulta select.

Ejemplo:
create view vista1
as select * from nota;


SENTENCIAS DML
Las sentencias DML son las sentencias de manipulacin de datos como insert, update y delete.

INSERT
CASO 1:
Sintaxis:
insert into nomtab values(valdat);
En donde nomtab es el nombre de la tabla y valdat son los valores que se introducirn en las tablas.

Ejemplo:
insert into estudiante values('cq06002','David Gerardo','Cartagena Quintanilla',7.0);

Manual De Administracin de DB2 Pgina 41

CASO 2
Sintaxis:
insert into nomtab (campos) values (valdat);
En donde nomtab es el nombre de la tabla,campos son los campos donde introducir los valores y valdat
son los valores que se introducirn en las tablas.
Ejemplo:
insert into estudiante (carnet,nombres,apellidos,cumglobal) values ('RM06016',
'Oscar Mauricio','Rivera Machado',7.16);

insert into MATERIA values('IBD-115','Implementacion de BD');
insert into MATERIA values('API-115','Aplicacion de proyectos inf');

insert into NOTA values (7.0,'cq06002','IBD-115');
insert into NOTA values (7.0,'cq06002','API-115');

SELECT
El select se utiliza para seleccionar los campos que usted desea ver.

SELECT CON *
El asterisco es utilizado para hacer implcita la consulta de todos los campos.
Sintaxis:
Select * from nomtab;
En donde nomtab es el nombre de la tabla.

Ejemplo:
select * from estudiante;



Manual De Administracin de DB2 Pgina 42

SELECT DE UN CAMPO
Sintaxis:
select nomcamp from nomtab;
En donde nomcamp es el nombre del campo y nomtab es el nombre de la tabla.

Ejemplo:
select nombres from estudiante;

WHERE
Se utilice para establecer una condicin a las sentencias select y update.
Sintaxis:
select * from nomtab where condicion;
En donde nomtab es el nombre de la table y condicion es la condicin establecida a la seleccin.

Ejemplo:
select * from estudiante where CARNET='cq06002';

GROUP BY
Se utiliza para agrupar mediante un campo.
Sintaxis:
select campos from nomtab group by nomcampo;
En donde campos son los nombres de los campos, nomtab es el nombre de la table y nomcampo es el
campo por el cual se va a agrupar.

Ejemplo:
select carnet, count(nombres) from estudiante group by carnet;
Note que en este caso el group by est siendo utilizado para una columna que no tiene funcin pero
depende de ella. Si no se pone una funcin da error



Manual De Administracin de DB2 Pgina 43

HAVING
Es utilizada para poner una condicin a los datos agrupados.
Sintaxis:
select nomcamp from nomtab group by nomcamp2 having condic;
En donde nomcamp son los nombres de los campos a seleccionar, nomtab es el nombre de la table a la a
que se le hace el select nomcamp2 en el nombre del campo por el cual se agrupa y condic es la condicion
establecida a los campos agrupados.

Ejemplo:
select carnet,count(nombres) from estudiante group by carnet having carnet='cq06002';

ORDER BY
Es utilizado para presentar el orden de los campos.
Sintaxis:
select nomcamp from nomtab group by nomcamp2 having condic order by ord;
En donde nomcamp son los nombres de los campos a seleccionar, nomtab es el nombre de la table a la a
que se le hace el select nomcamp2 en el nombre del campo por el cual se agrupa, condic es la condicion
establecida a los campos agrupados y ord es el orden en que se va a presentar, ascendente o
descentente.

Ejemplo:
select carnet,count(nombres) from estudiante group by carnet having carnet='cq06002' order by
carnet;
Por defecto los muestra ascendentes o sino se le pone asc despus de carnet.
Si no se pone group by este es un ejemplo de cmo se pone la funcin:
select carnet,nombres from estudiante order by carnet;
Y en forma descendente el ejemplo es as:
select carnet,nombres from estudiante order by carnet desc;



Manual De Administracin de DB2 Pgina 44

AND
Es utilizada para unir condiciones que se tienen que cumplir todas estrictamente.
Sintaxis:
select camp from tabla where cond1 and cond2;
En donde camp, es el nombre del o los campos, table es el nombre de la table y cond1 junto con cond2
son las condiciones concatenadas que se deben de cumplir estrictamente juntas.

Ejemplo:
select carnet, nombres from estudiante where cumglobal>0 and cumglobal=7;

OR
Es utilizada para unir condiciones que se aplican cuando cualquiera de las condiciones se cumple.
select camp from tabla where cond1 or cond2;
En donde camp, es el nombre del o los campos, table es el nombre de la table y cond1 junto con cond2
son las condiciones concatenadas que se deben de cumplir estrictamente juntas.

Ejemplo:
select carnet, nombres from estudiante where cumglobal>0 or cumglobal=7;

BETWEEN
Es utilizada para que en la condicin se tomen rangos de valores que se tienen que cumplir.
Sintaxis:
Select nomcamp from tabla where camp between va1 and va2;
Donde nomcamp es el nombre de los campos, table es el nombre de las tablas y va1 junto a va2 son los
valores de los campos en los que se quiere que se cumpla la condicin.

Ejemplo:
select carnet,nombres from estudiante where cumglobal between 7 and 7.15;

Manual De Administracin de DB2 Pgina 45

LIKE
Es una sentencia que sirve en la agilizacin de bsquedas de cadenas o caracteres.
Sintaxis:
select * from tabla where campo like('val');
En donde tabla es el nombre de la tabla, campo es el nombre donde se buscar el caracter y val es el
valor del carcter o cadena a buscar.

Ejemplo:
select * from estudiante where carnet like('cq06002');

NOT
Es una sentencia ocupada para negar una condicin o sentencia.
Sintaxis:
select * from tabla where campo not like('val');
En donde table es el nombre de la tabla, campo es el nombre donde se buscar el caracter y val es el
valor del carcter o cadena a buscar.

Ejemplo:
select * from estudiante where carnet not like('cq06002');

UNION ALL
Une todas las columnas de un lado primero y luego las del otro.
Sintaxis:
Consulta select1 union all consulta select2;
En donde slect1 es la primera consulta y consulta select2 es la consulta nmero 2 que se unir.

Ejemplo:
select carnet from estudiante
union all
select codmat from nota;

Manual De Administracin de DB2 Pgina 46

UNION
Une todas las columnas en desorden o intercalados.
Sintaxis:
Consult1 union consult2
En donde consult1 es la primera consulta select y consult2 es la consulta nmero 2 que se unir.

Ejemplo:
select carnet from estudiante
union
select codmat from nota;

INNER JOIN
Realiza una unin de los datos iguales en dos tablas diferentes.
Sintaxis:
select camp from tab et inner join tab2 et2 on cond;
En donde camp son los campos a seleccionar, tab es el nombre de la table et es la etiqueta asignada a la
table, tab 2 es la segunda table a comparar, et2 es la segunda etiqueta asignada a la table 2 y cond es la
condicion de union entre las dos tablas.


Ejemplo:
select e.nombres,n.notafinal from estudiante e inner join nota n on e.carnet=n.carnet;

LEFT OUTER JOIN
Realiza una union de datos que se encuentran en la tabla a y b y todos los q no se encuentren en b,
agrega los de a y los pone null junto a los datos de B. En vez de left join puede poner left outer join y le
cumplir la misma funcin.
Sintaxis:
select camp from tab et left join tab2 et2 on cond;
Manual De Administracin de DB2 Pgina 47

En donde camp son los campos a seleccionar, tab es el nombre de la table et es la etiqueta asignada a la
table, tab 2 es la segunda table a comparar, et2 es la segunda etiqueta asignada a la table 2 y cond es la
condicion entre las dos tablas.

Ejemplo:
select e.nombres,n.notafinal from estudiante e left join nota n on e.carnet=n.carnet;

RIGHT OUTER JOIN
Realiza una union de los datos que se encuentran en la tabla a y b y pone los datos de la tabla a q no
estan en b y pone los de b como nulos. En vez de right join puede poner right outer join y le cumplira la
misma funcin.
Sintaxis:
select camp from tab et right join tab2 et2 on cond;
En donde camp son los campos a seleccionar, tab es el nombre de la table et es la etiqueta asignada a la
table, tab 2 es la segunda table a comparar, et2 es la segunda etiqueta asignada a la table 2 y cond es la
condicion entre las dos tablas.

Ejemplo:
select e.nombres,n.notafinal from estudiante e right join nota n on e.carnet=n.carnet;

FULL OUTER JOIN
Realiza una agrupacin de datos similares en las dos tablas y adems pone los que no son similares con
sus respectivos nulos de diferencia. En vez de full join puede poner full outer join y desarrollara la misma
funcin.
Sintaxis:
select camp from tab et full join tab2 et2 on cond;
En donde camp son los campos a seleccionar, tab es el nombre de la table et es la etiqueta asignada a la
table, tab 2 es la segunda table a comparar, et2 es la segunda etiqueta asignada a la table 2 y cond es la
condicion entre las dos tablas.
Ejemplo:
select e.nombres,n.notafinal from estudiante e full join nota n on e.carnet=n.carnet;
Manual De Administracin de DB2 Pgina 48


SUBCONSULTAS
Las subconsultas son utilizadas para establecer condiciones con sentencias distintas o internas a la
consulta que se hace:
Sintaxis:
Select campos from tabla et where camp2= subconsulta
En donde campos son los campos a seleccionar, tabla es el nombre de la tabla, et es una etiqueta de la
tabla, camp2 es un campo que se le asignara la condicin como subconsulta y subconsulta es la
subconsulta que se asignar.

Ejemplo:
select e.carnet,e.nombres,e.apellidos from estudiante e where e.carnet=(select es.carnet
from estudiante es where e.carnet=es.carnet);

Otra forma de verlo mejor:
select e.carnet,e.nombres,e.apellidos from estudiante e where e.carnet=(select es.carnet from
estudiante es where e.carnet=es.carnet and es.cumglobal<7.16);

IN
Es una clabsula que se ocupa para hacer referencia a decir que se encuentre en.
Sintaxis:
Select campos from tabla et where camp2 in subconsulta
En donde campos son los campos a seleccionar, tabla es el nombre de la tabla, et es una etiqueta de la
tabla, camp2 es un campo que se le asignara la condicin como subconsulta y subconsulta es la
subconsulta que se asignar.

Ejemplo:
select e.carnet,e.nombres,e.apellidos from estudiante e where e.carnet in (select es.carnet
from estudiante es where e.carnet=es.carnet and es.cumglobal<7.16);


Manual De Administracin de DB2 Pgina 49

ETIQUETAS
ETIQUETAS A LAS TABLAS
Estas son utilizadas como referencias o abreviaciones utilizadas a las tablas.
Sintaxis:
Select et.campo from tabla et;
En donde et es la etiqueta que hace referencia a la tabla, tabla es el nombre de la tabla.

Ejemplo:
select e.nombres,e.apellidos from estudiante e;

ETIQUETAS A LOS CAMPOS
Note que es solo una palabra de etiqueta que se ver como el nombre del campo.
Select et.campo et1 from tabla et;
En donde et es la etiqueta que hace referencia a la tabla, tabla es el nombre de la tabla y et1 es el
nombre de la etiqueta del campo.

Ejemplo:
select e.nombres NOM,e.apellidos AP from estudiante e;

Ejemplo de etiquetas con comillas para una o mas palabras:
select e.nombres "NOM",e.apellidos "AP" from estudiante e;
select e.nombres "NOM Bres",e.apellidos "AP Ellidos" from estudiante e;

Etiquetas con AS: cumplen la misma funcin.
select e.nombres as "NOM1",e.apellidos as "AP1" from estudiante e;






Manual De Administracin de DB2 Pgina 50

FUNCIONES ESPECIALES

Funcin Descripcin
Count() Cuenta los datos que se encuentran en la sentencia.
Min() Devuelve el menor de todos los datos.
Max() Devuelve el mayor de todos los datos especificados.
Avg() Devuelve el promedio de los datos asociados.
Sum() Devuelve la suma de los datos establecidos.

COUNT
Ejemplo:
select count(codmat) from materia where CODMAT='IBD-115';

MIN
Ejemplo:
select min(cumglobal) from estudiante;

MAX
Ejemplo:
select max(cumglobal) from estudiante;

AVG (PROMEDIO)
Ejemplo:
select avg(cumglobal) from estudiante;

SUM
Ejemplo:
select sum(cumglobal) from estudiante;



Manual De Administracin de DB2 Pgina 51

FUNCIONES AGREGADAS

CONVERIONES DIRECTAS

CONVERTIR UN STRING A DOUBLE
Sintaxis:
Where tipconv(camp)>0;
En donde tipconv es el tipo de dato a convertir.
Ejemplo:
where double(carnet)>0;

CONVERTIR UN STRING A INTEGER
where integer(carnet)>0;
NOTA: No se han hecho porque no hay campos ajustables a ellos

FUNCIONES NUMERICAS

ABS
Devuelve el valor absoluto de un nmero. Ejemplo:
select cumglobal,abs(cumglobal) from estudiante;

ROUND
Realiza un redondeo y obtiene la parte entera redondeada. Ejemplo:
select cumglobal,round(cumglobal,2) from estudiante;

SQRT
Devuelve la raz cuadrada del valor asignado. Ejemplo:
select cumglobal,sqrt(cumglobal) from estudiante;
Manual De Administracin de DB2 Pgina 52

VAR
Devuelve la varianza de los valores. Ejemplo:
select var(cumglobal) from estudiante;

EXP
Devuelve el exponencial del valor. Ejemplo:
select cumglobal,exp(cumglobal) from estudiante;

MOD
Devuelve el valor entero sobrante o residual de la operacin de divisin entre dos nmeros. Ejemplo:
select cumglobal,mod(cumglobal,2) from estudiante;

POWER
Eleva el valor a una potencia. Ejemplo:
select cumglobal,power(cumglobal,2) from estudiante;

SIGN
Devuelve -1 si el numero es negativo, 0 si es cero y 1 si es positivo. Ejemplo:
select cumglobal,sign(cumglobal) from estudiante;

FUNCIONES PARA STRING

ASCII
Convierte un string a ascii pero solo de la primera letra. Ejemplo:
select carnet,ascii(carnet) from estudiante;

CHR
Devuelve el string del modo ascii. Ejemplo:
select carnet,chr(ascii(carnet)) from estudiante;
Manual De Administracin de DB2 Pgina 53


CONCAT
Concatena o une dos cadenas. Ejemplo:
select concat(carnet,nombres)from estudiante;
LENGTH
Devuelve el numero de caracteres y de byte de un valor puede ser cadena o string. Ejemplo:
select carnet,length(carnet)from estudiante;
SUBSTR
Substrae un tamao que se necesite de una cadena. Sintaxis:
substr(campo,inicio,logitud)
En donde campo es el nombre del campo o cadena, inicio es a partir de la posicin que substraer y
longitud cuantos valores a partir del inicio definido.
Ejemplo:
select nombres,substr(nombres,3,8) from estudiante;

LOWER
Transforma la cadena o campos en minsculas. Ejemplo:
select nombres,lower(nombres) from estudiante;

LCASE
Desarrolla la misma funcin de lower y transforma a minsculas tambin. Ejemplo:
select nombres,lcase(nombres) from estudiante;

UPPER
Transforma la cadena o campos en maysculas. Ejemplo:
select nombres,upper(nombres) from estudiante;


Manual De Administracin de DB2 Pgina 54

UCASE
Desarrolla la misma funcin de UPPER y transforma a maysculas tambin. Ejemplo:
select nombres,ucase(nombres) from estudiante;

LPAD
Hace una copia del texto hasta las posiciones indicadas. Sintaxis:
Lpad(campo,logitud)
En donde campo es el nombre del campo o cadena y longitud es la posicin hasta la cual llegar.
Ejemplo:
select lpad(nombres,3) from estudiante;

LTRIM
Devuelve la cadena hasta el ltimo espacio en blanco. Ejemplo:
select ltrim(nombres) from estudiante;

SPACE
Devuelve un espacio en el valor especificado. Ejemplo:
select space(cumglobal) from estudiante;

REPEAT
Devuelve la cadena tantas veces indicadas por un nmero. Ejemplo:
select repeat(nombres,3) from estudiante;

CHAR
Transforma la cadena en char. Ejemplo:
select char(nombres) from estudiante;




Manual De Administracin de DB2 Pgina 55

FUNCIONES CON FECHAS
CURREN DATE
Especifica lo hora y fecha del da actual de la sesin del sistema operativo usada. Ejemplo:
select current date, carnet from estudiante;

CURRENT TIME
Retorna la hora de la sesin actual del sistema operativo que est utilizando. Ejemplo:
select current time, carnet from estudiante;

DELETE
Es un borrado general, borra toda la fila que se ha especificado en la condicin.
Sintaxis:
Delete from nomtabla where condicin;
Donde nomtabla es el nombre de la tabla y condicin es la condicin establecida, si no la pone borrar
todos los datos de esa tabla.
Ejemplo:
delete from nota where codmat='API-115';

UPDATE
Actualiza los datos de una tabla.

UPDATE UN SOLO CAMPO
Sintaxis:
Update tabla set campo= asignacin where condicin
Donde tabla es el nombre de la tabla, campo es el registro a actualizar, asignacin es el valor que se
establecer al registro y condicin es la condicin establecida a la sentencia.

Ejemplo:
update estudiante set cumglobal=7.1 where carnet='cq06002';
Manual De Administracin de DB2 Pgina 56


UPDATE DE VARIOS CAMPOS
Actualiza varios campos a la vez.
Sintaxis:
Update tabla set campo1= asig1,campo2=asig2 where condicin
Donde tabla es el nombre de la tabla, campo1 y campo2 son los registros a actualizar, asig1 y asig2 son
los valores que se establecer al registro y condicin es la condicin establecida a la sentencia.
update estudiante set cumglobal=7.11,nombres='David Antonio' where carnet='cq06002';
--otra forma de ponerlo es
update estudiante set (cumglobal,nombres)=(7.0,'David Gerardo') where carnet='cq06002';


PROCEDIMIENTOS ALMACENADOS

PROCEDIMIENTO NORMAL
Un procedimiento almacenado sirve como un mdulo funcional dentro de la base de datos para realizar
diferentes operaciones.
Sintaxis:
Create procedure nomproc
Laguage tipleng
Begin
---------sentencias-------
------------------------------
End;



En donde nomproc es el nombre del procedimiento, tipleng es el tipo de lenguaje q esta ocupando esto
es opcional pero por defecto se pone y se si no se poone se sabe que es SQL y las sentencias son aquellas
que nos sirven para nuestras operaciones.
Manual De Administracin de DB2 Pgina 57

Ejemplo:
create procedure proc1
language sql
begin
insert into nota values (7.2,'cq06002','API-115');
end;

CALL
Es una sentencia que nos sirve para llamar al procedimiento.
Sintaxis:
Call nomproc;
En donde nomproc es el nombre del procedimiento a llamar.
Ejemplo:
call proc1;
En esta base los procedimientos no se actualizan, si no que ssi hace alguna modificacin en el
procedimiento y lo quiere correr para guardarlo tiene que eliminar el procedimiento si es que ya esta
guardado y correrlo nuevamente.

PROCEDIMIENTO CON VARIABLES

INTO EN SELECT
Los into en los select sirven para asignarles valor a una variable seleccionada.
Sintaxis:
Select campo into variable;
Donde campo es el nombre del campo del valor y variable es la variable donde lo almacenar.
Ejemplo:
create procedure proc2
language sql
begin
declare ap decimal(4,2) default 0;
Manual De Administracin de DB2 Pgina 58

select notafinal into ap from nota where codmat='IBD-115';
end;

call proc2;

PROCEDIMIENTOS CON VARIABLES IN OUT

IN
Es para las variables entrantes al procedimiento, es decir las que les mandan, este valor lo pone por
defecto.
Sintaxis:
Create procedure nomproc (variable tipodato)
O bien
Create procedure nomproc (in variable tipodato)

En donde nomproc es el nombre del procedimiento, variable es el nombre de la variable y tipodato es el
tipo de dato al que corresponde la variable.

Ejemplo:
create procedure proc3(varia decimal(4,2))
begin
update nota set notafinal=varia where codmat='IBD-115';
end;

call proc3(7.1);

--otra forma
create procedure proc4(in varia decimal(4,2))
begin
update nota set notafinal=varia where codmat='IBD-115';
end;
Manual De Administracin de DB2 Pgina 59

call proc4(7.0);

OUT
Se utiliza para establecer parmetros de salida.
Sintaxis:
Create procedure nomproc (out variable tipodato)

En donde nomproc es el nombre del procedimiento, variable es el nombre de la variable y tipodato es el
tipo de dato al que corresponde la variable.

Ejemplo:
create procedure proc5(out varia decimal(4,2))
begin
select notafinal into varia from nota where codmat='IBD-115';
end;

call proc5(?);
IN OUT
Sirve para establecer parametros que son de entrada pero que tambien se tieene que retornar un valor
de ellos.
Sintaxis:
Create procedure nomproc (in out variable tipodato)

En donde nomproc es el nombre del procedimiento, variable es el nombre de la variable y tipodato es el
tipo de dato al que corresponde la variable.
Ejemplo:
create procedure proc6(inout varia decimal(4,2))
begin
select notafinal into varia from nota where codmat='IBD-115';
end;

Manual De Administracin de DB2 Pgina 60

call proc6(7,?);

PROCEDIMIENTO CON ASIGNACION DE VARIABLES
Se utiliza para asignar un valor a una variable establecida. Ejemplo:
create procedure proc7(ap decimal(4,2))
begin
set ap=ap+2.1;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc7(5.0);

IF
Es una sentencia que se ocupa si se quiere establecer una condicin.
Sintaxis:
If condicin then
----sentencias----
End if;
En donde condicion es la condicion o las condiciones para ingresar a lo que se encuentra en el if.
Ejemplo:
create procedure proc8(ap decimal(4,2))
begin
if ap>5 then
set ap=ap+2;
end if;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc8(6);


Manual De Administracin de DB2 Pgina 61

IF ELSE
Es una sentencia que se ocupa por si no se cumple una condicin se establezca la otra, en nuestro caso
es si no se cumple.
Sintaxis:
If condicion1 then
---sentencia---
Else
---sentencia2----
End if;
En donde condicin1 se establece la condicin del if sentencia son las cosas a realizar si se cumple pero si
no se cumple entra al else y ejecuta las sentencia2 que sern operaciones.

Ejemplo:
create procedure proc9(ap decimal(4,2))
begin
if ap>5 then
set ap=ap+2;
else
set ap=ap+1;
end if;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc9(4);








Manual De Administracin de DB2 Pgina 62

ELSE IF
Sirve para crear mas condiciones anidadas.
Sintaxis:
If condicion1 then
---sentencia---
Elseif cond2 then
----sentencia----
else
---sentencia2----
End if;
En donde condicin1 se establece la condicin del if sentencia son las cosas a realizar si se cumple pero si
no se cumple entra al elsefi y establce la cond2 q ser una segunda condicin y sino se cumple entra al
else y ejecuta las sentencia3 que sern operaciones.

Ejemplo:
create procedure proc10(ap decimal(4,2))
begin
if ap>5 then
set ap=ap+2;
elseif(ap=2) then
set ap=2;
else
set ap=ap+1;
end if;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc10(2);




Manual De Administracin de DB2 Pgina 63

CASE
El case sirve para establecer condiciones as como el if pero de una forma ms ordenada estableciendo
casos.
CASO 1
Sintaxis:
Case
When cond then
---sentencia---
When cond2 then
--sentencia---
Else
----sentencia----
End case;
En donde cond1 y cond 2 son condiciones que se establecen para que ese caso sea cierto y las sentencia
son operaciones que se realizarn si se cumple ese caso.

Ejemplo:
create procedure proc11(ap decimal(4,2))
begin
case
when ap=5 then
set ap=ap+2;
when ap=2 then
set ap=2;
else
set ap=ap+1;
end case;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc11(5);

Manual De Administracin de DB2 Pgina 64

CASO2
Sintaxis:
Case var
When va1 then
---sentencia---
When val2 then
--sentencia---
Else
----sentencia----
End case;
En donde var es el nombre de una variable, va1 y val2 es el valor que tiene que cumplir var para entrar
en el caso y las sentencia son operaciones realizadas al cumplirse el caso.

Ejemplo:
create procedure proc12(ap decimal(4,2))
begin
case ap
when 5 then
set ap=ap+2;
when 2 then
set ap=2;
else
set ap=ap+1;
end case;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc12(2);




Manual De Administracin de DB2 Pgina 65

WHILE
Sirve para realizar operaciones en un ciclo determinado estableciendo una condicion.
Ejemplo:

create procedure proc13(ap decimal(4,2))
begin
declare c integer default 0;
while c<=5 do
set c=c+1;
end while;
set ap=c;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc13(1);

FOR
Es Un ciclo que se ocupa para no establecer una condicin sino que ya est definida por una variable y de
cuantas celdas voy a recorrer. No es necesario declarar la variable.
Sintaxis:
For var as consulta do
---sentencia---
End for;
En donde, var es la variable que recorrer, consulta es la consulta que se establecer a recorrer por lo
general es un select y sentencia son las operaciones que realizaremos.

Ejemplo:
create procedure proc14(ap decimal(4,2))
begin
declare c integer default 0;
for a as select notafinal from nota do
set c=c+1;
Manual De Administracin de DB2 Pgina 66

end for;
set ap=c;
update nota set notafinal=ap where codmat='IBD-115';
end;

call proc14(1);

FUNCIONES
NOTA: todas las sentencias anteriores pueden ser utilizadas en las funciones
FUNCION CON PARAMETROS
Las funciones son similares a los procedimientos almacenados solo que stas retornan un valor. Las
funciones pueden ser realizadas externamente a la instancia de la base de datos.

Sintaxis:
Create function nomfun (var tpd1) Returns tpd2
deterministic no external action contains sql
Begin atomic
Return var2
End;
En donde nomfun es el nombre de la funcin, var es la variable tpd1 es el tipo de dato de entrada tpd2
es el tipo de dato que retornar, var 2 es la variable que retornar con el tipo de dato definido.
Ejemplo:
create function fun1(ap decimal (4,2)) returns decimal(4,2)
deterministic no external action contains sql
begin atomic
declare c decimal(4,2) default 0;
set c=ap+2;
return c;
end;

Manual De Administracin de DB2 Pgina 67

Para corer una function lo que hacemos es mediante un select que tiene la siguiente Sintaxis:
Select nomfun(par) from sysibm.sysdummy1;
En donde nomfun es el nombre de la function, para son los parmetros de entrada que se tienen y
sysibm.sysdummy1 son los inicializadores de las tablas dentro del sistema y por donde se pueden
accesar o presentar la informacin dinmicamente.
select fun1(5) from sysibm.sysdummy1;
TRIGGERS
Son eventos asociados e implementados en la base de datos en donde se define una accin a partir de
otra en cualquier tabla.

Sintaxis:
create trigger nomtri
after insert on tabla
referencing new as et
for each row
begin atomic
---sentencia----
end;
En donde nomtri es el nombre del trigger, tabla es la tabla que tomaremos de referencia, et es el
nombre de la etiqueta que establecemos para un campo que ser insertado en este caso y sentencia son
las operaciones que realizaremos.
Ejemplo:
create trigger tr1
after insert on nota
referencing new as n
for each row
begin atomic
update estudiante set cumglobal=(select avg(notafinal) from nota where
carnet=n.carnet);
end;

Manual De Administracin de DB2 Pgina 68

Ahora lo probamos:
insert into nota values (7.5,'RM06016','IBD-115');

PAQUETES
Esto no es posible ya que en la versin no se pueden ocupar porque ya existen paquetes predestinados.

You might also like