jueves, 15 de abril de 2010

CAMPOS/COLUMNAS/ TIPOS DE DATOS

Campos y Columnas
****Campos
Un Campo es cualquier atributo de una clase dada o uno de lo siguiente:
oid
el identificador único de la instancia que añade Postgres a todas las instancias automáticamente. Los Oids no son reutilizable y tienen una longitud de 32 bits.
xmin
El identificador de la transacción insertada.
xmax
El identificador de la transacción borrada.
cmin
El identificador del comando dentro de la transacción.
cmax
El identificador del comando borrado.
Para más información de estos campos consultar Stonebraker, Hanson, Hong, 1987. El tiempo está representado internamente como una instancia del tipo dato abstime. Los identificadores de las transacciones y comandos son de 32 bits. Las transacciones se asignan secuencialmente empezando por 512.
****Columnas
Una columna se construye de esta forma:
instance{.composite_field}.field `['number`]'

Unainstance identifica una clase concreta y podemos entenderla como un particularización de las instancias de esta clase. Cada nombre de variable es una variable instancia, un sustituto de la clase definida por el significado de la cláusula FROM, o la palabra clave NEW o CURRENT. NEW y CURRENT sólo pueden aparecer en una tramo de la acción de la regla, mientras otras variables de instancia pueden usarse en cualquier declaración SQL. composite_field un campo de uno de los tipos compuestos de Postgres, mientras que los sucesivos campos direccionan los atributos de la clase/es que evalúa los campo compuesto. Finalmente field es un campo normal (tipo base) de la última clase/s direccionada. Si field es de tipo array, entonces el designador opcional number indica el elemento especifico del array. Si no se indica el número, entonces se devolverán todos los elementos del array.
Tipos de datos
Tabla de Contenidos
Tipos numéricos
Tipo Monetario
Tipos de caracteres
Fecha / Hora Tipos
Tipo booleano
Tipos geométricos
IP versión 4 redes y direcciones de host
Describe los tipos integrados de datos disponibles en Postgres.
Postgres tiene un rico conjunto de tipos de datos nativos disponibles para los usuarios. Los usuarios pueden añadir nuevos tipos de Postgres utilizando el DEFINE TIPO Mando descrito en otra parte.
En el contexto de tipos de datos, las siguientes secciones discutiremos SQL Cumplimiento de los estándares, portando cuestiones, y su uso. Algunos Postgres tipos se corresponden directamente con SQL92tipos compatibles. En otros casos, los tipos de datos definidos por SQL92 la sintaxis se asignan directamente a nativos Postgres tipos. Muchos de los tipos integrados han obvio formatos externos. Sin embargo, varios tipos son únicas para Postgres, Tales como caminos abiertos y cerrados, o tienen varias posibilidades de formatos, tales como la fecha y hora.


Tabla 3-1. Postgres Tipos de datos
Postgres Tipo
SQL92 o SQL3 Tipo
Descripción
bool
booleano
booleano lógico (verdadero / falso)
caja

caja rectangular en el plano 2D
char (n)
carácter (n)
de longitud fija cadena de caracteres
cidr

IP versión 4 de red o dirección de host
círculo

círculo en el plano 2D
fecha
fecha
calendario de la fecha sin la hora del día
decimal
p decimal (, s)
numérico exacto de p <= 9, s = 0 float4 / 8 flotador (p) número de punto flotante de precisión con p float8 la precisión real, doble de doble precisión número de punto flotante inet IP versión 4 de red o dirección de host int2 smallint entero con signo de dos bytes int4 int, entero entero con signo de 4 bytes int8 entero con signo de 8-byte línea línea infinita en el plano 2D lseg segmento de línea en 2D plano dinero decimal (9,2) moneda al estilo estadounidense numérico p numérico (, s) numérico exacto de p == 9, s = 0 camino ruta geométricas abiertas y cerradas en 2D plano punto punto geométrico en el plano 2D polígono camino cerrado geométrica en 2D plano de serie ID exclusivo para la indexación y referencias cruzadas tiempo tiempo hora del día intervalo de tiempo intervalo de uso general lapso de tiempo fecha y hora fecha y hora con la zona horaria fecha / hora varchar (n) carácter variable (n) de longitud variable cadena de caracteres Tabla 3-1. Postgres Data Types Postgres Type SQL92 or SQL3 Type Description bool boolean logical boolean (true/false) box rectangular box in 2D plane char(n) character(n) fixed-length character string cidr IP version 4 network or host address circle circle in 2D plane date date calendar date without time of day decimal decimal(p,s) exact numeric for p <= 9, s = 0 float4/8 float(p) floating-point number with precision p float8 real, double precision double-precision floating-point number inet IP version 4 network or host address int2 smallint signed two-byte integer int4 int, integer signed 4-byte integer int8 signed 8-byte integer line infinite line in 2D plane lseg line segment in 2D plane money decimal(9,2) US-style currency numeric numeric(p,s) exact numeric for p == 9, s = 0 path open and closed geometric path in 2D plane point geometric point in 2D plane polygon closed geometric path in 2D plane serial unique id for indexing and cross-reference time time time of day timespan interval general-use time span timestamp timestamp with time zone date/time varchar(n) character varying(n) variable-length character string Nota: El cidr y inet tipos están diseñados para manejar cualquier tipo de propiedad intelectual, pero sólo IPv4 se maneja en la implementación actual. Todo aquí que habla de IPv4 a IPv6 se aplicará en una versión futura. Tabla 3-2. Postgres Función Constantes Postgres Función SQL92 Constante Descripción getpgusername () CURRENT_USER nombre de usuario en actual período de sesiones fecha ("ahora") CURRENT_DATE fecha de la transacción actual tiempo ("ahora") CURRENT_TIME momento de la transacción actual marca de tiempo ("ahora") CURRENT_TIMESTAMP fecha y hora de transacción actual Postgres tiene características en la vanguardia de ORDBMS el desarrollo. Además de SQL3 de conformidad, en partes importantes del SQL92 También se admiten. Aunque nos esforzamos por SQL92 el cumplimiento, hay algunos aspectos de la norma que son desproporcionados y que no deben vivir a través de normas posteriores. Postgres no se hacen grandes esfuerzos para cumplir con estas características, sin embargo, estos tienden a aplicar en los casos de poco uso o obsure, y un usuario típico no es probable que se ejecute en ellos. La mayoría de las funciones de entrada y de salida correspondientes a los tipos de base (por ejemplo, números enteros y números en coma flotante) Por qué algunos de comprobación de errores. Algunos de los operadores y las funciones (por ejemplo, la adición y multiplicación) no se realiza en tiempo de ejecución de comprobación de errores en aras de mejorar la velocidad de ejecución. En algunos sistemas, por ejemplo, los operadores numéricos para algunos tipos de datos en silencio puede refinado o desbordamiento. Tenga en cuenta que algunas de las funciones de entrada y salida no son invertibles. Es decir, el resultado de una función de salida puede retrasarse en comparación a la entrada original. Nota: El original Postgres v4.2 código recibido de Berkeley evadido todo flotante de doble precisión resultados apuntan a seis dígitos para la salida. A partir de v6.1, números de punto flotante pueden retener la mayor parte de la precisión intrínseca del tipo (normalmente de 15 dígitos en dobles, 6 dígitos de 4-byte flota). Otros tipos de campos se basa en coma flotante (por ejemplo, tipos geométricos) llevan precisión similar. Tipos numéricos
tipos numéricos constan de dos números enteros y cuatro bytes y de cuatro y números en coma flotante de ocho bytes de punto.
Tabla 3-3. Postgres Tipos numéricos
Tipo Numérico
Almacenamiento
Descripción
Intervalo
decimal
variable
la precisión especificada por el usuario
sin límite
float4
4 bytes
Variable de precisión
6 decimales
float8
8 bytes
Variable de precisión
15 decimales
int2
2 bytes
Fijo de precisión
-32768 Hasta 32767
int4
4 bytes
elección usual para fijos de precisión
-2147483648-2147483647
int8
8 bytes
Gama muy grandes fijos de precisión
+ / -> 18 decimales
numérico
variable
la precisión especificada por el usuario
sin límite
de serie
4 bytes
Identificador o referencias cruzadas
0 a 2147483647
Los tipos numéricos tienen un conjunto completo de operadores aritméticos y funciones correspondientes. Referirse a Operadores NUMERICOS y Funciones matemáticas para más información.
El int8 tipo no pueden estar disponibles en todas las plataformas, ya que cuenta con el apoyo del compilador para esto.
El tipo de serie
El de serie el tipo es un tipo especial de los casos construidos por Postgres de otros componentes existentes. Suele utilizarse para crear identificadores únicos para entradas de la tabla. En la implementación actual, especificando
CREATE TABLE nombretabla (COLNAME SERIE);

es equivalente a especificar:
CREATE SEQUENCE nombretabla_COLNAME_seq;
CREATE TABLE nombretabla
(COLNAME INT4 nextval DEFAULT ('nombretabla_COLNAME_seq ');
CREATE UNIQUE ÍNDICE nombretabla_COLNAME_key en nombretabla (COLNAME);

Tipo Monetario
Tipo obsoleto: El dinero ya está obsoleto. Uso numérico o decimal en su lugar.
El dinero Tipo de moneda apoya al estilo estadounidense con la representación de punto fijo de decimales. Si Postgres está compilado con USE_LOCALE luego el tipo de dinero deben utilizar las convenciones monetaria definida para locale (7).
Tabla 3-4. Postgres Tipos Monetario
Tipo Monetario
Almacenamiento
Descripción
Intervalo
dinero
4 bytes
Fijo de precisión
-21474836,48 A 21.474.836,47
numérico reemplazará el tipo de dinero, y deben preferirse.
Tipos de caracteres
SQL92 define dos tipos de personajes principales: char y varchar. Postgres apoya este tipo, además de la más general texto tipo, que a diferencia de varchar no requiere un límite superior que se declare en el tamaño del campo.
Tabla 3-5. Postgres Tipos de caracteres
Tipo de caracteres
Almacenamiento
Recomendación
Descripción
char
1 byte
SQL92Compatible con
carácter individual
char (n)
(4 + n) bytes
SQL92Compatible con
De longitud fija en blanco acolchada
texto
(4 + x) bytes
La mejor opción
De longitud variable
varchar (n)
(4 + n) bytes
SQL92Compatible con
De longitud variable con un límite
Hay otro tipo de carácter de longitud fija. El nombre tipo sólo tiene una finalidad, y que consiste en proporcionar Postgres con un tipo especial de usar para los nombres internos. No está diseñado para utilizarse por el usuario en general. Es la longitud se define actualmente como 32 caracteres, pero debe ser de referencia utilizando NAMEDATALEN. Esto se establece en tiempo de compilación y puede cambiar en una futura versión.
Tabla 3-6. Postgres Especialidad tipo de carácter
Tipo de caracteres
Almacenamiento
Descripción
nombre
32 bytes
Treinta y dos de tipo carácter interno
Fecha / Hora Tipos
PostgreSQL admite el conjunto completo de SQL fecha y hora.
Tabla 3-7. PostgreSQL Fecha / Hora Tipos
Tipo
Descripción
Almacenamiento
Primeras
Más reciente
Resolución
fecha y hora
para los datos que contienen tanto la fecha y hora
8 bytes
4713 a. C.
AD 1465001
los dígitos 1 microseg / 14
intervalo
de intervalos de tiempo
12 bytes
-178000000 Años
178000000 años
1 mircosecond
fecha
para los datos que contiene sólo las fechas
4 bytes
4713 a. C.
32767 AD
1 día
tiempo
para los datos que contiene sólo los tiempos de la jornada
4 bytes
00:00:00.00
23:59:59.99
1 microsegundo
Nota: Para garantizar la compatibilidad con versiones anteriores de PostgreSQL también continuará proporcionando fecha y hora (Equivalente a fecha y hora) Y intervalo de tiempo (Equivalente a intervalo). Los tipos abstime y reltime son más bajos tipos de precisión que se utilizan internamente. Usted está desaliente el uso de cualquiera de estos tipos en nuevas aplicaciones y mover más de los viejos cuando sea apropiado. Lo que sea de este tipo podría desaparecer en una versión futura.
Fecha / hora de entrada
Fecha y tiempo de entrada es aceptada en casi cualquier formato razonable, incluyendo ISO-Compatible, SQLCompatible, tradicional Postgres, Y otros. El orden de los meses y días en la entrada de la fecha puede ser ambigua, por lo tanto existe un entorno, para especificar cómo debe ser interpretado. El comando DateStyle SET "EE.UU." o AJUSTE AL DateStyle "no europeo" especifica la variante "El mes antes del día", El comando AJUSTE AL DateStyle "europeo" establece la variante "Días antes del mes". El primero es el valor predeterminado.
Ver Ayuda de Fecha / Hora para la reglas de análisis precisa de la fecha y hora de entrada y en las zonas horarias reconocidas.
Recuerde que cualquier fecha o la hora de entrada debe ser incluida dentro de comillas simples, como cadenas de texto.
fecha
Las siguientes son posibles aportes para la fecha tipo.
Tabla 3-8. PostgreSQL Fecha de entrada
Ejemplo
Descripción
8 de enero 1999
Inequívoca
1999-01-08
Formato ISO-8601, prefirió
1/8/1999
EE.UU.; el texto 1 de agosto en el modo Europea
8/1/1999
Europea; el texto 1 de agosto en el modo de EE.UU.
1/18/1999
EE.UU., debe decir 18 de enero como en cualquier modo
1999.008
Año y día del año
19990108
ISO-8601 año, mes, día
990108
ISO-8601 año, mes, día
1999.008
Año y día del año
99008
Año y día del año
8 de enero de 99 aC
Año 99 antes de nuestra era
Tabla 3-9. PostgreSQL Mes de las abreviaturas
Mes
Las abreviaturas
Abril
Abril
Agosto
Agosto
Diciembre
Diciembre
Febrero
Febrero
Enero
Jan
Julio
Julio
Junio
Junio
Marzo
Estropear
De noviembre
Noviembre
Octubre
Octubre
Septiembre
Septiembre, septiembre
Nota: El mes Mayo no tiene abreviatura explícita, por razones obvias.
Tabla 3-10. PostgreSQL Día de las abreviaturas Semana
Día
Abreviación
Domingo
Sol
Lunes
Lun
Martes
Mar, mar.
Miércoles
Miércoles, miércoles
Jueves
Jue, jue, jue.
Viernes
Vie
Sábado
Sáb
tiempo
Los siguientes son válidos tiempo insumos.
Tabla 3-11. PostgreSQL Tiempo de entrada
Ejemplo
Descripción
04:05:06.789
ISO-8601
04:05:06
ISO-8601
04:05
ISO-8601
040506
ISO-8601
04:05 AM
Igual 04:05; AM no afectar al valor de
04:05 PM
Igual que el 16:05, hora de entrada debe ser <= 12 z Igual 00:00:00 zulú Igual 00:00:00 allballs Igual 00:00:00 fecha y hora
Válido de entrada para el fecha y hora tipo consiste en una concatenación de una fecha y una hora, seguido por un facultativo AD o BC, Seguido por un huso horario opcional. (Ver más abajo.) Por lo tanto 1999-01-08 04:05:06 -8:00
es válido fecha y hora valor, que es ISOConforme. Además, el formato de gran difusión 8 de enero 1999 04:05:06 PST
es compatible.
Tabla 3-12. PostgreSQL Tiempo de entrada de la Zona
Zona horaria
Descripción
PST
Hora estándar del Pacífico
-8:00
ISO-8601 para compensar PST
-800
ISO-8601 para compensar PST
-8
ISO-8601 para compensar PST
intervalo
intervalos se puede especificar con la siguiente sintaxis: Dirección Unidad Cantidad [Unidad Cantidad ...] []@ Dirección Unidad Cantidad []
donde: Cantidad es ..., -1, 0, 1, 2, ...; Unidad es segundo, minuto, hora, día, semana, mes, año, década, siglo, milenio, O una abreviatura o plurales de estas unidades; Dirección puede ser hace o vacío.
Los valores especiales
Los siguientes SQLfunciones compatibles pueden utilizar como fecha o la hora de entrada para el tipo de datos correspondiente: CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP.
PostgreSQL también es compatible con varias constantes especiales para mayor comodidad.
Tabla 3-13. PostgresSQL Fecha Especial / constantes de tiempo
Constante
Descripción
corriente
tiempo de la transacción actual, en diferido
época
1970-01-01 00:00:00 00 (hora de Unix sistema de cero)
infinito
Más tarde que otras veces válida
-Infinito
Antes que en otros tiempos válida
inválido
Entrada ilegal
ahora
tiempo de la transacción actual
hoy
hoy medianoche
mañana
Medianoche de mañana
ayer
La medianoche de ayer
"Ahora" se resuelve cuando el valor se inserta, 'Actual' se resuelve cada vez que el valor se recupera. Así que probablemente desee utilizar "Ahora" en la mayoría de las aplicaciones. (Por supuesto que realmente desea utilizar CURRENT_TIMESTAMP, Lo que equivale a "Ahora".)
Fecha / hora de salida
Los formatos de salida se puede ajustar en uno de los cuatro estilos de la norma ISO-8601, SQL (Ingres), Postgres tradicionales, y alemán, utilizando el AJUSTE DateStyle. El valor por defecto es el ISO formato.
Tabla 3-14. PostgreSQL Fecha / Hora de salida Estilos
Estilo Especificación
Descripción
Ejemplo
«ISO»
norma ISO-8601
1997-12-17 07:37:16-08
'SQL'
Estilo tradicional
12/17/1997 07:37:16.00 PST
"Postgres"
Original estilo
Mié 17 de diciembre 1997 07:37:16 PST
«Alemán»
Regional de estilo
17/12/1997 07:37:16.00 PST
La producción de la fecha y tiempo estilos es, por supuesto, sólo la fecha o tiempo parcial de acuerdo con los ejemplos anteriores
El SQL estilo ha europeos y no europeos-(EE.UU.) variantes, que determina si el siguiente día o mes vica versa. (Ver también en: Fecha de Entrada / hora, ¿cómo afecta esta configuración de interpretación de los valores de entrada.)
Tabla 3-15. PostgreSQL Fecha de convenios de orden
Estilo Especificación
Ejemplo

Europeo
17/12/1997 15:37:16.00 MET

EE.UU.
12/17/1997 07:37:16.00 PST

intervalo de salida se parece al formato de entrada, se espera que las unidades como semana o siglo se convierten en años y días. En el modo de ISO que muestra la salida Unidades [Cantidad [... ]] [Días] Horario: [minutos]
Hay varias maneras de afectar la apariencia de la fecha y tipos de tiempo:
· El PGDATESTYLE variable de entorno utilizado por el servidor directamente al inicio del sistema administrador de correo.
· El PGDATESTYLE variable de entorno utilizado para la interfaz libpq el inicio de la sesión.
· AJUSTE DATESTYLE SQL de comandos.
Husos horarios
PostgreSQL se esfuerza por ser compatible con SQL92 definiciones de uso común. Sin embargo, el SQL92 estándar tiene una extraña mezcla de fecha y hora tipos y capacidades. Hay dos problemas evidentes son:
· Aunque el fecha tipo no tiene una zona horaria asociada, la tiempo tipo puede o no.
· La zona horaria predeterminada se especifica como un entero constante desplazamiento de GMT / UTC.
Las zonas horarias en el mundo real no puede tener sentido si no asociado a una fecha, así como un tiempo ya que el desplazamiento puede variar a través del año con los límites de horario de verano.
Para hacer frente a estas dificultades, PostgreSQL asociados zonas horarias sólo con tipos de fecha y tiempo, que contienen información de fecha y hora, y asume, hora local de cualquier tipo que sólo contiene la fecha o la hora. Además, el apoyo de zona horaria se deriva de las capacidades del sistema operativo subyacente zona horaria, y por lo tanto puede manejar el horario de verano y el comportamiento esperado de otros.
PostgreSQL obtiene el apoyo de la zona horaria del sistema operativo subyacente para las fechas entre 1902 y 2038 (cerca de los límites fecha típica para sistemas tipo Unix). Fuera de este rango, todas las fechas se supone que se especifica y se utiliza en Tiempo Universal Coordinado (UTC).
Todas las fechas y horas se almacenan internamente en universal UTC, alternativamente conocido como meridiano de Greenwich (GMT). Los tiempos son convertidos a la hora local en el servidor de base de datos antes de ser enviado a la interfaz de cliente, por lo que por defecto están en la zona horaria del servidor.
Hay varias maneras de influir en el comportamiento de zona horaria:
· La variable de entorno TZ utilizados por el servidor directamente al iniciar postmaster como la zona horaria predeterminada.
· La variable de entorno PGTZ fijado en el cliente utilizado por libpq para enviar información de zona horaria al backend al conectarse.
· El SQL comando Definir la zona horaria establece la zona horaria para la sesión.
Si una zona horaria válida se especifica, se convierte en la zona horaria GMT (en la mayoría de los sistemas de todos modos).
Nota: Si la opción del compilador USE_AUSTRALIAN_RULES se establece a continuación, CEST se refiere a Australia oriental Hora estándar, que tiene un desplazamiento de hora UTC +10:00.
El interior de
PostgreSQL utiliza fechas julianas fecha para todos los cálculos de tiempo. Ellos tienen la bonita propiedad de predecir correctamente / cálculo de cualquier otra fecha más reciente que 4713BC de lejos en el futuro, utilizando la hipótesis de que la duración del año es 365,2425 días.
Fecha convenios antes del siglo 19 una lectura interesante, pero no son lo suficientemente consistentes como para justificar la codificación en una fecha y controlador de tiempo.
Tipo booleano
Postgres apoya bool como el SQL3 tipo booleano. bool puede tener uno de sólo dos estados: «verdadero» o «falso». Un tercer estado, «desconocido», no se aplica y no se sugiere en SQL3; NULL es un sustituto eficaz. bool puede ser utilizado en cualquier expresión lógica, y las expresiones booleanas evaluar siempre a un resultado compatible con este tipo.
bool utiliza 1 byte de almacenamiento.
Tabla 3-16. Postgres Tipo booleano
Estado
Salida
Entrada
Verdadero
«T»
TRUE, 't', 'true', 'y', 'sí', '1 '
Falso
'F'
FALSO, 'f', 'false', 'n', 'no', '0 '

Tipos geométricos
tipos geométricos representan los objetos espaciales de dos dimensiones. El tipo más fundamental, el punto, constituye la base para todos los otros tipos.
Tabla 3-17. Postgres Tipos geométricos
Tipo Geométrico
Almacenamiento
Representación
Descripción
punto
16 bytes
(X, y)
El punto en el espacio
línea
32 bytes
((X1, y1), (x2, y2))
Infinito línea
lseg
32 bytes
((X1, y1), (x2, y2))
Finito segmento de línea
caja
32 bytes
((X1, y1), (x2, y2))
Caja rectangular
camino
4 bytes 32 n
((X1, y1 ),...)
camino cerrado (similar al polígono)
camino
4 bytes 32 n
[(X1, y1 ),...]
Abrir el camino
polígono
4 bytes 32 n
((X1, y1 ),...)
Polígono (similar a la trayectoria cerrada)
círculo
24 bytes
<(X, y), r>
Círculo (centro y radio)
Tabla en ingles
Geometric Type
Storage
Representation
Description
point
16 bytes
(x,y)
Point in space
line
32 bytes
((x1,y1),(x2,y2))
Infinite line
lseg
32 bytes
((x1,y1),(x2,y2))
Finite line segment
box
32 bytes
((x1,y1),(x2,y2))
Rectangular box
path
4+32n bytes
((x1,y1),...)
Closed path (similar to polygon)
path
4+32n bytes
[(x1,y1),...]
Open path
polygon
4+32n bytes
((x1,y1),...)
Polygon (similar to closed path)
circle
24 bytes
<(x,y),r>
Circle (center and radius)

Un rico conjunto de funciones y operadores se encuentra disponible para realizar diversas operaciones geométricas como el escalamiento, traslación, rotación, y la determinación de las intersecciones.
Punto
Los puntos son el componente fundamental de dos dimensiones para tipos geométricos.
punto se especifica mediante la siguiente sintaxis:
(X, y)
x, y
donde
x es la coordenada del eje x como un número de punto flotante
y es el eje de coordenadas como un número de punto flotante

Segmento de línea
Línea de segmentos (lseg) Se representan por pares de puntos.
lseg se especifica mediante la siguiente sintaxis:
((X1, y1), (x2, y2))
(X1, y1), (x2, y2)
x1, y1, x2, y2
donde
(X1, y1) y (x2, y2) son los extremos del segmento

Caja
Las cajas son representados por pares de puntos que son las esquinas opuestas de la caja.
caja se especifica mediante la siguiente sintaxis:
((X1, y1), (x2, y2))
(X1, y1), (x2, y2)
x1, y1, x2, y2
donde
(X1, y1) y (x2, y2) son las esquinas opuestas

Las cajas son de salida con la primera sintaxis. Las esquinas se reordenan en la entrada para almacenar la esquina inferior izquierda en la primera y la última esquina superior derecha. Otros rincones de la caja se pueden introducir, pero la parte inferior izquierda y superior derecha esquinas se determinan a partir de la entrada y se almacena.
Camino
Las rutas son representados por conjuntos de puntos conectados. Caminos puede ser "abierto", donde los puntos primero y el último en la serie no están conectados, y "cerrado", donde se conectan el punto inicial y final. Funciones popen (p) y pclose (p) son ofrecidos a la fuerza una ruta de acceso a ser abiertas o cerradas, y las funciones IsOpen (p) y isClosed (p) se suministran para seleccionar uno u otro tipo en una consulta.
camino se especifica mediante la siguiente sintaxis:
((X1, y1), ..., (xn, yn))
[(X1, y1), ... , (Xn, yn)]
(X1, y1), ... , (Xn, yn)
(X1, y1, ..., xn, yn)
x1, y1, ... , Xn, yn
donde
(X1, y1 ),...,( xn, yn) son puntos 1 a n
una de las principales "[" indica un camino abierto
una de las principales "(" indica un camino cerrado

Las rutas son de salida con la primera sintaxis. Tenga en cuenta que Postgres versiones anteriores a v6.1 utiliza un formato para las rutas que había un paréntesis de un solo líder, un "pabellón cerrado", según un recuento del número entero de puntos, entonces la lista de puntos, seguido de un paréntesis de cierre. La función integrada upgradepath se suministra para convertir los caminos objeto de dumping y vuelve a cargar desde la pre-v6.1 bases de datos.
Polígono
Los polígonos son representados por conjuntos de puntos. Polígonos probablemente deberían considerarse equivalente a caminos cerrados, pero se almacenan de forma diferente y tienen su propio conjunto de rutinas de soporte.
polígono se especifica mediante la siguiente sintaxis:
((X1, y1), ..., (xn, yn))
(X1, y1), ... , (Xn, yn)
(X1, y1, ..., xn, yn)
x1, y1, ... , Xn, yn
donde
(X1, y1 ),...,( xn, yn) son puntos 1 a n

Los polígonos son de salida con la primera sintaxis. Tenga en cuenta que Postgres versiones anteriores a v6.1 utiliza un formato para los polígonos que había un paréntesis líder único, la lista de coordenadas x-eje, la lista de eje y las coordenadas, seguido de un paréntesis de cierre. La función integrada upgradepoly se suministra para convertir polígonos objeto de dumping y vuelve a cargar desde la pre-v6.1 bases de datos.
Círculo
Círculos están representados por un punto central y un radio.
círculo se especifica mediante la siguiente sintaxis:
<(X, y), r>
((X, y), r)
(X, y), r
x, y, r
donde
(X, y) es el centro del círculo
r es el radio del círculo

Los círculos son de salida con la primera sintaxis.

IP versión 4 redes y direcciones de host
El cidr tiendas de redes de tipo especificado en CIDR (Classless Inter-Domain Routing) notación. El inet tiendas escriba hosts y redes en la notación CIDR con una simple variación en la representación para representar simples host TCP / IP.
Tabla 3-18. PostgresIP versión 4 Tipos
IPV4 Tipo
Almacenamiento
Descripción
Intervalo
cidr
variable
CIDR redes
Válido IPV4 bloques CIDR
inet
variable
redes y hosts
Válido IPV4 bloques CIDR
CIDR
El cidr tiene un tipo de red CIDR. El formato para especificar las redes sin clases es x.x.x.x / año donde x.x.x.x es la red y / Año es el número de bits en la máscara de red. Si / Año omite, se calculará utilizando hipótesis del sistema de nombres de classfull mayores, excepto que se amplía para incluir al menos todos los octetos en la entrada.

26 comentarios:

  1. Buenos dias compañeros y camaradas, por ahora tengo dos preguntas:

    ¿Qué son los Oids? y

    ¿En que tipo de datos puedo clasificar las imagenes?

    Miguel González
    Seccion 01
    Grupo 04
    Ing. Sistema

    ResponderEliminar
  2. ¿Como están queridos compañeros? espero que bien.
    Mi pregunta es la siguiente.

    ¿Por favor me pueden indicar si yo en PostGreSQL puedo utilizar un tipo de dato password o encriptado como en Access de Microsoft y si existe, como se llama ese tipo?

    Sección: I de Sistemas
    Trayecto IV – Periodo II.
    Materia Electiva: PostGreSQL I.
    Grupo N° 4.
    Estudiante: Omar Medina.

    ResponderEliminar
  3. Buenos dias compáñeros del Equipo No.3, Miguel pregunta que es un OID, voy a aportar algo al respecto:
    R.- Un OID es un identificador de objeto
    Explicacion:
    Si una tabla se crea con WITH OIDs, cada fila tiene un único OID. Los OIDs se asignan automáticamente único de 4 bytes que son únicos(no es claro) en toda la instalación. Sin embargo, esta sobre carga de 4 mil millones, y, a continuación, comienza la duplicación de OIDs. PostgreSQL usa OIDs para vincular y juntar su sistema interno de tablas.
    Excepcionalmente la numeración de filas en las tablas de usuario, es mejor utilizar SERIAL en lugar de OIDs porque las secuencias SERIAL son únicas sólo dentro de un única tabla. Por tanto, con menos probabilidad de overflow. SERIAL8 esta disponible para el almacenamiento de una secuencia de valores de ocho bytes.
    Los CTIDs se utilizan para identificar filas físicas específicas con bloqueo y valores offset. Los CTIDs cambian después de que las filas sean modificadas o se recarguen.Ellos son utilizados por las entradas de índice para apuntar a las filas físicas.

    ResponderEliminar
  4. Estimados compañeros !!!! como a ustedes les toco esta parte de la programación de PostgreSQL I, seria mucho pedirles que indiquen mediante esta vía los pasos para la creación de una Base de Datos pequeña, así como el ejercicio visto en clase, por cierto la profe Sonaya envió por correo las tablas creadas. Humildemente les pido eso.
    Atentamente,

    LUZ NAIL

    ResponderEliminar
  5. Buenas por favor que es NAMEDATALEN y como es el comportamiento de las campos claves en potsgres con respecto a mysql
    Jesus ALvarado

    ResponderEliminar
  6. respuesta para miguel
    Si una tabla se crea con OIDS, cada fila incluye una columna de OID que se rellena automáticamente durante el INSERT. OIDs son asignados de forma secuencial byte enteros de 4. Initially they are unique across the entire installation. Inicialmente son únicos a través de toda la instalación. However, the OID counter wraps around at 4 billion, and after that OIDs may be duplicated. Sin embargo, el contador OID se envuelve alrededor de 4 millones de dólares, y después de que los OIDs se puede duplicar.

    It is possible to prevent duplication of OIDs within a single table by creating a unique index on the OID column (but note that the WITH OIDS clause doesn't by itself create such an index). The system checks the index to see if a newly generated OID is already present, and if so generates a new OID and repeats. Es posible evitar la duplicación de OIDs dentro de una sola tabla mediante la creación de un índice único en la columna de OID (pero tenga en cuenta que la cláusula WITH OIDS no basta para crear este índice). El sistema verifica que el índice para ver si una nueva generados OID ya está presente, y si es así genera un OID nuevo y repite. This works well so long as no OID-containing table has more than a small fraction of 4 billion rows. Esto funciona bien siempre y cuando no contengan OID tabla tiene más que una pequeña fracción de 4 mil millones de filas.

    PostgreSQL uses OIDs for object identifiers in the system catalogs, where the size limit is unlikely to be a problem. PostgreSQL usa OIDs para identificadores de objeto en los catálogos del sistema, donde el límite de tamaño es poco probable que sea un problema.

    To uniquely number rows in user tables, it is best to use SERIAL rather than an OID column, or BIGSERIAL if the table is expected to have more than 2 billion entries over its lifespan. Para filas número únicamente en las tablas de usuario, es mejor utilizar serie en lugar de una columna de OID, o BIGSERIAL si la tabla se espera que tenga más de 2 millones de entradas más de su vida útil.


    Tengo entendido que Postgres asigna los oids
    a los registros de tal manera de mantener unicidad,
    incluso entre todas las bases de datos.

    Por otra parte, cuando uno hace un dump puede especificar
    que se incluyan los oids. Esto me resulta util (por no
    decir imprescindible) ya que uso los oids como claves
    externas. De modo que cuando hago el restore, los oids
    no los asigna necesariamente el postgres, sino que yo
    puedo imponer los valores
    (COPY mitablita WITH OIDS FROM stdin ...)

    ResponderEliminar
  7. para miguel
    Para almacenar archivos binarios en general (imágenes, audio, video)
    > en una base de datos es sumamente ineficiente emplear columnas CHAR,
    > VARCHAR o TEXT, pues todas están sujetas a interpretaciones derivadas
    > de considerar a lo que almacenan como "legible" o "no binario". Los
    > objetos binarios grandes se denominan BLOBs (por Binary Large OBjects,
    > muy original :-) y se almacenan de forma especial en PostgreSQL y en
    > cualquier otra base de datos relacional decente.
    >
    > Los BLOBs se almacenan empleando _referencias_. En la tabla colocas
    > una columna de tipo 'oid' (Object IDentifier) y empleas rutinas especiales
    > provistas por PostgreSQL para alimentar el objeto; el manejador almacena
    > el objeto donde le parece mejor, en espacio contigüo y _fuera_ de la
    > tabla, colocando un apuntador a dicho espacio dentro de la tabla. De ese
    > modo, los objetos grandes no se convierten en una molestia para el
    > manejo relacional (como ocurre en Oracle y en el manejador de archivos
    > con SQL conocido como MySQL) y es mucho más eficiente manejar
    > transacciones.
    >

    ResponderEliminar
  8. para jesus
    identificadores de SQL y las palabras clave debe comenzar con una letra (a - z, sino también las letras con signos diacríticos y caracteres no-latinos) o un guión bajo (_). Los siguientes caracteres en un identificador o una palabra clave pueden ser letras, dígitos (0 - 9), o guiones, aunque la norma SQL no definir una palabra clave que contiene los dígitos o comienza o termina con un guión bajo.
    El sistema utiliza no más de NAMEDATALEN -1 personajes de uno; ya los nombres de identificador se puede escribir en los comandos, pero se truncará. De forma predeterminada, NAMEDATALEN es de 64 por lo que la longitud del identificador máxima es 63 (pero a la vez PostgreSQL se construye, NAMEDATALEN se puede cambiar en src / include / postgres_ext.h).
    Identificador y nombres de palabras clave distinguen entre mayúsculas y minúsculas. Por lo tanto
    UPDATE my_table AJUSTE A = 5;
    equivalente se puede escribir como
    UPDATE my_table Set a = 5;
    Una convención de uso frecuente es escribir las palabras clave en mayúsculas y los nombres en minúsculas, por ejemplo,
    AJUSTE UPDATE my_table a = 5;
    Hay un segundo tipo de identificador: el identificador delimitado o citado identificador. Está formado por adjuntando una secuencia arbitraria de caracteres entre comillas dobles ("). Un identificador delimitado es siempre un identificador, nunca una palabra clave. Así que" seleccionar "podría ser usado para referirse a una columna o una tabla denominada" seleccionar ", Considerando que uno no cotizadas seleccione sería tomado como una palabra clave y, por tanto, provocar un error de análisis cuando se utiliza en una tabla o una columna de nombre que se espera. En el ejemplo se puede escribir con identificadores citado de esta manera:
    UPDATE "my_table" SET "a" = 5;
    Citado identificadores pueden contener cualquier carácter que no sea una cita doble en sí. Para contener dobles comillas, escriba dos comillas dobles. Esto permite la construcción de tabla o columna que otra manera no serían posibles, como aquellos que contienen espacios o símbolos de unión. La limitación de la longitud sigue siendo válida.
    Citando un identificador también lo hace entre mayúsculas y minúsculas, mientras que los nombres no cotizadas son siempre plegada a minúsculas. Por ejemplo, los identificadores de FOO, foo y "foo" se consideran la misma por PostgreSQL, pero "Foo" y "FOO" son diferentes de estos tres y entre ellos. [

    ResponderEliminar
  9. para luz Creación de una base de datos
    Para crear la base de datos prueba puede usar el superusuario con la opción -U postgres o desde una cuenta que tenga permiso para crear bases de datos:

    createdb prueba
    psql prueba

    Desde la interfaz psql, pueden darse comandos SQL y otros específicos de PostgreSQL (ver Sección 3.4, “Uso de una base de datos”). En particular el usuario postgres y desde cuentas con permiso para crear usuarios, puede crear otros usuarios (globales para todas las bases de datos manejadas por el servidor). Por ejemplo para crear un usuario normal sin clave, desde psql ingresar:

    CREATE USER usejemplo

    El comando CREATE USER presentado puede ir seguido de CREATEUSER para crear un superusuario (sin restricción alguna), o CREATEDB para crear un usuario que pueda crear bases de datos o PASSWORD 'clave' para crear un usuario con una clave (emplea autenticación configurada). Desde la línea de comandos puede crearse un usuario con:

    createuser usejemplo


    Para eliminar un usario desde psql se usa:

    DROP USER usejemplo;

    y para eliminarlo desde línea de comandos:

    dropuser usejemplo


    Puede ejecutarse un script SQL (crea.sql) desde la línea de comandos a un base de datos con

    psql -d test -U ejusuario --password -f crea.sql

    ResponderEliminar
  10. para omar La primera etapa en el proceso de conversión para descargar la herramienta para convertir PostgreSQL. Esto se puede obtener de los autores sitio web. Recomiendo leer la documentación de los autores y tener en cuenta las limitaciones que figuran a continuación de esta herramienta.

    Esta herramienta toma la forma de una base de datos de MS Access 97.

    Una vez abierto, la pantalla principal (frmMain) tiene una serie de opciones relativas a la conversión de SQL.

    Seleccione la base de datos que desea convertir., Analizarlos utilizando la función de analizar y modificar ningún parámetro tiene que cambiar.

    Es importante llenar el campo de base de datos SQL con el nombre el nombre que desea darle a su base de datos postgres final de lo contrario usted tendrá más trabajo que hacer después.

    Active la opción Exportar datos para mover los datos a través de - modificar las ubicaciones de los archivos en la sección de opciones diversas en caso necesario.

    Utilice Crear SQL para que los archivos de SQL y luego en Exportar SQL. Esto coloca todos los ficheros necesarios en la etapa 2 en el directorio especificado en la ficha Varios de la modificación de los parámetros de pantalla dentro de pgupt.

    FTP estos archivos en un directorio adecuado vacía en el servidor postgres.

    ResponderEliminar
  11. La primera etapa en el proceso de conversión para descargar la herramienta para convertir PostgreSQL. Esto se puede obtener de los autores sitio web. Recomiendo leer la documentación de los autores y tener en cuenta las limitaciones que figuran a continuación de esta herramienta.

    Esta herramienta toma la forma de una base de datos de MS Access 97.

    Una vez abierto, la pantalla principal (frmMain) tiene una serie de opciones relativas a la conversión de SQL.

    Seleccione la base de datos que desea convertir., Analizarlos utilizando la función de analizar y modificar ningún parámetro tiene que cambiar.

    Es importante llenar el campo de base de datos SQL con el nombre el nombre que desea darle a su base de datos postgres final de lo contrario usted tendrá más trabajo que hacer después.

    Active la opción Exportar datos para mover los datos a través de - modificar las ubicaciones de los archivos en la sección de opciones diversas en caso necesario.

    Utilice Crear SQL para que los archivos de SQL y luego en Exportar SQL. Esto coloca todos los ficheros necesarios en la etapa 2 en el directorio especificado en la ficha Varios de la modificación de los parámetros de pantalla dentro de pgupt.

    FTP estos archivos en un directorio adecuado vacía en el servidor postgres.

    ResponderEliminar
  12. Buenos días mi pregunta es:
    ¿Que son datos abstime?

    opinión sobre el bloc no soy esperta pero me parece que esta sobre cargado.

    ResponderEliminar
  13. saludos compañeros bueno yo quiero saver cual es el papel de los usuarios dondes nos dice que Los usuarios pueden añadir nuevos tipos de Postgres utilizando el DEFINE TIPO Mando descrito en otra parte a que se refiere esto

    ResponderEliminar
  14. Buenas noches, que funcion hacen los xmin, xmax, cmin y max

    saludos

    Zonia mogollon

    ResponderEliminar
  15. hola compañeras(os) disculpen por favor no entendí que es un oid, podrían explicarme
    por favor.

    Germán Mota

    ResponderEliminar
  16. respuesta para german
    Todas estas funciones requieren OID objeto de identificar el objeto a controlar. Si desea probar un objeto por su nombre, es conveniente utilizar los tipos de alias OID (regclass, regtype, regprocedure, regoperator, regconfig o regdictionary), por ejemplo:
    SELECCIONAR pg_type_is_visible ('myschema.widget':: regtype);
    Tenga en cuenta que no tendría mucho sentido poner a prueba un nombre no cualificado de esta manera - si el nombre puede ser reconocido en absoluto, debe ser visible.

    ResponderEliminar
  17. respuesta para sorangel estos datos son admisibles en posgrestsql Dato Abstime
    Expresión de tiempo de baja precisión, usada internamente con el reloj del sistema. Este tipo de dato no es manejado por Mysql, en lo que Postgres lo supera

    ResponderEliminar
  18. respuesta para julio barrios
    Constantes Postgres de tipos definido por el usuario
    Una constante de un tipo arbitrario puede ser usando utilizando alguna de las siguientes notaciones: type 'string'
    'string'::type
    CAST 'string' AS type

    El valor de dentro de la cadena se pasa como entrada a rutina de conversión para el tipo llamado type. El resultado es una constante del tipo indicado. La tipología puede omitirse si no hay ambigüedad sobre el tipo de constate que debe ser, en este caso este está automáticamente forzado.

    ResponderEliminar
  19. para sorangel en cuanto a la sobrecarga depende como se mire, yo trate de publicar lo enviado a buscar pero como eran tablas, se eliminaron al pegarse y salio toda la informacion sin parametros de espacios, en linea una tras otra, pero se asume su comentario para mejorar la calidad para el proximo sera distinto.

    ResponderEliminar
  20. respuesta para sonia
    xmin para identificar filas modificadas por última vez
    xmin
    El identificador de la transacción insertada.
    xmax
    El identificador de la transacción borrada.
    cmin
    El identificador del comando dentro de la transacción.
    cmax
    El identificador del comando borrado.

    ResponderEliminar
  21. respuesta para Omar Medina:

    Si se puede hacer un password encriptado, con las sentencias "password encripted"

    ResponderEliminar
  22. le pido disculpa compañeros por comentar su blog de manera retardada, me parece que esta bastante completo,me gustaria que me aclararan mas acerca de los tipos de series.

    ResponderEliminar
  23. respuesta para angela: los tipos de serie pertenece a los tipos de datos,El de serie el tipo es un tipo especial de los casos construidos por Postgres de otros componentes existentes. Suele utilizarse para crear identificadores únicos para entradas de la tabla.

    ResponderEliminar
  24. Estimado German un oid es el identificador único de la instancia que añade Postgres a todas las instancias automáticamente. Los Oids no son reutilizable y tienen una longitud de 32 bits.

    ResponderEliminar
  25. Quisiera opinar acerca del blog me parece que esta muy completo en cuanto el contenido pero si mes gustaria que la informacion este mejor distribuida es solo mi opinion sin animos de criticar si no de aportar ideas para ir progresando
    Julio Piña

    ResponderEliminar