4.7.1. Tipos logicos
4.7.1. Tipos logicos Dataprix 23 Octubre, 2009 - 13:54PostgreSQL incorpora el tipo lógico boolean, también llamado bool. Ocupa un byte de espacio de almacenamiento y puede almacenar los valores falso y verdadero.
Valor | Nombre |
Falso | false, ‘f’, ‘n’, ‘no’, 0 |
Verdadero | true, ‘t’, ‘y’, ‘yes’, 1 |
PostgreSQL soporta los operadores lógicos siguientes: and, or y not.
Aunque los operadores de comparación se aplican sobre prácticamente todos los tipos de datos proporcionados por PostgreSQL, dado que su resultado es un valor lógico, describiremos su comportamiento en la siguiente tabla:
Operador | Descripción |
> | Mayor que |
< | Menor que |
<= | Menor o igual que |
>= | Mayor o igual que |
<> != |
Distinto de |
4.7.2. Tipos numericos
4.7.2. Tipos numericos Dataprix 23 Octubre, 2009 - 14:08PostgreSQL dispone de los tipos enteros smallint, int y bigint que se comportan como lo hacen los enteros en muchos lenguajes de programación.
Los números con punto flotante real y double precisión almacenan cantidades con decimales. Una característica de los números de punto flotante es que pierden exactitud conforme crecen o decrecen los valores.
Aunque esta pérdida de exactitud no suele tener importancia en la mayoría de las ocasiones, PostgreSQL incluye el tipo numeric, que permite almacenar cantidades muy grandes o muy pequeñas sin pérdida de información. Por supuesto, esta ventaja tiene un coste, los valores de tipo numeric ocupan un espacio de almacenamiento considerablemente grande y las operaciones se ejecutan sobre ellos muy lentamente. Por lo tanto, no es aconsejable utilizar el tipo numeric si no se necesita una alta precisión o se prima la velocidad de procesamiento.
Nombre | Tamaño | Otros nombres | Comentario |
smallint | 2 bytes | int2 | |
int | 4 bytes | int4, integer | |
bigint | 8 bytes | int8 | |
numeric(p,e) | 11 + (p/2) | ‘p’ es la precisión, ‘e’ es la escala | |
real | 4 bytes | float, float4 | |
double precision | 8 bytes | float8 | |
serial | No es un tipo, es un entero autoincrementable |
Serial
La declaración serial es un caso especial, ya que no se trata de un nuevo tipo. Cuando se utiliza como nombre de tipo de una columna, ésta tomará automáticamente valores consecutivos en cada nuevo registro.
Ejemplo de una tabla que define la columna folio como tipo serial.
create table Factura(
folio serial,
cliente varchar(30),
monto real
);
PostgreSQL respondería esta instrucción con dos mensajes:
• En el primero avisa que se ha creado una secuencia de nombre factura_folio_seq:
NOTICE: CREATE TABLE will create implicit sequence `factura_folio_seq´ for SERIAL column `
• En el segundo avisa de la creación de un índice único en la tabla utilizando la columna folio:
NOTICE: CREATE TABLE / UNIQUE will create implicit index `factura_folio_key´ for table `factura´ CREATE
Si se declaran varias columnas con serial en una tabla, se creará una secuencia y un índice para cada una de ellas.