Domaines de données
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir les domaines pré-définis pour les attributs des tables.
Mise en situation
Supposez que vous êtes sur le point de créer une base de données pour gérer des événements sportifs. Dans la table événement, vous allez avoir plusieurs attributs, comme la date et l'heure de l'événement, son nom, son prix, son lieu, etc.
Si vous devez faire des calculs sur la date, par exemple pour programmer un rappel une semaine avant, il faut pouvoir distinguer le jour, le mois et l'année, et connaître les règles de calcul sur les dates.
Or, si on se représente mentalement ce que doit être une date, une heure ou un prix, comment indiquer au langage SQL la nature des données, pour qu'il « comprenne »
comment faire des calculs par exemple ?
C'est grâce aux types standards SQL, que vous allez découvrir dans ce module.
Fondamental : Les types standard
INTEGER
ouINT
,SMALLINT
NUMERIC(X)
DECIMAL(X,Y)
ouNUMERIC(X,Y)
FLOAT(X)
,REAL
CHAR(X)
VARCHAR(X)
DATE
("AAAA-MM-JJ")TIME
("HH:MM:SS")DATETIME
("AAAA-MM-JJ HH:MM:SS")
Complément : Les types numériques standard
Les nombres entiers
INTEGER
(ouINT
) etSMALLINT
, permettent de coder des entiers sur 4 octets (-2.147.483.648 à 2.147.483.647) ou 2 octets (-32.768 à 32.767).Les nombres entiers
NUMERIC(X)
désigne un entier deX
chiffres au maximum.Les nombres décimaux
DECIMAL(X,Y)
, oùX
etY
sont optionnels et désignent respectivement le nombre de chiffres maximum pouvant composer le nombre, et le nombre de chiffres après la virgule.NUMERIC(X,Y)
est un synonyme standard.Les nombres à virgule flottante
FLOAT(X)
, avecX
définissant la précision (nombre de bits de codage de la mantisse).REAL
est un synonyme standard deFLOAT(24)
.
Conseil : FLOAT versus DECIMAL
Il est conseillé d'utiliser DECIMAL
qui est un nombre exact, plutôt que FLOAT
qui est un nombre approximatif, si la précision requise est suffisante. FLOAT
sera réservé typiquement à des calculs scientifiques nécessitant un degré de précision supérieur.
Les types chaîne de caractères standard
On distingue principalement les types CHAR(X)
et VARCHAR(X)
, où X
est obligatoire et désigne la longueur maximale de la chaîne.
CHAR
définit des chaînes de longueur fixe (complétée à droites par des espaces, si la longueur est inférieure àX
) ;VARCHAR
des chaînes de longueurs variables.
CHAR
et VARCHAR
sont généralement limités à 255 caractères. La plupart des SGBD proposent des types, tels que TEXT
ou CLOB
(Character Long Object), pour représenter des chaînes de caractères longues, jusqu'à 65000 caractères par exemple.
Les types date standard
Les types date sont introduits avec la norme SQL2. On distingue :
DATE
qui représente une date selon un format de type "AAAA-MM-JJ
" ;et
DATETIME
qui représente une date plus une heure, dans un format tel que "AAAA-MM-JJ HH:MM:SS
".
Attention :
DATETIME
n'existe pas sous PostgreSQL (on utilise TIMESTAMP à la place).
Complément : Types de données PostgreSQL
Complément : Les autres types
En fonction du SGBD, il peut exister de nombreux autres types. On peut citer par exemple :
MONEY
pour représenter des décimaux associés à une monnaie,BOOLEAN
pour représenter des booléens,BLOB
(pour Binary Long Object) pour représenter des données binaires tels que des documents multimédia (images bitmap, vidéo, etc.)Etc.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.