AnalyticDB for PostgreSQL prend en charge les types de données répertoriés ci-dessous. Pour définir un type personnalisé, exécutez une instruction CREATE TYPE.
Types de données pris en charge
Les types sont regroupés par catégorie. Chaque entrée indique son alias, sa taille de stockage, sa plage de valeurs et une brève description.
Types numériques
Utilisez le type integer pour la plupart des colonnes d'entiers : il offre un bon équilibre entre la plage de valeurs, l'espace de stockage et les performances. N'utilisez le type smallint que si l'espace de stockage est une contrainte stricte. Choisissez le type bigint lorsque les valeurs dépassent la plage du type integer. Pour les calculs décimaux exacts (par exemple, les calculs financiers), privilégiez les types decimal ou numeric aux types double precision ou real, qui sont des types à virgule flottante inexacts.
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| smallint | int2 | 2 octets | -32768 à +32767 | Entier de petite plage. |
| integer | int, int4 | 4 octets | -2 147 483 648 à +2 147 483 647 | Entier standard. |
| bigint | int8 | 8 octets | -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 | Entier de grande plage. |
| decimal [ (p, s) ] | numeric [ (p, s) ] | Variable | Illimitée | Précision exacte définie par l'utilisateur. |
| real | float4 | 4 octets | 6 chiffres significatifs | Virgule flottante inexacte, à précision variable. |
| double precision | float8 | 8 octets | 15 chiffres significatifs | Virgule flottante inexacte, à précision variable. |
| float | ||||
| money | 8 octets | -92 233 720 368 547 758,08 à +92 233 720 368 547 758,07 | Montant monétaire. |
Types serial (auto-incrémentés)
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| serial | serial4 | 4 octets | 1 à 2 147 483 647 | Entier auto-incrémenté. |
| bigserial | serial8 | 8 octets | 1 à 9 223 372 036 854 775 807 | Grand entier auto-incrémenté. |
Types de caractères
Utilisez les types text ou varchar pour la plupart des colonnes de texte. Utilisez le type char(n) uniquement lorsqu'un système externe impose un format à largeur fixe, car il complète les valeurs plus courtes avec des espaces.
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| character [ (n) ] | char [ (n) ] | 1 octet + n | Jusqu'à n caractères | Chaîne de longueur fixe, complétée par des espaces. |
| character varying [ (n) ] | varchar [ (n) ] | 1 octet + taille de la chaîne | Jusqu'à n caractères | Chaîne de longueur variable avec une limite supérieure. |
| text | 1 octet + taille de la chaîne | Illimitée | Chaîne de longueur variable sans limite. |
Types binaires
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| bytea | 1 octet + chaîne binaire | 1 ou 4 octets plus la chaîne binaire réelle | Chaîne binaire de longueur variable. |
Types date et heure
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| date | 4 octets | 4713 av. J.-C. à 294 277 ap. J.-C. | Date du calendrier (année, mois, jour). | |
| time [ (p) ] [ without time zone ] | 8 octets | 00:00:00[.000000] à 24:00:00[.000000] | Heure de la journée, sans fuseau horaire. | |
| time [ (p) ] with time zone | timetz | 12 octets | 00:00:00+1359 à 24:00:00-1359 | Heure de la journée avec fuseau horaire. |
| timestamp [ (p) ] [ without time zone ] | 8 octets | 4713 av. J.-C. à 294 277 ap. J.-C. | Date et heure, sans fuseau horaire. | |
| timestamp [ (p) ] with time zone | timestamptz | 8 octets | 4713 av. J.-C. à 294 277 ap. J.-C. | Date et heure avec fuseau horaire. |
| interval [ (p) ] | 12 octets | -178 000 000 à 178 000 000 ans | Intervalle de temps. |
Type booléen
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| boolean | bool | 1 octet | true/false, t/f, yes/no, y/n, 1/0 | Valeur booléenne logique. |
Types de chaînes de bits
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| bit [ (n) ] | n bits | Constante de chaîne de bits | Chaîne de bits de longueur fixe. | |
| bit varying [ (n) ] | varbit | Variable | Constante de chaîne de bits | Chaîne de bits de longueur variable. |
Types d'adresses réseau
| Type de données | Alias | Taille | Description |
|---|---|---|---|
| cidr | 12 ou 24 octets | Réseaux IPv4 et IPv6. | |
| inet | 12 ou 24 octets | Hôtes et réseaux IPv4 et IPv6. | |
| macaddr | 6 octets | Adresse MAC. |
Types de recherche textuelle et de document
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| json | 1 octet + taille JSON | Chaîne JSON | Chaîne de longueur variable illimitée. | |
| xml | 1 octet + taille XML | Illimitée | Chaîne de longueur variable illimitée. |
Type UUID
| Type de données | Alias | Taille | Description |
|---|---|---|---|
| uuid | 32 octets | Identifiant universellement unique. |
Le typeuuidest intégré à AnalyticDB for PostgreSQL V6.0. Sur la version V4.3, installez l'extensionuuid-osspavant d'utiliser ce type. Pour plus de détails, consultez la rubrique Utiliser l'extension uuid-ossp .
Types géométriques
Les types géométriques (box,circle,lseg,path,point,polygon) ne peuvent pas servir de colonnes de clé de distribution.
| Type de données | Alias | Taille | Plage | Description |
|---|---|---|---|---|
| box | 32 octets | ((x1,y1),(x2,y2)) | Rectangle dans un plan. | |
| circle | 24 octets | <(x,y),r> (centre et rayon) | Cercle dans un plan. | |
| lseg | 32 octets | ((x1,y1),(x2,y2)) | Segment de droite dans un plan. | |
| path | 16+16n octets | [(x1,y1),...] | Chemin géométrique dans un plan. | |
| point | 16 octets | (x,y) | Point géométrique dans un plan. | |
| polygon | 40+16n octets | ((x1,y1),...) | Chemin géométrique fermé dans un plan. |