IBM-DB2

Universidad Santiago de Cali Bases de Datos Autor: Rafael Alberto Moreno Parra Comandos en IBM DB2 Contenido Descarga ..

Views 173 Downloads 3 File size 5MB

Report DMCA / Copyright

DOWNLOAD FILE

Citation preview

Universidad Santiago de Cali Bases de Datos Autor: Rafael Alberto Moreno Parra Comandos en IBM DB2 Contenido Descarga ................................................................................................................................................................................................................................................................. 2 Instalación .............................................................................................................................................................................................................................................................. 8 Iniciando con IBM Data Studio 4.1.2 ......................................................................................................................................................................................................... 42 Crear un nuevo esquema gráficamente ................................................................................................................................................................................................... 47 Crear tablas gráficamente ............................................................................................................................................................................................................................. 50 Crear tablas con comandos SQL.................................................................................................................................................................................................................. 53 Llave primaria compuesta y Llave foránea.............................................................................................................................................................................................. 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 cálculos .................................................................................................................................................................................................................................... 66 Borrado de registros ........................................................................................................................................................................................................................................ 67 Actualización de registros .............................................................................................................................................................................................................................. 69 Alias en las columnas ...................................................................................................................................................................................................................................... 71 Limitación de número de resultados .......................................................................................................................................................................................................... 72 Cálculos 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 presentación de la fecha .................................................................................................................................................................................. 81 Hora y fecha actual........................................................................................................................................................................................................................................... 82 Extraer año, mes, día de una fecha ........................................................................................................................................................................................................... 84 Calcular la edad de una persona ................................................................................................................................................................................................................. 85 Concatenar ........................................................................................................................................................................................................................................................... 86 Operador lógico .................................................................................................................................................................................................................................................. 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 Diríjase al sitio https://www.ibm.com/analytics/us/en/technology/db2/

y de clic en “Try DB2”

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

Ilustración 2: Dar clic en "Browse DB2 trials"

2

Ilustración 3: Se trabajará con IBM DB2 Express-C

Ilustración 4: De clic en "Proceed without an IBM ID"

3

Ilustración 5: Seleccione el instalador según el sistema operativo donde instalará el gestor

Ilustración 6: Datos pedidos por IBM

4

Ilustración 7: De clic en "I agree" y luego en el botón "I confirm"

Ilustración 8: Puede descargarlo por un instalador Web o descargar todo el instalador via http

5

Ilustración 9: En este caso se descarga completamente

Ilustración 10: Este es el instalador

6

Ilustración 11: Datos del instalador

7

Instalación

Ilustración 12: Se descomprime el archivo .zip y se ejecuta setup.exe

Ilustración 13: Pantalla de inicio de instalación

8

Ilustración 14: Al dar clic en “Información del release”

Ilustración 15: Al dar clic en “Planificación previa a la instalación”

9

Ilustración 16: Al dar clic en “Información de la actualización”

Ilustración 17: Al dar clic en “Instalar un producto”, luego se presiona el botón “Instalar nuevo”

10

Ilustración 18: Inicia la instalación

Ilustración 19: Leer y aceptar los términos de la licencia

11

Ilustración 20: Se selecciona instalación “Típica”

Ilustración 21: Se selecciona “Instalar DB2 Express-C en este sistema y guardar mis valores en un archivo de respuestas”

12

Ilustración 22: Directorio donde se instalará el gestor de base de datos

Ilustración 23: Dejar por defecto que instale el servidor SSH

13

Ilustración 24: Cuenta del administrador y la contraseña

Ilustración 25: Instalar instancia DB2

14

Ilustración 26: Resumen de la instalación

Ilustración 27: Se recomienda leer este resumen

15

Ilustración 28: Instalación en progreso

Ilustración 29: Crea una instancia llamada SAMPLE

16

Ilustración 30: Instalación finalizada

Ilustración 31: La pantalla de bienvenida

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

17

Iniciando e instalando un cliente gráfico para IBM DB2

Ilustración 32: En el menú de Windows 10 aparece el grupo de IBM DB2

18

Ilustración 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 gráfico en el cuál se puedan hacer operaciones sobre la base de datos.

Ilustración 34: Descargar IBM Data Studio

Ilustración 35: Se va a requerir un usuario de IBM para descargar

20

Ilustración 36: ¡OJO! Es la versión 4.1.x

21

Ilustración 37: Comprimido del IBM Data Studio versión 4.1.x

Ilustración 38: Se ejecuta launchpad.exe

22

Ilustración 39: Inicia la instalación del IBM Data Studio 4.1.2

23

Ilustración 40: Información de la versión

24

Ilustración 41: Apuntes sobre esta versión 4.1.2

25

Ilustración 42: El tipo de instalación a realizar. Si tiene usuario administrador se recomienda el primero

26

Ilustración 43: Primero se instala el "Installation Manager"

27

Ilustración 44: Leer y aceptar los términos de acuerdo de licencia

28

Ilustración 45: Donde va a ubicar los archivos

29

Ilustración 46: El resumen de la instalación

Ilustración 47: Descarga e instala

30

Ilustración 48: El "Installation Manager" ha terminado de instalarse

31

Ilustración 49: Pantalla de inicio del "Installation Manager

32

Ilustración 50: Ahora se procede a instalar el IBM Data Studio 4.1.2

Ilustración 51: Preparativos para instalar el IBM Data Studio

33

Ilustración 52: Leer y aceptar la licencia

34

Ilustración 53: Dónde serán instalados los archivos

35

Ilustración 54: En este manual se cambió el sitio a C:\DataStudio

36

Ilustración 55: Creación de paquetes

37

Ilustración 56: Idioma que se instala

38

Ilustración 57: Los componentes a actualizar. En este manual se selecciona todo.

39

Ilustración 58: Resumen de la instalación

40

Ilustración 59: Instalación terminada

41

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

Ilustración 60: Entrada del menú de Windows 10 del IBM Data Studio

Ilustración 61: Inicia el cliente

Ilustración 62: Directorio de trabajo

42

Ilustración 63: Pantalla inicial

43

Ilustración 64: Al abrir el árbol en "localhost" muestra que existe la instancia SAMPLE pero está desconectado

Ilustración 65: Dar clic botón derecho en SAMPLE y seleccionar "Hacer ping..."

44

Ilustración 66: Se ponen los datos de usuario y contraseña, luego se da clic en “Probar conexión”

Ilustración 67: Si todo marcha bien, se tiene un ¡Ping satisfactorio!

Ilustración 68: Ahora a conectarse

45

Ilustración 69: Los objetos de la base SAMPLE

46

Crear un nuevo esquema gráficamente

Ilustración 70: Al dar clic en Esquemas

47

Ilustración 71: Clic botón derecho y se selecciona "Crear esquema"

Ilustración 72: Nombre del esquema

48

Ilustración 73: Se pone un nombre

Ilustración 74: Se crea el esquema

49

Crear tablas gráficamente

Ilustración 75: Dar clic botón derecho en "Tablas" y seleccionar la opción "Crear tabla"

Ilustración 76: Pide en que esquema estará esa tabla. En este manual se pondrá en el esquema recien creado

50

Ilustración 77: Nombre de la tabla

Ilustración 78: En Columnas se da clic en el botón "Nueva"

Ilustración 79: Se selecciona llave primaria en este caso y el tipo de dato INTEGER

51

Ilustración 80: Para el Nombre el tipo de dato es Varchar

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

Ilustración 82: Al dar doble clic, se muestra la estructura de la tabla

52

Crear tablas con comandos SQL Este sería 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 )

Ilustración 83: Vaya por la opción de ingresar comandos SQL

Ilustración 84: Crea la tabla con el comando SQL

53

Ilustración 85: Se prueba efectivamente que la tabla está creada

Ilustración 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 );

Ilustración 87: Se crean el resto de tablas

55

Llave primaria compuesta y Llave foránea Una serie de televisión tiene varios personajes, luego en la tabla de personajes la llave primaria son dos campos: el código de la serie de televisión y el código del personaje. Además el código de la serie en la tabla personaje tiene relación con la tabla de series. Este sería 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) );

Ilustración 88: Ejecución 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

Ilustración 89: Script y ejecución

Ilustración 90: Tabla creada

57

Ilustración 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á');

Ilustración 92: Insertar registro, luego presione ejecutar

Ilustración 93: Consulte la tabla y presione vista de datos

59

Ilustración 94: El registro insertado está en la tabla

O también insert into Prueba.ciudad values (2,'Andalucía');

Ilustración 95: Otra forma de insertar datos

60

Insertar datos en una tabla usando algunos campos Este sería un ejemplo de instrucción insert into Prueba.Pelicula (Codigo, Titulo, presupuesto) values(1, 'Thor: Ragnarok.', 150000000);

Ilustración 96: Insertar registro pero de algunos campos

Ilustración 97: Registro insertado

61

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

Ilustración 98: Archivo CSV de datos, separador es coma

Se hace uso de esta instrucción: CALL SYSPROC.ADMIN_CMD('import from "C:\Users\engin\Desktop\ciudad.csv" OF DEL INSERT INTO prueba.ciudad(codigo, nombre)'); Y luego se importa

Ilustración 99: Importación del archivo CSV

62

Ilustración 100: Importación de los registros. Observe el caso de las tildes.

Para arreglar las tildes y Ñs, debe convertir el archivo CSV en codificación ANSI

Ilustración 101: Convierta el archivo en codificación ANSI

Se repite la misma operación de importación, sin variar nada

63

Ilustración 102: Importación 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

Ilustración 103: Consultar todos los campos

O select codigo, titulo from prueba.pelicula

Ilustración 104: Consultar algunos campos

65

Consultas con cálculos La siguiente consulta muestra la altura y el peso de la persona, y adicionalmente hace el cálculo del índice de masa corporal. Observe el uso de “cast” para convertir valores enteros en valores de tipo float y poder hacer el cálculo

select Nombre1, Nombre2, Altura, Peso, cast(Peso as float)/(cast(Altura as float)/100*cast(Altura as float)/100) as IMC from Prueba.nominanorm

Ilustración 105: Calculo en la consulta

66

Borrado de registros delete from Prueba.nominanorm where Codigo=4001;

Ilustración 106: Registros originales

Ilustración 107: Borrado del registro

67

Ilustración 108: Nueva consulta en donde se muestra que el registro ha sido borrado

68

Actualización de registros update Prueba.nominanorm set Nombre1='zzzzzz' where Codigo=4002;

Ilustración 109: Registros originales

Ilustración 110: Actualización del registro

69

Ilustración 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

Ilustración 112: El campo calculado tiene un alias

71

Limitación de número 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

Ilustración 113: Se limita el número 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

Ilustración 114: LIMIT 0 hace que se valide la sentencia sin procesarla

Un uso importante de LIMIT es para paginación al mostrar la típica pantalla de consulta. De esa forma se restringe la cantidad de registros. LIMIT se combina con OFFSET, donde LIMIT es el número 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

Cálculos en consultas select 3.1415926537 / 9.123 FROM SYSIBM.SYSDUMMY1

Ilustración 115: Operación matemática directa

Ver más 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

Ilustración 116: Renombrar una tabla

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

Ilustración 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;

Ilustración 118: Adicionar una columna a una tabla

Ilustración 119: Columna adicionada

77

Cambiar el nombre a una columna o campo alter table Prueba.series rename column sinopsis to descripcion;

Ilustración 120: Se renombra una columna

Ilustración 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;

Ilustración 122: Cambia el tipo de dato de una columna de una tabla

Ilustración 123: Tipo de dato de la columna es cambiado

79

Eliminar una columna o campo alter table Prueba.series drop column descripcion;

Ilustración 124: Eliminando una columna

Ilustración 125: Columna eliminada

80

Cambiar el formato de presentación 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

Ilustración 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;

Ilustración 127: Fecha actual

Ilustración 128: Hora actual

82

Ilustración 129: Fecha y hora actual

83

Extraer año, mes, día de una fecha select fechanace, YEAR(fechanace), MONTH(fechanace), DAY(fechanace) FROM prueba.nominanorm;

Ilustración 130: Extrae el año, mes, día de un campo de fecha. Vista como texto.

Ilustración 131: Extrae el año, mes, día 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;

Ilustración 132: Calcula la edad de una persona

85

Concatenar Se hace uso de la función “concat”, pero esta recibe sólo dos parámetros: select concat(nombre1, nombre2) as nombre from prueba.nominanorm;

Ilustración 133: Concatena los dos nombres

Si se requiere que exista un espacio entre ambos nombres, se debe usar la función de esta forma: select concat( concat(nombre1, ' '), nombre2) as nombre from prueba.nominanorm;

Ilustración 134: Concatena los nombres poniendo un espacio intermedio

86

Operador lógico 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 conexión JDBC

Ilustración 135: No es permitida esta operación desde el cliente JDBC

Pero si lo hace directo, es posible

Ilustración 136: Línea de comandos directa con IBM DB2

87

Ilustración 137: Se conecta a SAMPLE

Ilustración 138: Usando la línea de comandos (conexión directa a DB2) si es posible

88

Ilustración 139: Tabla del AND y del OR

SELECT 5 > 4 FROM SYSIBM.SYSDUMMY1

Ilustración 140: Comparativa

Operadores lógicos: Operador Mayor que Menor que Mayor o igual que Menor o igual que Diferente Igual

> < >=