Listado completo de tutoriales
15 - Tipo de dato texto |
Ya explicamos que al crear una tabla debemos elegir la estructura adecuada, esto es, definir los campos y sus tipos más precisos, según el caso.
Para almacenar TEXTO usamos cadenas de caracteres.
Las cadenas se colocan entre comillas simples.
Podemos almacenar letras, símbolos y dígitos con los que no se realizan operaciones matemáticas, por ejemplo, códigos de identificación, números de documentos, números telefónicos.
Tenemos los siguientes tipos:
Si intentamos almacenar en un campo una cadena de caracteres de mayor longitud que la definida, aparece un mensaje indicando tal situación y la sentencia no se ejecuta.
Por ejemplo, si definimos un campo de tipo varchar(10) y le asignamos la cadena 'Aprenda PHP' (11 caracteres), aparece un mensaje y la sentencia no se ejecuta.
Si ingresamos un valor numérico (omitiendo las comillas), lo convierte a cadena y lo ingresa como tal.
Por ejemplo, si en un campo definido como varchar(5) ingresamos el valor 12345, lo toma como si hubiésemos tipeado '12345', igualmente, si ingresamos el valor 23.56, lo convierte a '23.56'. Si el valor numérico, al ser convertido a cadena supera la longitud definida, aparece un mensaje de error y la sentencia no se ejecuta.
Es importante elegir el tipo de dato adecuado según el caso, el más preciso.
Para almacenar cadenas que varían en su longitud, es decir, no todos los registros tendrán la misma longitud en un campo determinado, se emplea "varchar" en lugar de "char".
Por ejemplo, en campos que guardamos nombres y apellidos, no todos los nombres y apellidos tienen la misma longitud.
Para almacenar cadenas que no varían en su longitud, es decir, todos los registros tendrán la misma longitud en un campo determinado, se emplea "char".
Por ejemplo, definimos un campo "codigo" que constará de 5 caracteres, todos los registros tendrán un código de 5 caracteres, ni más ni menos.
Con PostgreSQL podemos utilizar como sinónimos las palabras claves 'character varying(n)' en lugar de 'varchar(n)', igualmente la palabra 'character(n)' remplazando a 'char(n)'.
drop table if exists visitantes; create table visitantes( nombre varchar(30), edad integer, sexo char(1), domicilio varchar(30), ciudad varchar(20), telefono varchar(11) ); -- Intentamos ingresar una cadena de mayor longitud que la definida: insert into visitantes (nombre,edad,sexo,domicilio,ciudad,telefono) values ('Juan Juarez',32,'masc','Avellaneda 789','Cordoba','4234567'); -- aparece un mensaje de error y la sentencia no se ejecuta -- Ingresamos un número telefónico olvidando las comillas, es decir, -- como un valor numérico: insert into visitantes (nombre,edad,sexo,domicilio,ciudad,telefono) values ('Marcela Morales',43,'f','Colon 456','Cordoba',4567890); -- lo convierte a cadena, veámoslo: select * from visitantes; -- Ahora borramos la tabla y la creamos utilizando como tipo de campo -- los alias existentes para los tipos de datos varchar y char: drop table visitantes; create table visitantes( nombre character varying(30), edad integer, sexo character(1), domicilio character varying(30), ciudad character varying(20), telefono character varying(11) ); -- Insertamos un registro: insert into visitantes (nombre,edad,sexo,domicilio,ciudad,telefono) values ('Marcela Morales',43,'f','Colon 456','Cordoba',4567890); -- Mostramos el registro cargado: select * from visitantes;
La ejecución de este lote de comandos SQL genera una salida similar a: