Sie sind auf Seite 1von 98

Universidad Santiago de Cali

Bases de Datos
Autor: Rafael Alberto Moreno Parra
Comandos en IBM DB2

Contenido
Descarga ................................................................................................................................................................................................................................................................. 2
Instalacin .............................................................................................................................................................................................................................................................. 8
Iniciando con IBM Data Studio 4.1.2 ......................................................................................................................................................................................................... 42
Crear un nuevo esquema grficamente ................................................................................................................................................................................................... 47
Crear tablas grficamente ............................................................................................................................................................................................................................. 50
Crear tablas con comandos SQL.................................................................................................................................................................................................................. 53
Llave primaria compuesta y Llave fornea.............................................................................................................................................................................................. 56
Insertar datos en una tabla usando todos los campos ....................................................................................................................................................................... 59
Insertar datos en una tabla usando algunos campos ......................................................................................................................................................................... 61
Insertar gran cantidad de datos en una tabla ....................................................................................................................................................................................... 62
Consulta con SQL .............................................................................................................................................................................................................................................. 65
Consultas con clculos .................................................................................................................................................................................................................................... 66
Borrado de registros ........................................................................................................................................................................................................................................ 67
Actualizacin de registros .............................................................................................................................................................................................................................. 69
Alias en las columnas ...................................................................................................................................................................................................................................... 71
Limitacin de nmero de resultados .......................................................................................................................................................................................................... 72
Clculos en consultas....................................................................................................................................................................................................................................... 75
Cambiar nombre a una tabla ........................................................................................................................................................................................................................ 76
Adicionar un campo a una tabla existente .............................................................................................................................................................................................. 77
Cambiar el nombre a una columna o campo .......................................................................................................................................................................................... 78
Cambiar el tipo de dato a una columna o campo ................................................................................................................................................................................. 79
Eliminar una columna o campo.................................................................................................................................................................................................................... 80
Cambiar el formato de presentacin de la fecha .................................................................................................................................................................................. 81
Hora y fecha actual........................................................................................................................................................................................................................................... 82
Extraer ao, mes, da de una fecha ........................................................................................................................................................................................................... 84
Calcular la edad de una persona ................................................................................................................................................................................................................. 85
Concatenar ........................................................................................................................................................................................................................................................... 86
Operador lgico .................................................................................................................................................................................................................................................. 87
Combinando tablas ........................................................................................................................................................................................................................................... 90
Uso del JOIN ........................................................................................................................................................................................................................................................ 92
Uso del NOT ......................................................................................................................................................................................................................................................... 93
Uso del UNION.................................................................................................................................................................................................................................................... 95
Diferencia de UNION con UNION ALL .................................................................................................................................................................................................... 96
SubSelecciones................................................................................................................................................................................................................................................... 98

1
Descarga
Dirjase al sitio https://www.ibm.com/analytics/us/en/technology/db2/ y de clic en Try DB2

Ilustracin 1: Sitio oficial de IBM DB2 en https://www.ibm.com/analytics/us/en/technology/db2/

Ilustracin 2: Dar clic en "Browse DB2 trials"

2
Ilustracin 3: Se trabajar con IBM DB2 Express-C

Ilustracin 4: De clic en "Proceed without an IBM ID"

3
Ilustracin 5: Seleccione el instalador segn el sistema operativo donde instalar el gestor

Ilustracin 6: Datos pedidos por IBM

4
Ilustracin 7: De clic en "I agree" y luego en el botn "I confirm"

Ilustracin 8: Puede descargarlo por un instalador Web o descargar todo el instalador via http

5
Ilustracin 9: En este caso se descarga completamente

Ilustracin 10: Este es el instalador

6
Ilustracin 11: Datos del instalador

7
Instalacin

Ilustracin 12: Se descomprime el archivo .zip y se ejecuta setup.exe

Ilustracin 13: Pantalla de inicio de instalacin

8
Ilustracin 14: Al dar clic en Informacin del release

Ilustracin 15: Al dar clic en Planificacin previa a la instalacin

9
Ilustracin 16: Al dar clic en Informacin de la actualizacin

Ilustracin 17: Al dar clic en Instalar un producto, luego se presiona el botn Instalar nuevo

10
Ilustracin 18: Inicia la instalacin

Ilustracin 19: Leer y aceptar los trminos de la licencia

11
Ilustracin 20: Se selecciona instalacin Tpica

Ilustracin 21: Se selecciona Instalar DB2 Express-C en este sistema y guardar mis valores en un archivo de respuestas

12
Ilustracin 22: Directorio donde se instalar el gestor de base de datos

Ilustracin 23: Dejar por defecto que instale el servidor SSH

13
Ilustracin 24: Cuenta del administrador y la contrasea

Ilustracin 25: Instalar instancia DB2

14
Ilustracin 26: Resumen de la instalacin

Ilustracin 27: Se recomienda leer este resumen

15
Ilustracin 28: Instalacin en progreso

Ilustracin 29: Crea una instancia llamada SAMPLE

16
Ilustracin 30: Instalacin finalizada

Ilustracin 31: La pantalla de bienvenida

Cerramos esa pantalla de bienvenida. Empezaremos con lo instalado en el sistema operativo.

17
Iniciando e instalando un cliente grfico para IBM DB2

Ilustracin 32: En el men de Windows 10 aparece el grupo de IBM DB2

18
Ilustracin 33: Dando clic a Primeros pasos de DB2, obtenemos de nuevo la pantalla de bienvenida. Se procede a instalar IBM Data Studio

19
En https://www.ibm.com/developerworks/downloads/im/data/ es la web oficial de IBM Data Studio. Va a ser necesaria esta herramienta
para tener un entorno grfico en el cul se puedan hacer operaciones sobre la base de datos.

Ilustracin 34: Descargar IBM Data Studio

Ilustracin 35: Se va a requerir un usuario de IBM para descargar

20
Ilustracin 36: OJO! Es la versin 4.1.x

21
Ilustracin 37: Comprimido del IBM Data Studio versin 4.1.x

Ilustracin 38: Se ejecuta launchpad.exe

22
Ilustracin 39: Inicia la instalacin del IBM Data Studio 4.1.2

23
Ilustracin 40: Informacin de la versin

24
Ilustracin 41: Apuntes sobre esta versin 4.1.2

25
Ilustracin 42: El tipo de instalacin a realizar. Si tiene usuario administrador se recomienda el primero

26
Ilustracin 43: Primero se instala el "Installation Manager"

27
Ilustracin 44: Leer y aceptar los trminos de acuerdo de licencia

28
Ilustracin 45: Donde va a ubicar los archivos

29
Ilustracin 46: El resumen de la instalacin

Ilustracin 47: Descarga e instala

30
Ilustracin 48: El "Installation Manager" ha terminado de instalarse

31
Ilustracin 49: Pantalla de inicio del "Installation Manager

32
Ilustracin 50: Ahora se procede a instalar el IBM Data Studio 4.1.2

Ilustracin 51: Preparativos para instalar el IBM Data Studio

33
Ilustracin 52: Leer y aceptar la licencia

34
Ilustracin 53: Dnde sern instalados los archivos

35
Ilustracin 54: En este manual se cambi el sitio a C:\DataStudio

36
Ilustracin 55: Creacin de paquetes

37
Ilustracin 56: Idioma que se instala

38
Ilustracin 57: Los componentes a actualizar. En este manual se selecciona todo.

39
Ilustracin 58: Resumen de la instalacin

40
Ilustracin 59: Instalacin terminada

41
Iniciando con IBM Data Studio 4.1.2
Este software debe Ejecutar como Administrador

Ilustracin 60: Entrada del men de Windows 10 del IBM Data Studio

Ilustracin 61: Inicia el cliente

Ilustracin 62: Directorio de trabajo

42
Ilustracin 63: Pantalla inicial

43
Ilustracin 64: Al abrir el rbol en "localhost" muestra que existe la instancia SAMPLE pero est desconectado

Ilustracin 65: Dar clic botn derecho en SAMPLE y seleccionar "Hacer ping..."

44
Ilustracin 66: Se ponen los datos de usuario y contrasea, luego se da clic en Probar conexin

Ilustracin 67: Si todo marcha bien, se tiene un Ping satisfactorio!

Ilustracin 68: Ahora a conectarse

45
Ilustracin 69: Los objetos de la base SAMPLE

46
Crear un nuevo esquema grficamente

Ilustracin 70: Al dar clic en Esquemas

47
Ilustracin 71: Clic botn derecho y se selecciona "Crear esquema"

Ilustracin 72: Nombre del esquema

48
Ilustracin 73: Se pone un nombre

Ilustracin 74: Se crea el esquema

49
Crear tablas grficamente

Ilustracin 75: Dar clic botn derecho en "Tablas" y seleccionar la opcin "Crear tabla"

Ilustracin 76: Pide en que esquema estar esa tabla. En este manual se pondr en el esquema recien creado

50
Ilustracin 77: Nombre de la tabla

Ilustracin 78: En Columnas se da clic en el botn "Nueva"

Ilustracin 79: Se selecciona llave primaria en este caso y el tipo de dato INTEGER

51
Ilustracin 80: Para el Nombre el tipo de dato es Varchar

Ilustracin 81: Y se observa en "Tablas" que la tabla ha sido creada. Debe dar clic en "Refrescar"

Ilustracin 82: Al dar doble clic, se muestra la estructura de la tabla

52
Crear tablas con comandos SQL

Este sera el comando


CREATE TABLE prueba.pelicula (
codigo Integer PRIMARY KEY not null,
titulo varchar(40) NOT NULL,
presupuesto integer NOT NULL,
fechaproduccion date,
genero varchar(10),
duracion integer
)

Ilustracin 83: Vaya por la opcin de ingresar comandos SQL

Ilustracin 84: Crea la tabla con el comando SQL

53
Ilustracin 85: Se prueba efectivamente que la tabla est creada

Ilustracin 86: Y la estructura es la esperada

Otros ejemplos
CREATE TABLE Prueba.ciudad (
codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

CREATE TABLE Prueba.colorojos (


codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

CREATE TABLE Prueba.division (


codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

CREATE TABLE Prueba.eps (


codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

CREATE TABLE Prueba.estadocivil (


codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

CREATE TABLE Prueba.fondopension (


codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

CREATE TABLE Prueba.profesion (


codigo integer PRIMARY KEY NOT NULL,
nombre varchar(255) NOT NULL
);

54
CREATE TABLE Prueba.serie (
Codigo integer PRIMARY KEY NOT NULL,
Nombre varchar(30) NOT NULL
);

Ilustracin 87: Se crean el resto de tablas

55
Llave primaria compuesta y Llave fornea

Una serie de televisin tiene varios personajes, luego en la tabla de personajes la llave primaria son dos campos: el cdigo de la serie de
televisin y el cdigo del personaje. Adems el cdigo de la serie en la tabla personaje tiene relacin con la tabla de series. Este sera el
comando:

CREATE TABLE Prueba.personaje (


Serie integer NOT NULL REFERENCES Prueba.serie(Codigo),
Codigo integer NOT NULL,
Nombre varchar(50) NOT NULL,
PRIMARY KEY (Serie,Codigo)
);

Ilustracin 88: Ejecucin correcta del script

Otro ejemplo

CREATE TABLE Prueba.nominanorm (


Codigo integer PRIMARY KEY NOT NULL,
Nombre1 varchar(255) NOT NULL,
Nombre2 varchar(255) NOT NULL,
Apellido1 varchar(255) NOT NULL,
Apellido2 varchar(255) NOT NULL,
TipoSangre varchar(255) NOT NULL,
EstadoCivil integer NOT NULL REFERENCES Prueba.estadocivil(codigo),
Ciudad integer NOT NULL REFERENCES Prueba.ciudad(codigo),
Altura integer NOT NULL,
Peso integer NOT NULL,
FechaNace date NOT NULL,
NumeroCalzado integer NOT NULL,
ColorOjos integer NOT NULL REFERENCES Prueba.colorojos(codigo),
ZurdoDiestro varchar(255) NOT NULL,
EPS integer NOT NULL REFERENCES Prueba.eps(codigo),
FondoPensiones integer NOT NULL REFERENCES Prueba.fondopension(codigo),
Profesion integer NOT NULL REFERENCES Prueba.profesion(codigo),
Division integer NOT NULL REFERENCES Prueba.division(codigo)
);

56
Ilustracin 89: Script y ejecucin

Ilustracin 90: Tabla creada

57
Ilustracin 91: Estructura de la tabla creada

58
Insertar datos en una tabla usando todos los campos

insert into Prueba.ciudad(codigo,nombre) values (1,'Alcal');

Ilustracin 92: Insertar registro, luego presione ejecutar

Ilustracin 93: Consulte la tabla y presione vista de datos

59
Ilustracin 94: El registro insertado est en la tabla

O tambin

insert into Prueba.ciudad values (2,'Andaluca');

Ilustracin 95: Otra forma de insertar datos

60
Insertar datos en una tabla usando algunos campos
Este sera un ejemplo de instruccin
insert into Prueba.Pelicula (Codigo, Titulo, presupuesto) values(1, 'Thor: Ragnarok.', 150000000);

Ilustracin 96: Insertar registro pero de algunos campos

Ilustracin 97: Registro insertado

61
Insertar gran cantidad de datos en una tabla
Tiene los datos en un archivo CSV

Ilustracin 98: Archivo CSV de datos, separador es coma

Se hace uso de esta instruccin:

CALL SYSPROC.ADMIN_CMD('import from "C:\Users\engin\Desktop\ciudad.csv" OF DEL INSERT INTO prueba.ciudad(codigo, nombre)');

Y luego se importa

Ilustracin 99: Importacin del archivo CSV

62
Ilustracin 100: Importacin de los registros. Observe el caso de las tildes.

Para arreglar las tildes y s, debe convertir el archivo CSV en codificacin ANSI

Ilustracin 101: Convierta el archivo en codificacin ANSI

Se repite la misma operacin de importacin, sin variar nada

63
Ilustracin 102: Importacin correcta con las tildes

Otro ejemplo:

CALL SYSPROC.ADMIN_CMD('import from "C:\Users\engin\Desktop\nominanorm.csv" OF DEL INSERT INTO prueba.nominanorm(Codigo,


Nombre1, Nombre2, Apellido1, Apellido2, TipoSangre, EstadoCivil, Ciudad, Altura, Peso, FechaNace, NumeroCalzado, ColorOjos,
ZurdoDiestro, EPS, FondoPensiones, Profesion, Division)');

64
Consulta con SQL

select * from prueba.pelicula

Ilustracin 103: Consultar todos los campos

select codigo, titulo from prueba.pelicula

Ilustracin 104: Consultar algunos campos

65
Consultas con clculos
La siguiente consulta muestra la altura y el peso de la persona, y adicionalmente hace el clculo del ndice de masa corporal. Observe el
uso de cast para convertir valores enteros en valores de tipo float y poder hacer el clculo

select Nombre1, Nombre2, Altura, Peso,


cast(Peso as float)/(cast(Altura as float)/100*cast(Altura as float)/100) as IMC
from Prueba.nominanorm

Ilustracin 105: Calculo en la consulta

66
Borrado de registros

delete from Prueba.nominanorm where Codigo=4001;

Ilustracin 106: Registros originales

Ilustracin 107: Borrado del registro

67
Ilustracin 108: Nueva consulta en donde se muestra que el registro ha sido borrado

68
Actualizacin de registros

update Prueba.nominanorm set Nombre1='zzzzzz' where Codigo=4002;

Ilustracin 109: Registros originales

Ilustracin 110: Actualizacin del registro

69
Ilustracin 111: Se observa el registro actualizado

70
Alias en las columnas
El campo calculado se le pone un alias

select Nombre1, Nombre2, Altura, Peso,


cast(Peso as float)/(cast(Altura as float)/100*cast(Altura as float)/100) as IMC
from Prueba.nominanorm

Ilustracin 112: El campo calculado tiene un alias

71
Limitacin de nmero de resultados

Se hace uso de la palabra reservada LIMIT.

select Nombre1, Nombre2, Altura, Peso,

cast(Peso as float)/(cast(Altura as float)/100*cast(Altura as float)/100) as IMC

from Prueba.nominanorm

limit 4

Ilustracin 113: Se limita el nmero de registros a mostrar

Se puede hacer uso de LIMIT 0 para probar una consulta SQL sin necesidad que se ejecute. til si la base de datos es muy grande y no se
quiere traer datos.

72
Ilustracin 114: LIMIT 0 hace que se valide la sentencia sin procesarla

Un uso importante de LIMIT es para paginacin al mostrar la tpica pantalla de consulta. De esa forma se restringe la cantidad de
registros. LIMIT se combina con OFFSET, donde LIMIT es el nmero de registros a traer y OFFSET desde que registro.

select Codigo, Nombre1, Nombre2, Altura, Peso,

cast(Peso as float)/(cast(Altura as float)/100*cast(Altura as float)/100) as IMC

from Prueba.nominanorm

limit 4 offset 2

73
74
Clculos en consultas

select 3.1415926537 / 9.123 FROM SYSIBM.SYSDUMMY1

Ilustracin 115: Operacin matemtica directa

Ver ms en:
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0011043.html#r0011043__t1104
3-6

75
Cambiar nombre a una tabla

rename table Prueba.serie to series

Ilustracin 116: Renombrar una tabla

OJO! No es posible renombrar una tabla si esta tiene referencias, por ejemplo:

Ilustracin 117: Nominanorm tiene referencias de otras tablas, no puede renombrarse

76
Adicionar un campo a una tabla existente

alter table Prueba.series add column sinopsis varchar(50) default null;

Ilustracin 118: Adicionar una columna a una tabla

Ilustracin 119: Columna adicionada

77
Cambiar el nombre a una columna o campo

alter table Prueba.series rename column sinopsis to descripcion;

Ilustracin 120: Se renombra una columna

Ilustracin 121: Columna renombrada

78
Cambiar el tipo de dato a una columna o campo

alter table Prueba.series alter column descripcion set data type integer;

Ilustracin 122: Cambia el tipo de dato de una columna de una tabla

Ilustracin 123: Tipo de dato de la columna es cambiado

79
Eliminar una columna o campo

alter table Prueba.series drop column descripcion;

Ilustracin 124: Eliminando una columna

Ilustracin 125: Columna eliminada

80
Cambiar el formato de presentacin de la fecha
Ver: https://www.ibm.com/developerworks/data/library/techarticle/0211yip/0211yip3.html

http://www-01.ibm.com/support/docview.wss?uid=swg21647834

Ilustracin 126: Mostrar la fecha en otro formato

81
Hora y fecha actual

SELECT current date FROM sysibm.sysdummy1;

SELECT current time FROM sysibm.sysdummy1;

SELECT current timestamp FROM sysibm.sysdummy1;

Ilustracin 127: Fecha actual

Ilustracin 128: Hora actual

82
Ilustracin 129: Fecha y hora actual

83
Extraer ao, mes, da de una fecha

select fechanace, YEAR(fechanace), MONTH(fechanace), DAY(fechanace) FROM prueba.nominanorm;

Ilustracin 130: Extrae el ao, mes, da de un campo de fecha. Vista como texto.

Ilustracin 131: Extrae el ao, mes, da de un campo de fecha. Vista como tabla

84
Calcular la edad de una persona

select nombre1, fechanace,

integer(floor((current date - fechanace)/10000)) as edad

from prueba.nominanorm;

Ilustracin 132: Calcula la edad de una persona

85
Concatenar
Se hace uso de la funcin concat, pero esta recibe slo dos parmetros:

select concat(nombre1, nombre2) as nombre from prueba.nominanorm;

Ilustracin 133: Concatena los dos nombres

Si se requiere que exista un espacio entre ambos nombres, se debe usar la funcin de esta forma:

select concat( concat(nombre1, ' '), nombre2) as nombre from prueba.nominanorm;

Ilustracin 134: Concatena los nombres poniendo un espacio intermedio

86
Operador lgico
SELECT 56 IN (12, 45, 11, 23, 56, 78, 90, 11) FROM SYSIBM.SYSDUMMY1

No funciona con el IBM Data Studio porque no lo permite una conexin JDBC

Ilustracin 135: No es permitida esta operacin desde el cliente JDBC

Pero si lo hace directo, es posible

Ilustracin 136: Lnea de comandos directa con IBM DB2

87
Ilustracin 137: Se conecta a SAMPLE

Ilustracin 138: Usando la lnea de comandos (conexin directa a DB2) si es posible

88
Ilustracin 139: Tabla del AND y del OR

SELECT 5 > 4 FROM SYSIBM.SYSDUMMY1

Ilustracin 140: Comparativa

Operadores lgicos:

Operador
Mayor que >
Menor que <
Mayor o igual que >=
Menor o igual que <=
Diferente <>
Igual =

89
Combinando tablas

Tenemos la tabla series de televisin

Ilustracin 141: Tabla de series de televisin

Y la tabla de personajes

Ilustracin 142: Tabla de personajes por serie

Se requiere un informe que muestre el nombre de la serie y los personajes

SELECT Prueba.serie.Nombre, Prueba.personaje.Nombre


FROM Prueba.personaje, Prueba.serie
WHERE Prueba.personaje.Serie = Prueba.serie.Codigo;

90
Ilustracin 143: Traer el nombre de la serie junto con el personaje

91
Uso del JOIN

Hace lo mismo que la consulta anterior


SELECT Prueba.serie.Nombre, Prueba.personaje.Nombre
FROM Prueba.personaje
INNER JOIN Prueba.serie ON Prueba.personaje.Serie = Prueba.serie.Codigo;

Ilustracin 144: Uso del JOIN para traer el nombre de la serie y el personaje

92
Uso del NOT
Es el operador negacin en una sentencia lgica.

SELECT * from Prueba.serie where codigo = 1

Ilustracin 145: Consulta normal

93
SELECT * from Prueba.serie where not codigo = 1

Ilustracin 146: Uso del NOT

94
Uso del UNION
Une dos o ms consultas. Mismo nmero de campos y tipo de dato

select * from Prueba.colorojos union select * from Prueba.estadocivil

Ilustracin 147: Uso del UNION

95
Diferencia de UNION con UNION ALL
Modificando para que se muestre slo el cdigo, se obtiene

Ilustracin 148: UNION hace un DISTINCT de los datos retornados

No se repiten los cdigos. UNION hace un DISTINCT

Ahora se cambia la instruccin

96
Ilustracin 149: UNION ALL no hace DISTINCT

El UNION ALL trae la suma de ambas consultas sin importar que los datos se repitan

97
SubSelecciones
Una instruccin trae un resultado que es usado por otra seleccin. Ejemplo:

select Nombre1, Nombre2, Altura Muestre el nombre y altura de las personas con mayor
from Prueba.nominanorm altura
where Altura = (select max(Altura) from Prueba.nominanorm);

Ilustracin 150: Subseleccin

98

Das könnte Ihnen auch gefallen