Unidad 3. Tipos de datos y edición de tablas.

Este tema está dividido en dos apartados.
En el primero se van a mostrar los tipos de datos que pueden tener los atributos, además de las opciones existentes dentro de cada tipo.
En el segundo apartado vamos a ver cómo editar tablas ya creadas, bien sea para añadir, eliminar o modificar atributos representados en columnas.

1. Tipos de datos
En el segundo apartado de la unidad anterior vimos cómo a cada columna de nuestra tabla hay que asignarle el tipo de dato que va a almacenar, aunque simplemente enumeramos los tipos más conocidos, sin explicar en profundidad qué es un tipo de dato y los distintos tipos de datos que permite guardar OOo Base. En este primer apartado de esta unidad vamos a ver por qué hay que elegir entre diferentes tipos de datos y cuáles son.

unidad3_html_6f2a076a.png

Figura 3.1.Tabla de películas y sus tipos de dato

En primer lugar, vamos a responder a la pregunta de por qué hay distintos tipos de datos. Para ello basta con pensar en la tabla Peliculas que creamos en la unidad anterior. Cada campo de dicha tabla estaba definido para almacenar un tipo de información concreta (ver Figura 3.1); por ejemplo, la columna Director siempre va a almacenar el nombre del director por lo que, si queremos introducir el nombre de un director, teclearemos un texto que incluya su nombre y al menos el primer apellido; es decir, la naturaleza de los valores introducidos es de tipo texto. En cambio, en la columna Año vimos que siempre almacenábamos la fecha del estreno, por lo que al introducir un valor para este campo necesitamos que, de alguna manera, nuestra base de datos sepa distinguir lo que es el día, el mes y el año.
Es decir, ambos almacenan una información muy concreta en cada caso y para nosotros es muy fácil ver la naturaleza de los valores que almacena cada uno de esos campos. Dicha naturaleza es lo que se conoce como tipo de dato y lo ofrecen las bases de datos para, entre otras cosas, facilitar el almacenamiento de los valores y por tanto la gestión de la memoria lo que, entre otras cosas, influye en la rapidez de respuesta en la búsqueda de valores. Además dentro de cada tipo de datos existen una serie de propiedades, por ejemplo, el tamaño máximo permitido o el control de una flecha válida, que ayudan a definir un campo con más concreción.
Dentro de OOo Base en particular podríamos clasificar los distintos tipos de datos en cuatro grandes grupos:

  • Alfanuméricos. (ver Tabla 3.1). Se utilizan para almacenar textos que pueden contener letras y números, pero teniendo en cuenta que los números serán tratados como un carácter más. El más utilizado es el tipo Texto [VARCHAR].

tabla31_1.jpg

Tabla 3.1.Tipos de datos alfanuméricos

  • Numéricos, enteros (ver Tabla 3.2) y reales (ver Tabla 3.3). Se utilizan para almacenar valores numéricos sobre los que, al contrario que en los tipos alfanuméricos, se podrán realizar operaciones aritméticas. En las propiedades de los reales hay que indicar cuántas de las cifras del tamaño asignado serán decimales (se conoce también como la escala). Los más utilizados son Integer [INTEGER] y Número[NUMERIC].

tabla32_1.jpg

Tabla 3.2.Tipos de datos enteros

 

tabla33.jpg

Tabla 3.3.Tipos de datos reales

  • Temporales (ver Tabla 3.4). Se utilizan para guardar fechas y/o horas.

tabla34.jpg

Tabla 3.4.Tipos de datos temporales

  • Especiales (Ver Tabla 3.5). Tipos de datos que no entran en ninguna de las clasificaciones anteriores. El más utilziado es el tipo Sí/No [BOOLEAN]

tabla35.jpg

Tabla 3.5.Tipos de datos especiales

Además, dependiendo del tipo de dato, podemos tener hasta seis propiedades (ver Figura 3.2) que se pueden configurar para mantener la consistencia y el formato de la información introducida. Éstas son:

unidad3_html_9cc73bc.jpg

Figura 3.2. Propiedades de los campos

  • Valor automático. Si se pone afirmativo permite que OOo Base dé automáticamente un valor secuencial a este campo. Se suele utilizar cuando la clave primaria de nuestra tabla va a ser un entero al que iríamos dando valores consecutivos cada vez que introducimos una nueva fila (como en el caso de nuestra tabla películas). Sólo está disponible con los tipos Integer y BigInt.
  • Entrada requerida. Sirve para indicar si será obligatorio o no introducir un valor en este campo para cada fila de la tabla. Cualquier campo que definamos como clave primaria automáticamente exige la introducción de un valor siempre.
  • Tamaño o longitud. Especifica la longitud máxima permitida.
  • Decimales. Sirve para especificar cuántas cifras del tamaño asignado serán decimales.
  • Valor Predeterminado. Permite asignar un valor por defecto para este campo a todas las filas que se vayan introduciendo. Es posible modificar posteriormente este valor en cada fila.
  • Ejemplo de formato. Permite especificar el formato del campo. Muy útil sobre todo para los campos de tipo Fecha y Hora para indicar el formato de introducción de los mismos y también para los campo de tipo real donde vayamos a guardar valores monetarios indicando la moneda que se usará.

2. Edición de tablas
Antes de comenzar con este apartado ya debería estar clara la diferencia entre la ventana de introducción de datos en la tabla (Figura 3.3) y la ventana de edición de la tabla (Figura 3.4).

unidad3_html_m2bd8826.png

Figura 3.3. Ventana de introducción de datos

La primera se utiliza para introducir datos en la tabla seleccionada tal y como vimos en el tercer apartado de la unidad anterior.

unidad3_html_4863b02f.png

Figura 3.4. Ventana de edición de tabla

La segunda ventana es la misma que utilizamos para crear una tabla pero, en este caso, con el objetivo de añadir o eliminar columnas (atributos) de nuestra tabla, o bien, de modificar alguna propiedad de las mismas.
En este apartado nos vamos a centrar en la edición de las columnas de una tabla ya creada, en este caso nuestra tabla Peliculas. Para abrir esta tabla para editarla tenemos que situarnos en la pantalla principal de OOo Base en el apartado de Tablas y hacer un clic con el botón derecho del ratón y seleccionar la opción Editar (Figura 3.5).

unidad3_html_m2aedd23.png

Figura 3.5. Selección de edición de tabla

Para añadir nuevas columnas a nuestra tabla hay que seguir el mismo proceso que en la creación de una tabla; es decir, introducir un valor para el nombre del campo, elegir un tipo de campo y escribir una descripción de ese campo.
Para eliminar columnas de nuestra tabla nos situamos al inicio del campo y seleccionamos la opción eliminar (Figura 3.6). Antes de eliminar una columna de nuestra tabla debemos saber que al hacerlo se borrarán todos los valores que tuviéramos dados a esta columna en nuestra filas por lo que, sobre todo en el caso de la columna que sea clave primaria, hay que pensar muy bien si de verdad es conveniente eliminar esa columna.

unidad3_html_63b70bcc.png

Figura 3.6. Opción Eliminar columna de una tabla

En el caso de haber borrado una columna de la tabla accidentalmente siempre tenemos la opción de cerrar la ventana de edición sin guardar los cambios realizados.

2.1 Modificación de columnas existentes
Las modificaciones que se pueden realizar sobre las columnas existentes pueden ser de dos tipos:

  • cambios de nombre del campo o de la descripción del mismo.
  • cambio en las propiedades del campo, desde ser o no clave primaria, a cambiar el tipo de campo y las propiedades asociadas a ese tipo de campo.

unidad3_html_26053fa0.png

Figura 3.7. Cambio de nombre de campo

En el caso de las primeras, basta con situarse en el valor que queramos modificar y cambiar el contenido del texto. Por ejemplo, podemos cambiar el nombre de la columna Vista por el de Visionada como se muestra en la figura 3.7.
Más importantes para la integridad de la tabla, y en algún caso más complejas de realizar, son las operaciones que contemplan el cambio de tipo de datos o el cambio de las propiedades del campo.
El primero de este tipo de cambios es asignar que un campo es o no clave primaria. Hacer este cambio es muy sencillo, tal y como vimos en la unidad anterior, cuando fijamos la columna Id_pelicula como clave primaria de Peliculas. Pero las consecuencias que conlleva dicho cambio para nuestra tabla pueden ser críticas. Para empezar, OOo Base no nos va a permitir introducir datos en una tabla que no tenga clave primaria por lo que en caso de desasignar una columna como clave primaria debemos asignarselo a otra, pero con cuidado, ya que una vez que nuestra tabla ya tiene datos es muy difícil encontrar otra columna que cumpla las condiciones necesarias para ser clave primaria (recordamos que la primera es que ese campo siempre tiene que tomar valor para cada fila de la tabla, y, la segunda, que dicho valor no puede repetirse entre ninguna fila) y nos podemos encontrar un aviso como el que aparece en la figura 3.8: si por ejemplo intentamos fijar el campo Director como clave primaria y damos a guardar la tabla.

unidad3_html_m5b14260.png Figura 3.8 Error al cambiar clave primaria

Este error se produce porque hemos incumplido la segunda condición de una clave primaria (no repetir valor) porque el valor Ridley Scott aparece en más de una fila en esa columna.
El siguiente tipo de cambio que vamos a estudiar es el cambio de tipo de dato. Para realizar este tipo de cambio hay que tener en cuenta que habrá que elegir un tipo de dato compatible con los valores ya introducidos.
Por ejemplo, si cambiamos el tipo de dato del campo Visionada a tipo Texto, en lugar de Sí/No, OOo Base es capaz de realizarlo porque convierte las casillas marcadas al texto true (verdadero en inglés) y las desmarcadas a false (falso en inglés) tal y como se muestra en la figura 3.9.

unidad3_html_cc29d47.png

Figura 3.9 Tabla Peliculas tras cambio en columna Visionada

Cuando cambiamos entre tipos de datos numéricos, por ejemplo, entre uno de tipo real y otro de tipo entero hay que tener cuidado de que el tamaño del nuevo tipo sea lo suficientemente grande y tener en cuenta que sólo se respetará la parte entera de los valores previamente almacenados.
Este tipo de conversiones no siempre se pueden realizar. Así, por ejemplo, aunque sería posible cambiar el campo Año de tipo Fecha a tipo Texto, no nos va a dejar convertirlo a uno de tipo Integer, ya que aunque en el primer paso no es complicado para OOo Base transformar una fecha a una cadena de texto, en el segundo caso no es capaz de convertir una fecha a un número y nos muestra una pantalla como la que se ve en la figura 3.10.

unidad3_html_md3bb3f3.png

Figura 3.10. Advertencia antes de cambiar columna a un tipo de dato no compatible con actual

Es decir, la solución que nos propone es eliminar por completo esa columna y crear una nueva con el nombre que ya tenía y el nuevo tipo, pero perdiendo los valores que ya teníamos introducidos en ese campo.
Un cambio muy útil que podemos realizar en nuestra tabla es hacer que nuestra clave primaria tome valores automáticamente, por ejemplo para poner un código de referencia a un producto. Para ello, para la tabla Peliculas, lo primero que debemos cambiar es el tipo de dato de Id_Pelicula a Integer, ya que estaba definido como tipo Número. Este cambio no nos debe causar problemas ya que los valores de Id_pelicula que estábamos dando eran todos enteros. A continuación fijaríamos esta columna con la propiedad Valor Automático a Sí y guardaríamos la tabla. La nueva estructura de la tabla se muestra en la figura 3.11.

unidad3_html_m71c487e9.png

Figura 3.11. Campo Id_pelicula con valor automático

A partir de ahora, cada vez que introduzcamos una nueva fila en la tabla Peliculas al campo Id_pelicula se le asignará el mayor valor asignado hasta ese momento incrementado en 1.
El último tipo de modificación que vamos a ver es del Ejemplo del Formato. Esta propiedad es importante en muchos campos pero, posiblemente, donde más cuidado hay que tener con ella es en los campos de tipo temporal para no tener problemas cuando introduzcamos fechas y horas.
Vamos a ver algún ejemplo de esta propiedad con nuestro campo Año. Para ello, seleccionamos dicho campo y pinchamos en el botón que hay a la derecha de la propiedad Ejemplo de Formato y que destaca además porque tiene 3 puntos suspensivos dentro (ver Figura 3.12).

unidad3_html_7bfcc580.png

Figura 3.12. Selección de entrada a propiedad Ejemplo de Formato

Nos debe aparecer entonces una ventana como la de la figura 3.13.

unidad3_html_m30b4ea3b.png

Figura 3.13. Ventana de formato de campo

Como podemos ver, esta ventana tiene bastante información. Para empezar, en la parte superior derecha podemos elegir el idioma. La elección de idioma no es un tema trivial ya que, por ejemplo, los formatos de fecha predefinidos no serán los mismos para idiomas de países anglosajones que para países europeos continentales. Una vez que hemos elegido el idioma, el siguiente paso es escoger la categoría del formato que vamos a definir en la ventana superior izquierda; en nuestro caso la categoría del formato es Fecha. Dentro de la categoría fechas existen una serie de formatos predefinidos que se muestran en la ventana superior central. Un ejemplo de cómo se vería el formato elegido se muestra en el rectángulo que aparece en el centro de la ventana a la derecha. Además, todos los formatos predefinidos pueden ser adaptados por el usuario y guardados para su uso posterior en la parte inferior de la ventana llamada Código del formato.
Vamos a ver un ejemplo para ilustrar mejor este punto. Hasta ahora nuestro campo Año estaba predefinido como DD/MM/AA; es decir, dos cifras para el día, dos para el mes y dos para el año. Vamos a suponer que a partir de ahora queremos que el mes se introduzca y se muestre con su nombre en lugar de con su número y separado por la preposición de del día y del año. Elegimos la opción correspondiente en los formatos predefinidos de fecha (ver figura 3.14) y damos al botón Aceptar.

unidad3_html_m7115e359.png

Figura 3.14. Selección del nuevo formato

Si abrimos después de este cambio la tabla Peliculas el resultado obtenido debería ser el que se muestra en la figura 3.15. Debido a que es más sencillo la introducción de fechas con el formato original es recomendable dejar las fechas en dicho formato.

unidad3_html_2ee07c57.png

Figura 3.15. Tabla películas tras cambio de formato en campo Año

3. Ejercicios propuestos.
1.Modificar el nombre del campo Vista de la tabla Peliculas por el nombre Visionada.
2.Modificar la tabla Peliculas para que al campo Id_pelicula se le den valores automáticamente con cada nueva fila.

40 Respuestas a “Unidad 3. Tipos de datos y edición de tablas.

  1. siempre quise saber que es una tabla.
    Gracias por resolverme esa grandisima duda.

  2. La página tiene una gran sutileza.
    Por su formato y por su contenido puedo decir que es excelente la susodicha página.
    No obstante, quiero añadir que los vídeos no incluyen lo suficiente y es un poco complejo en algunos aspectos.
    Por todo lo demás, ¡felicitaciones al creador!

  3. je m'apelle mabeeel...

    Je m’apelle maaaaaaaaaaaaaaaaaaaabeeeeeeel…
    et je ne compendre pas…
    c’est tres dificile!

  4. Es mejor usar access, es un gestor ams eficaz, os lo digo yo que me paso horas delante de el. Es muy entretenido

  5. AVISO::
    imposible cambiar tipo d datos id_películas de «numeric» a «integer», NO SE PUEDE SALVAR.
    Lo correcto es hacerlo desde un principio bien, definiendo el tipo de dato como «integer»…
    el «en teoría no debería de dar problemas» en realidad es «da problemas seguro» y además te elimina la fila al salvar
    😦
    en fin, a repetir la tabla..
    🙂
    gracias por el tutorial!!

  6. Excelente, Gracias, es clara la enseñanza.

  7. Muuuy bueno

  8. estoy pasando una base de access a base, pero topo en: 1- ingreso automatico de la fecha de hoy
    2- calculo de edad al restar hoy con fecha de nacimiento
    3- ingreso de datos (calculados con macro) al campo de resultados. ej: campos «peso» y «Talla» y agregar un campo en formulario que muestre el IMC (Peso / (Talla*Talla), con rutina sensilla puedo obtener los valores de los campos peso y talla, pero no me deja escribir directamente.
    agradesco cualquier ayuda.

  9. ¿ sabe alguno de ustedes si existela posibilidad de que una tabla tome como valor fecha y/o valor hora los valores actuales del sistema operativo en el momento de la inserción de datos ?

    Gracias

  10. ¿Como puedo poner una foto distinta en cada entrada de registro ,por ej. la caratula de una pelicula? He conseguido vincular una foto pero para todos los registros es la misma.He probado con el campo Imagen[Longvinary]pero no puedo ni vincularla ni incrustarla,en acces con el campo(objeto ole)si se puede asociar.Os agradeceria enormemente buestra ayuda.El tutorial es fantastico,muy bien explicado,FELICIDADES.Un saludo.

  11. me sumo a Mikel8. estoy haciendo una base de datos y necesito vincular un archivo (preferiblemente en pdf) que contenga la imagen de un documento escaneado. pero no soy capaz. si alguien puede explicar cómo se hace sería estupendo.

    enhorabuena, el tutorial es cojonudo, de verdad me está ayudando mucho

  12. hola, he abierto una tabla para editarla . Le he cambiado el tipo de campo.
    Al cerrar la tabla me dice que no se ha podido aplicar el formato que si quiero eliminar la fila y aplicar de nuevo el formato. Siempre me pasa igual.¿Por qué me pasa eso? ¿Qué puedo hacer para solucionar eso?

  13. inma los datos del tipo de campo nuevo NO son compatibles con el nuevo tipo.

  14. Soy principiante en oo base y este tutorial me parece muy claro y muy bueno ,,, gracias

  15. Alguien me podría decir como se puede meter datos en una tabla de Base por dos usuarios a la vez. Cuando la abre un usuario ya otro usuario no puede editar los datos. Gracias

  16. me gustaría saber cómo se hace para relacionar una imagen, por ejemplo la tapa de la película, de un archivo jpg.
    gracias, está muy bueno el tutorial!!

  17. como se imprtan datos desde un archivo CSV. Parece ser sencillo en ningun lugar veo que traten el tema

  18. bien he visto que teneis problemas en crear formularios con fotos como dato, yosegui los siguientes pasos y funciona, tarde 15 dias en averiguarlo, la formula era
    Iba a formulario en vista edicion
    seleccionava una de las casillas de un campo
    Despues iba a la barra de abajo donde aparece un rectangulo con el borde superior mas grueso
    Apretaba este icono que sirve para introducir mas datos en el formulario
    e vuala
    puedes seleccionar los datos de fotos y incluirlos en el formulario
    no me digais como va, pero va

    Yo ahora tengo un problema y es que no recuerdo como se ponian vinculos tipo email, alguien me lo podia decir.
    Lo de la foto no se me olvida despues de 15 dias ,ejejejejejje

  19. El tutorial es muy bueno para el inicio, felicitaciones por el aporte y el esfuerzo…..Gracias por lo que he apredido

  20. la verdad que solo llegue hasta aca porq en mi lugar de trabajo tenemos oppen office. para mi ver no se compara ni un poquito con las otras versiones, es muy malo. pero gracias a este sitio pude resolver mis problemitas!!!
    felicito a su creador!!!

  21. hola, es cierto que este tutorial está muy bien, yo apenas lo conozco y tengo algunas dificultades, hasta ahora yo he trabajado con access y en un campo de tipo fecha le marcaba la máscara de entrada y me bastaba con poner los números para que me reconociese el formato 01/01/01 es decir yo no tenía que poner /. Pero aquí si no pongo / entre los números luego me pone la fecha que el quiere, alguién puede ayudarme?
    gracias
    enhorabuena al creador de la web

  22. He buscado por google, preguntado en chats y buscado en libros pero no encuentro la forma de hacer lo siguiente:

    Crear un campo en una tabla con un formato que permita «subir» o «hacer referencia a» archivos con cualquier extensión a la base de datos.

    Si creo un campo con formato «OTHER», lo inserto en el formulario y con el Navegador de Formulario lo reemplazo por el tipo «Seleccion de archivo» solo consigo seleccionar archivos, pero no se almacenan en ninguna parte.

    Si creo un campo con formatos binarios, no puedo hacer nada de nada.

    ¿Alguna solución?

    Gracias por anticipado. Saludos,

    Nacho

  23. Gracia por el tutorial de Base , es bastante didáctico e interesante, lastima que OOo no tenga una guía o manual completo para Base.

  24. Ruben Walter Portu

    Hola Alvaro. Felicitaciones por el -tutorial aprendi y estoy constuyendo una base de datos. Pero nesecito guardar fotosy documentos escaneados como parte de mi base de daos. Intente guardaros con el tipo de datos imagen y no puedo. Agradesco que me des una mano y me sugieras como hacerlo. Un saludo y abrazo esperando tu resouesta

  25. Hola! Tengo una duda y no encuentro la respuesta! Tengo una taula con nombres de persona y datos personales, y en el campo de nombre al repetir un nombre en 2 filas no me lo acepta porque está repetido! pero es que un nombre tiene más de un dueño!!! necesito ayuda URGENTE!!!! gracias

  26. Pingback: Tutorial de Base de datos – OpenOffice.org « HiperEidon

  27. Muchísimas gracias por vuestro tutorial, es el mejor que he encontrado. Me estais salvando la vida porque tengo que dar clases de este programa!

  28. gracias me sirvio mucho este trabajo por fin me voy a graduar

  29. Mecachis este resumen es genial

  30. Hola a todos, tengo que hacer una base de datos, y cuando voy a relacionar las tablas me ocurre el siguiente error: SQL S0011 -170. Alguien podría decrime como solucionarlo, me estoy volviendo loca!!! Haga lo que haga no me deja hacer las relaciones….

  31. Muy buena aportacion, me sirve de mucho 🙂
    felicitaciones al creador

  32. Pingback: TRACTAMENT DE LA INFORMACIÓ NUMÈRICA III « Informàtica d'usuari

  33. Por alguna razón no consigo encontrar el campo «Expresión de incremento automático» en las propiedades cuando marco la opción de valor automático en la clave primaria. No sé si igualmente el valor asignado para cada fila irá aumentando en 1 con cada nueva entrada de forma automática o si realmente se trata de algún error.

  34. Hola buenas. tengo una duda que no sé cómo resolver. me piden que haga una tabla llamada alquila con dos claves primarias: id_usuario e id_libros y me piden que meta varios datos: 1-1, 2-2, 3-3,2-3. Intento meterlos pero cuando meto el último registro 2-3, me cambia el orden y me lo deja asi. 1-1, 2-2, 2-3, 3-3. no consigo cambiarlo. agradecería enormemente si alguien me pudiera decir cómo puedo hacer para que no me cambie el orden o me salga algún error que me dice que duplico los registros. mi correo es smv2810@hotmail.com. gracias de nuevo

  35. porque me sale 11 por default en un tipo de dato int

  36. Pingback: A solo un escalón para llegar a la cima del éxito | OFIMÁTICAII

  37. Pingback: Bibliografía | tutorialbasededatos11

  38. Muchas gracias por el tutorial Álvaro. Tengo varias dudas que iré relatando en la lectura del mismo, a ver si damos con la solución. 1ª: ¿cómo se puede añadir un campo a la tabla ya creada? ejemplo: añadir campo guionista tras el de direccción. La herramienta insertar fila, me manda al final de la tabla.

    • Hola,
      sobre la tabla, botón derecho «Editar Tabla» y puedes seguir añadiendo campos a la tabla.
      Añadir fila es para añadir nuevas instancias a la tabla.
      Saludos.