Types de données
Valeurs numériques exactes
Type de données | Plage | Stockage |
---|---|---|
BIGINT | De -2^63 (-9 223 372 036 854 775 808) à 2^63-1 (9 223 372 036 854 775 807) | Huit octets |
INT | De -2^31 (-2 147 483 648) à 2^31-1 (2 147 483 647) | Quatre octets |
SMALLINT | De -2^15 (-32 768) à 2^15-1 (32 767) | Deux octets |
TINYINT | De 0 à 255 | Un octet |
BIT | 0 ou 1 | Un 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,3647 | Quatre octets |
MONEY | -922 337 203 685 477,5808 à 922 337 203 685 477,5807 | Huit octets |
Valeurs numériques approximatives
Type de données | Plage | Stockage |
---|---|---|
REAL | - 3,40E + 38 à -1,18E - 38, 0 et 1,18E - 38 à 3,40E + 38 | 4 octets |
FLOAT[ (n) ] | 1<=n<=24 | Quatre octets |
FLOAT[ (n) ] | 25<=n<=53 | Huit octets |
Date et heure
Type de données | Plage | Stockage |
---|---|---|
DATE | 0001-01-01 à 9999-12-31 Le format par défault est AAAA-MM-JJ | 3 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:ss | 6 à 8 octets |
DATETIME | 1753-01-01 00:00:00 à 9999-12-31 23:59:59 On utilisera le format par défaut AAAA-MM-JJ hh:mm:ss | 8 octets |
Chaînes de caractères non Unicode
Type de données | Plage | Stockage |
---|---|---|
CHAR | CHAR(n) avec 1<= n <=8000 | n octets |
VARCHAR | VARCHAR(n) avec 1<=n<=8000 | Max n+2 octets |
VARCHAR(MAX | Données dépassant 8000 octets | Max 2 Go |
Chaînes de caractères Unicode
Type de données | Plage | Stockage |
---|---|---|
NCHAR | CHAR(n) avec 1<= n <=4000 | 2*n octets |
NVARCHAR | VARCHAR(n) avec 1<=n<=4000 | Max 2*n+2 octets |
NVARCHAR(MAX) | Données dépassant 8000 octets | Max 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 PiloteExemple2 : 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 piloteExemple4 : 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èresExemple5 : 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èresExemple6 : 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).LOWER ( chaîne_expression )
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îneSELECT 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 + correctionshare