Types de données

Valeurs numériques exactes

Type de donnéesPlageStockage
BIGINTDe -2^63 (-9 223 372 036 854 775 808) à 2^63-1 (9 223 372 036 854 775 807)Huit octets
INTDe -2^31 (-2 147 483 648) à 2^31-1 (2 147 483 647)Quatre octets
SMALLINTDe -2^15 (-32 768) à 2^15-1 (32 767)Deux octets
TINYINTDe 0 à 255Un octet
BIT0 ou 1Un bit
DECIMAL[ (p[ ,s] )] ou NUMERIC[ (p[ ,s] )] p (précision): Nombre maximal de chiffres décimaux à gauche et à droite de la virgule.
s (échelle): Nombre maximal de chiffres décimaux à droite de la virgule.
- 10^38 +1 et 10^38 - 1
5 à 17 octets
SMALLMONEY-214 748,3648 à 214 748,3647Quatre octets
MONEY-922 337 203 685 477,5808 à 922 337 203 685 477,5807Huit octets

Valeurs numériques approximatives

Type de donnéesPlageStockage
REAL- 3,40E + 38 à -1,18E - 38, 0 et 1,18E - 38 à 3,40E + 384 octets
FLOAT[ (n) ]1<=n<=24Quatre octets
FLOAT[ (n) ]25<=n<=53Huit octets

Date et heure

Type de donnéesPlageStockage
DATE0001-01-01 à 9999-12-31 Le format par défault est AAAA-MM-JJ3 octets
DATETIME2 0001-01-01 00:00:00 à 9999-12-31 23:59:59 On utilisera le format par défaut AAAA-MM-JJ hh:mm:ss6 à 8 octets
DATETIME1753-01-01 00:00:00 à 9999-12-31 23:59:59 On utilisera le format par défaut AAAA-MM-JJ hh:mm:ss8 octets

Chaînes de caractères non Unicode

Type de donnéesPlageStockage
CHARCHAR(n) avec 1<= n <=8000n octets
VARCHARVARCHAR(n) avec 1<=n<=8000Max n+2 octets
VARCHAR(MAXDonnées dépassant 8000 octetsMax 2 Go

Chaînes de caractères Unicode

Type de donnéesPlageStockage
NCHARCHAR(n) avec 1<= n <=40002*n octets
NVARCHARVARCHAR(n) avec 1<=n<=4000Max 2*n+2 octets
NVARCHAR(MAX)Données dépassant 8000 octetsMax 2 Go

Fonctions de conversions

CAST ( expression AS type_donnée )
Cette fonction convertit une expression d'un type de données en un autre.
Exemple1 : Salaires de pilotes avec 4 chiffres après la virgule.
SELECT CAST(SalaireBrut AS DECIMAL(9,4)) FROM Pilote
Exemple2 : Dates de naissance des pilotes sans la partie des heures, minutes et seconde.
SELECT CAST(DateNaissance AS DATE) [Date de naissance] FROM Pilote
CONVERT ( type_donnée, expression [ , style ] )
Convertit une expression d'un type de données en un autre.
Exemple3 : Date de naissance de pilote sous le format Anglais/Français (jj/mm/aaaa)
SELECT CONVERT(VARCHAR(10),DateNaissance,103) [Date de naissance] 
FROM pilote
Exemple4 : Date de naissance de pilote sous le format Américain (mm/jj/aaaa)
SELECT CONVERT(VARCHAR(10),DateNaissance,101) [Date de naissance] 
FROM pilote
LEFT ( expression_chaîne , n )
Retourne la partie de gauche d'une chaîne de caractères avec le nombre spécifié (n) de caractères
Exemple5 : Les 3 premiers caractères des villes des pilotes
SELECT LEFT(Ville,3)  FROM pilote
RIGHT ( expression_chaîne , n )
Retourne la partie de droite d'une chaîne de caractères avec le nombre spécifié (n) de caractères
Exemple6 : Les 4 derniers chiffres des codes postaux des pilotes
SELECT RIGHT(Codepostal,4) FROM pilote
UPPER ( chaîne_expression )
LOWER ( chaîne_expression )
Retourne la chaîne transformée en Majuscules (UPPER) ou en Minuscules (LOWER).
Exemple7 : Liste des noms de pilotes écrits en majuscule et le prenom on minuscule.
SELECT UPPER(nom) [Nom], LOWER(Prenom) [Prenom] FROM pilote
LTRIM ( chaîne_expression )
Supprime tous les espaces à gauche de la chaîne.
SELECT LTRIM('     chaine')

retourne "chaine" sans les espaces
RTRIM ( chaîne_expression )
Supprime tous les espaces à droite de la chaîne.
SELECT RTRIM('chaine     ')

retourne "chaine" sans les espaces
SUBSTRING ( expression_chaine , position_début, la_longueur)
Retourne la partie de chaine de longueur spécifiée (la_longueur) à partir de la position spécifiée.
SELECT SUBSTRING('Alice au pays des merveilles',7,11)

Retrourne "au pays des"
LEN (expression_chaîne)
Retourne le nombre de caractères de la chaîne à l’exception des espaces de droite.
SELECT LEN('Jack   ')

Retourne 7
REVERSE (expression_chaine)
Retourne la chaîne dans l’ordre inversé des caractères.
SELECT REVERSE('LEON')

Retourne 'NOEL'
REPLACE (expression_chaîne , chaîne_à_remplacer , chaîne_replacement )
Remplace les occurrences d’un chaîne par une autre chaîne
SELECT REPLACE('Alice au pays des merveilles','es','XT')

Retourne 'Alice au pays dXT merveillXT'
DAY(une_date)
Retourne un entier représentant le jour du mois de la date spécifiée.
SELECT DAY('2014-09-17')

Retourne 17
MONTH(une_date)
Retourne un entier qui représente le mois de la date spécifiée.
SELECT MONTH('2014-09-17')

Retourne 9
YEAR(une_date)
Retourne un entier qui représente l'année de la date spécifiée.
SELECT YEAR('2014-09-17')

Retourne 2014
DATENAME (partie_date , la_date)
Retourne une chaîne de caractères qui représente la partie de date précisée de la date spécifiée.
DATEPART (partie_date , la_date)
Retourne un entier qui représente la partie de date précisée de la date spécifiée.
DATEADD (intervalle_temps , n , la_date )
Ajoute (ou retire) n intervalles de temps spécifiés à la date.
DATEDIFF ( partie_date , date_début , date_fin )
Retourne un nombre indiquant combien de fois la partie de date indiquée a été traversée entre la date de début et la date de fin.
Quelques valeurs possibles pour partie_date:
YEAR, MONTH, WEEKDAY, DAY, HOUR, MINUTE, SECOND
Pour plus comprendre : TP + correction
share