next up previous contents Next:  Afficher une table. Up: Introduction à SQL. Previous: Introduction à SQL.   Table des matières  

39.6.1  Création de tables.

Pour créer une table nommée people, avec trois colonnes, exécutez:

CREATE TABLE people ( name text, gender bool, address text ); 


La table ainsi créée intitule les colonnes: name, gender et address. Ces colonnes sont caractérisées par un type. Ceci signifie que seul le type de données qui a été spécifié lors de la création de la table peut être accepté. Dans le cas de gender, le type est booléen et les valeurs ne peuvent valoir que true ou false, ce qui indique que le genre des personnes est soit homme ou femme. Il n'y a pas de raisons formelles à utiliser le type booléen; l'usage d'un entier ou d'un champ ``texte'' est souvent plus évocateur. Dans le cas de name et address, le type est text, ce qui veut dire que ces colonnes peuvent abriter des données très variables (text est un type très général englobant la majorité des autres types).

Notez que dans la documentation relative à postgres, une ``colonne'' est appelée un ``attribut'' (et ce, pour des raisons historiques).

Vous devriez essayer de choisir des types selon le genre de recherche que vous ferez et non selon la nature des données qu'une colonne contient. Le tableau 18 affiche une liste des types utiles et de leur équivalent SQL92. Les types qui sont écrits en gras doivent être utilisés préférentiellement à d'autres types similaires pour une meilleure précision.


Tableau 18: Types usuels de postgres.
Postgres Type Type SQL92 ou SQL3 Description
bool boolean booléen logique (vrai/faux)
box   rectangle sur un plan
char(n) character(n) chaîne de caractères de longueur fixe
cidr   IP de réseau version 4 ou adresse d'hôte
circle   cercle dans un plan
date date date du calendrier sans le jour
decimal decimal(p,s) nombre exact pour p |= 9, s = 0
float4 float(p),p | 7 nombre à virgule flottante de précision p
float8 float(p),7 |=p | 16 nombre à virgule flottante de précision p
inet   IP version 4 ou adresse d'hôte
int2 smallint entier signé à 2-octets
int4 int, integer entier signé à 4-octets
int8   entier signé à 8-octets
interval interval période à usage général
line   ligne de longueur infinie
lseg   segment de ligne
money decimal(9,2) monnaie en style US
numeric numeric(p,s) nombre exact pour p == 9, s = 0
path   courbe ouverte ou fermée dans un plan
point   point géometrique
polygon   polygone régulier ou irrégulier
serial   ID simple pour faire un indice ou une référence croisée
time time temps courant
text   texte de longueur arbitraire (jusqu'à 8k dans le cas de postgres 7)
timetz time with time zone temps avec zone horaire
timestamp timestamp with time zone date/temps avec zone horaire à grande précision
varchar(n) character varying(n) chaîne de caractères de longueur quelconque


next up previous contents Next:  Afficher une table. Up: Introduction à SQL. Previous: Introduction à SQL.   Table des matières  
1-01-2006