Types de données SQL Server: Varchar, numérique, date et heure (exemples T-SQL)

Table des matières:

Anonim

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
Types de données MSQL

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.