Este gráfico muestra los tipos de datos internos que ofrece DB2. Hay diferentes tipos de datos para almacenar tipos numéricos, cadenas fechas y horas, datos xml objetos de gran tamaño y así sucesivamente una descripción detallada de cada tipo de datos se puede encontrar en el libro electrónico gratuito "Conociendo al DB2 Express-C”. Por ejemplo, tipos de datos para objetos grandes como los BLOBs almacenan información binaria como videos, los CLOB puede almacenar libros Los DBCLOB pueden almacenar objetos de gran tamaño que utilizan caracteres de doble byte, como los caracteres chinos. También puedes crear tu propio tipo de datos construido sobre la base de los tipos de datos internos. Estos se definen como Tipos Definidos por el Usuario o UDT. Una de las razones de la utilización de los UDT es hacer cumplir reglas. Por ejemplo, en la diapositiva, la tabla persona fue creada con tres columnas. Por un momento, imagina que la columna 'weight_p' y 'weight_k' se definen como enteros y no de tipo libras y kilogramos, respectivamente. Esto significa que puedes realizar comparaciones entre weight_p y weight_k porque ambos son enteros. Sin embargo, desde un punto de vista de negocios o un punto de la vida real ¿Tiene sentido comparar libras con kilogramos? Mediante el uso de UDT, y usándolos como tipos de datos de columnas se fuerza el cumplimiento de las reglas, no permitiendo las comparaciones. La cláusula 'with comparisons' en la sintaxis de 'create distinct type' También se utiliza para generar funciones de conversión (casting) de forma automática. El nombre de la función de conversión que se crea automáticamente tendrá el mismo nombre que el UDT creado. Por ejemplo, si el UDT libra se crea utilizando 'with comparisons' la función de de conversión libras también se crea.