Qu'est-ce que le type de données?
Un type de données est défini comme le type de données que toute colonne ou variable peut stocker dans MS SQL Server.
Lors de la création d'une table ou d'une variable, en plus de spécifier le nom, vous définissez également le type de données qu'elle stockera.
Comment utiliser le type de données MS SQL
- Vous devez définir à l'avance le type de données qu'une colonne ou une variable peut stocker. La détermination du type de données empêche également l'utilisateur de saisir des données inattendues ou non valides.
- Vous pouvez utiliser efficacement la mémoire en attribuant un type de données approprié à la variable ou à la colonne qui n'allouera que la quantité requise de mémoire système pour les données de la colonne respective.
- MS SQL propose une large catégorie de types de données selon les besoins de l'utilisateur. Comme la date, les images binaires, etc.
Dans ce tutoriel, vous apprendrez:
- Qu'est-ce que le type de données?
- Comment utiliser le type de données MS SQL
- Pourquoi utiliser DataTypes?
- Numérique exact
- Numérique approximatif
- Date et l'heure
- Chaînes de caractères
- Chaînes de caractères Unicode
- Chaîne binaire
- Autres types de données
Pourquoi utiliser DataTypes?
Prenons un échantillon de la page d'inscription simple de l'application de site Web. Trois champs de saisie sont le prénom, le nom et le numéro de contact.
Ici, il faut noter qu'en temps réel:
- «Prénom / Nom» sera toujours alphabétique .
- "Contact" sera toujours numérique .
- À partir de l'image ci-dessus, il vaut la peine de définir "Prénom / Nom" comme caractère et " Contact" comme entier .
Il est évident que dans toute application, tous les champs ont l'un ou l'autre type de données. Par exemple, numérique, alphabétique, date et bien d'autres.
Notez également que différents types de données ont des besoins de mémoire différents. Par conséquent, il est plus judicieux de définir la colonne ou la variable avec le type de données qu'elle contiendra pour une utilisation efficace de la mémoire.
Type de données disponible dans MS SQL
Le serveur MS SQL prend en charge les catégories suivantes de type de données:
- Numérique exact
- Numérique approximatif
- Date et l'heure
- Chaînes de caractères
- Chaînes de caractères Unicode
- Chaînes binaires
- Autres types de données
![](https://cdn.css-code.org/images/1/030819_0709_SQLServerDa2.png.webp)
Numérique exact
La valeur numérique exacte a neuf types de sous-types de données. Types de données numériques exacts
Type de données | Description | Limite inférieure | Limite supérieure | Mémoire |
---|---|---|---|---|
bigint | Il stocke des nombres entiers dans la plage donnée | −2 63 (−9 223 372, 036 854 775 808) | 2 63−1 (−9 223 372, 036 854 775 807) | 8 octets |
int | Il stocke des nombres entiers dans la plage donnée | −2 31 (−2 147, 483 648) | 2 31−1 (−2 147, 483 647) | 4 octets |
smallint | Il stocke des nombres entiers dans la plage donnée | −2 15 (−32 767) | 2 15 (-32 768) | 2 octets |
minuscule | Il stocke des nombres entiers dans la plage donnée | 0 | 255 | 1 octet |
bit | Il peut prendre des valeurs 0, 1 ou NULL. | 0 | 1 | 1 octet / colonne 8 bits |
décimal | Utilisé pour l'échelle et les nombres de précision fixes | −10 38 + 1 | 10 381−1 | 5 à 17 octets |
numérique | Utilisé pour l'échelle et les nombres de précision fixes | −10 38 + 1 | 10 381−1 | 5 à 17 octets |
de l'argent | Données monétaires utilisées | −922 337, 203, 685 477,5808 | +922 337, 203, 685 477 5807 | 8 octets |
petit argent | Données monétaires utilisées | −214 478,3648 | +214 478,3647 | 4 octets |
Exemples:
Mettre en doute:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Sortie: 2
Syntaxe: Decimal (P, S)
Ici,
- P est la précision
- S est l'échelle
Mettre en doute:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Sortie: 2,31
Numérique approximatif
La catégorie numérique approximative comprend les valeurs à virgule flottante et réelle. Ils sont principalement utilisés dans les calculs scientifiques. Type de données numériques approximatif
Type de données | Description | Limite inférieure | Limite supérieure | Mémoire | Précision |
---|---|---|---|---|---|
flotteur (n) | Utilisé pour un nombre de précision flottant | −1,79E + 308 | 1,79E + 308 | Dépend de la valeur de n | 7 chiffres |
réel | Utilisé pour un nombre de précision flottant | −3,40E + 38 | 3,40E + 38 | 4 octets | 15 chiffres |
Syntax: FLOAT [(n)]
Ici, n est le nombre de bits qui sont utilisés pour stocker la mantisse du nombre flottant en notation scientifique. Par défaut, la valeur de n est 53.
Lorsque l'utilisateur définit un type de données comme float, n doit être une valeur comprise entre 1 et 53.
SQL Server traite n comme l'une des deux valeurs possibles. Si 1 <= n <= 24, n est traité comme 24. Si 25 <= n <= 53, n est traité comme 53.
Exemple de requête:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Sortie: 22.1234
Date et l'heure
Il stocke des données de type Date et heure. Type de données de date et d'heure
Type de données | Description | Taille de stockage | Précision | Gamme inférieure | Gamme supérieure |
---|---|---|---|---|---|
DateHeure | Utilisé pour spécifier une date et une heure du 1er janvier 1753 au 31 décembre 9999. Il a une précision de 3,33 millisecondes. | 8 octets | Arrondi aux incréments de .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Utilisé pour spécifier une date et une heure entre le 1er janvier 0001 et le 31 décembre 9999. Il a une précision de 100 nanosecondes | 4 octets, fixe | 1 minute | 01/01/1900 | 2079-06-06 |
Date | Utilisé pour stocker uniquement la date du 1er janvier 0001 au 31 décembre 9999 | 3 octets, fixe | Un jour | 0001-01-01 | 9999-12-31 |
temps | Utilisé pour stocker uniquement des valeurs temporelles avec une précision de 100 nanosecondes. | 5 octets | 100 nanosecondes | 00: 00: 00.0000000 | 23: 59: 59.9999999 |
datetimeoffset | Similaire à datatime mais a un décalage de fuseau horaire | 10 octets | 100 nanosecondes | 0001-01-01 | 9999-12-31 |
datetime2 | Utilisé pour spécifier une date et une heure du 1er janvier 0001 au 31 décembre 9999 | 6 octets | 100 nanosecondes | 0001-01-01 | 9999-12-31 |
Exemple de requête:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Sortie: '2030-01-01'
Chaînes de caractères
Cette catégorie est liée à un type de caractère. Il permet à l'utilisateur de définir le type de données de caractère qui peut être de longueur fixe et variable. Il comporte quatre types de types de données. Types de données de chaînes de caractères
Type de données | Description | Limite inférieure | Limite supérieure | Mémoire |
---|---|---|---|---|
carboniser | C'est une chaîne de caractères de largeur fixe. Il stocke un maximum de 8 000 caractères. | 0 caractères | 8000 caractères | n octets |
varchar | Ceci est une chaîne de caractères de largeur variable | 0 caractères | 8000 caractères | n octets + 2 octets |
varchar (max) | Il s'agit d'une chaîne de caractères de largeur variable. Il stocke un maximum de 1 073 741 824 caractères. | 0 caractères | 2 31 caractères | n octets + 2 octets |
texte | Il s'agit d'une chaîne de caractères de largeur variable. Il stocke au maximum 2 Go de données texte. | 0 caractères | 2.147.483.647 caractères | n octets + 4 octets |
Exemple de requête:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Sortie: il s'agit d'un type de données caractère
Chaînes de caractères Unicode
Cette catégorie stocke la gamme complète de caractères Unicode qui utilise le codage de caractères UTF-16. Types de données de chaîne de caractères Unicode
Type de données | Description | Limite inférieure | Limite supérieure | Mémoire |
---|---|---|---|---|
nchar | C'est une chaîne Unicode de largeur fixe | 0 caractères | 4000 caractères | 2 fois n octets |
nvarchar | C'est une chaîne unicode de largeur variable | 0 caractères | 4000 caractères | 2 fois n octets + 2 octets |
ntext | C'est une chaîne unicode de largeur variable | 0 caractères | 1.073.741.823 caractères | 2 fois la longueur de la chaîne |
Exemple de requête:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Sortie: il s'agit du type de données nCharacter
Chaîne binaire
Cette catégorie contient une chaîne binaire de longueur fixe et variable. Types de données de chaîne binaire
Type de données | Description | Limite inférieure | Limite supérieure | Mémoire |
---|---|---|---|---|
binaire | C'est une chaîne binaire de largeur fixe. Il stocke un maximum de 8 000 octets. | 0 octets | 8000 octets | n octets |
varbinary | Il s'agit d'une chaîne binaire de largeur variable. Il stocke un maximum de 8 000 octets | 0 octets | 8000 octets | La longueur réelle des données saisies + 2 octets |
image | Il s'agit d'une chaîne binaire de largeur variable. Il stocke au maximum 2 Go. | 0 octets | 2,147,483,647 octets |
Exemple de requête:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Sortie: 0x000C
Autres types de données
Ce sont d'autres types de données différents avec la description ci-dessous-
Type de données | Description |
---|---|
Le curseur | Sa sortie est une colonne de sp_cursor_list et sp_describe_cursor. Il renvoie le nom de la variable du curseur. |
Version en ligne | Cette version tamponne les lignes de la table. |
Hiérarchie | Ce type de données représente une position dans la hiérarchie |
Identifiant unique | Conversion à partir d'une expression de caractère. |
Sql_variant | Il stocke les valeurs des types de données pris en charge par le serveur SQL. |
XML | Il stocke les données XML dans une colonne. |
Type de géométrie spatiale | Il représente les données dans un système de coordonnées plat. |
Type de géographie spatiale | Il représente les données dans le système de coordonnées de la Terre ronde. |
table | Il stocke un jeu de résultats pour un traitement ultérieur. |
Faits intéressants!
- Le type de données CHAR est plus rapide que VARCHAR lors de la récupération des données.
Résumé:
- Chaque colonne des tables définit avec son type de données lors de la création de la table.
- Il existe six catégories principales et une autre catégorie diverse. D'autres divers ont neuf sous-catégories de types de données disponibles.