SQL Server Data Types Tutorial (Français)

dans SQL, les colonnes d’une table sont définies pour stocker un type de valeur spécifique tel que des nombres, des dates ou du texte. Avec plus de trente types de types de données SQL server à choisir, les types de données peuvent sembler intimidants, mais en réalité, il n’y en a que quelques-uns couramment utilisés dans les bases de données.

Une fois que vous comprenez les types de données en général, ce n’est pas un sujet compliqué. Vous comprendrez également pourquoi il existe un besoin de types de données et la raison pour laquelle il existe tant de variétés.,

Dans cet article, nous allons passer en revue les plus courantes types de données et les meilleures pratiques pour leur utilisation.

Tous les exemples de cette leçon sont basés sur Microsoft SQL Server Management Studio et la base de données AdventureWorks2012. Commencez à utiliser ces outils gratuits avec mon guide pour commencer à utiliser SQL Server.

quels sont les types de données SQL Server?

avant d’entrer dans les types de données utilisés dans SQL server, je pense qu’il est important que tout le monde comprenne ce qu’est un type de données et pourquoi ils sont nécessaires pour une utilisation dans les ordinateurs.

Pour notre exemple, nous allons parler d’une personne., Si vous pensiez aux informations que vous pourriez utiliser pour décrire une personne, vous pourriez penser à recueillir son nom, sa date de naissance, son poids et son nombre d’enfants. Pour chacun de ces attributs, les données se répartissent en plusieurs catégories.

Les noms sont stockés sous forme de texte, les dates de naissance sous forme de dates de calendrier, le poids sous forme de valeurs décimales et un nombre d’enfants sous forme d’entiers. Chacune de ces catégories de valeurs du type de données.

comment les types SQL aident

les types de données définissent les caractéristiques des données qui peuvent être stockées dans un emplacement tel qu’une colonne de base de données., Un type de données définit l’ensemble possible de valeurs acceptées. Par exemple, un type de INT qui signifie integer dans SQL server ne peut accepter que des nombres entiers, les valeurs décimales ne sont pas autorisées.

Voici une liste de certaines personnes et leur âge

Âge – Tout des Valeurs de Texte

Pouvez-vous voir le problème avec ces âges? Ils sont tous dans un format incohérent. Non seulement ils sont difficiles à lire, mais le tri et le calcul des données est difficile., En utilisant des types de données SQL Server, qui appliquent le type de données attendu à stocker, nous pouvons obtenir un bien meilleur résultat. Voici la même table avec les âges affichés sous forme d’entiers

âges conformes au type de données INT

lorsque l’âge est défini comme un entier, l’attente est que les données sont entrées sous forme de nombres entiers.

de plus, sans entrer dans les détails techniques, vous pouvez voir que le stockage de l’âge en tant qu’entier prend beaucoup moins de place que l’âge dans le premier tableau., Cela peut ne pas sembler une énorme considération avec de petites bases de données, mais lorsque vous travaillez avec des données sur des smartphones ou des scénarios de « big data”, ces considérations s’additionnent.

Une fois que le système comprend le type de données, il peut ensuite trier les données dans un ordre logique et effectuer des calculs.

pourquoi utiliser les Types de Données SQL Server

Voici quelques raisons pour lesquelles les types de données sont importants:

  1. les Données sont stockées dans un uniforme et un modèle connu.
  2. connaître le type de données vous permet de savoir quels calculs et formulations vous pouvez utiliser sur la colonne.,
  3. Les types de données affectent le stockage. Certaines valeurs prennent plus de place lorsqu’elles sont stockées dans un type de données par rapport à un autre. Prenez nos tableaux d’âge ci-dessus par exemple.
  4. Les types de données affectent les performances. Moins la base de données a de temps pour déduire des valeurs ou les convertir, mieux c’est. « Le 32 décembre 2015 est-il une date?”

types de données SQL Server couramment utilisés

dans SQL, vous définissez le type de données à stocker dans les colonnes. Certains exemples incluent des données textuelles ou numériques.,

c’est le type de données de la colonne, et l’une de ses propriétés les plus importantes car elle détermine seule si une valeur est valide pour le stockage dans une colonne.

Il existe plus de trente types de données différents parmi lesquels vous pouvez choisir lors de la définition de colonnes, certains ayant des utilisations spécifiques, telles que le stockage d’images.

dans cet article, nous allons couvrir les sept types de données que vous rencontrerez le plus souvent dans votre utilisation quotidienne de SQL., Ce sont:

  • Int
  • VARCHAR, NVARCHAR
  • DATETIME
  • DECIMAL, FLOAT
  • BIT

Int – Integer Data Type

le type de données integer stocke les nombres entiers. Les exemples incluent -23, 0, 5 et 10045. Les nombres entiers n’incluent pas les décimales. Étant donné que le serveur SQL utilise un certain nombre de mots informatiques pour représenter un entier, il peut représenter des valeurs maximales et minimales. Un type de données INT peut stocker une valeur de -2 147 483 648 à 2 147 483 647.,

Les utilisations pratiques du type de données INT incluent son utilisation pour compter les valeurs, stocker l’âge d’une personne ou l’utiliser comme clé D’identification d’une table.

Mais INT ne serait pas si bon de garder une trace d’un espace d’adressage de disque dur téraoctet, car le type de données INT ne va qu’à 2 milliards et nous aurions besoin de suivre dans les trillions. Pour cela, vous pouvez utiliser le type de données BIGINT.

le type de données INT est utilisé dans les calculs., Puisque DaysToManufacture est défini comme INT, nous pouvons facilement calculer les heures en le multipliant par 24:

SELECT Name, DaysToManufacture, DaysToManufacture * 24 as HoursToManufactureFROM Production.Produit
/* Answer */SELECT Name, DaysToManufacture, DaysToManufacture * 24 as HoursToManufactureFROM Production.Product

Ici, vous pouvez voir les résultats

Résultats de INT calculs

Il existe de nombreuses opérations et les fonctions que vous pouvez utiliser avec des entiers, que nous vous présenterons une fois nous plonger dans les fonctions.,

varchar et NVARCHAR – Text Values

utilisez VARCHAR et NVARCHAR pour stocker des valeurs de texte de longueur variable. « VARCHAR » signifie caractère de longueur variable.

spécifiez le nombre de caractères à stocker dans un varchar ou NVARCHAR lorsque la colonne est définie. Notez comment Name est défini pour contenir cinquante caractères:

varchar définition affichée dans SSMS Object Explorer

ce qui rend VARCHAR populaire, c’est que les valeurs inférieures à cinquante caractères prennent moins d’espace. L’espace est alloué en tant que de besoin., Cela diffère du type de données CHAR qui alloue toujours la longueur spécifiée, quelle que soit la longueur des données réelles stockées.

le type de données VARCHAR peut généralement stocker un maximum de 8 000 caractères. Utilisez le type de données NVARCHAR pour stocker du texte Unicode. Étant donné que les caractères UNICODE occupent deux fois plus d’espace, les colonnes NVARCHAR peuvent stocker un maximum de 4 000 caractères.

L’avantage de NVARCHAR par rapport à VARCHAR est qu’il peut stocker des caractères Unicode. Cela le rend pratique pour stocker des jeux de caractères étendus comme ceux utilisés pour des langues telles que le Kanji.,

Les bases de données conçues avant SQL 2008 utilisent généralement VARCHAR; cependant, les bases de données plus modernes ou de nature globale ont tendance à utiliser NVARCHAR.

DATETIME – Date et heure

utilisez le type de données DATETIME pour stocker la date et l’heure. Un exemple de valeur de DATATIME est

1968-10-23 1:45:37.123

Il s’agit de la valeur du 23 octobre 1968 à 1h45. En fait, le temps est plus précis que cela. Le temps est vraiment 45 minutes, 37.123 secondes.

dans de nombreux cas, il vous suffit de stocker la date. Dans ces cas, le composant temps est mis à zéro., Ainsi, le 5 novembre 1972 est

1972-11-05 00:00:00.000

un DATETIME peut stocker des dates du 1er janvier 1753 au 31 décembre 9999. Cela rend le DATETIME bon pour enregistrer des dates dans le monde d’aujourd’hui, mais pas tellement dans William Shakespeare.

comme vous vous familiarisez avec les différentes fonctions intégrées SQL, vous serez en mesure de manipuler les données. Pour vous donner un aperçu, nous utiliserons la fonction année pour compter les employés embauchés chaque année. Lorsqu’une valeur DATETIME est donnée, la fonction YEAR renvoie l’année.,

la requête que nous utiliserons est

l’avantage est que le type DATETIME garantit que les valeurs sont des dates valides. Une fois cela assuré, Nous sommes en mesure d’utiliser une multitude de fonctions pour calculer le nombre de jours entre les dates, le mois d’une date, etc.

Nous allons explorer ces différentes fonctions en détail dans un autre article de blog.

décimal et virgule flottante

utilisez les deux types de données décimales et flottantes pour travailler avec des valeurs décimales telles que 10.3.,

j’ai regroupé DECIMAL et FLOAT dans la même catégorie car ils peuvent tous deux gérer des valeurs avec des points décimaux; cependant, ils le font tous les deux différemment:

Si vous avez besoin de valeurs précises, comme lorsque vous travaillez avec des données financières ou comptables, utilisez DECIMAL. La raison en est que le type de données décimal vous permet de définir le nombre de points décimaux à maintenir.

décimal

les types de données décimales sont définis par la précision et l’échelle. La précision détermine le nombre total de chiffres à stocker; tandis que l’échelle détermine le nombre de chiffres à droite de la virgule décimale.,

un type de données décimal est spécifié comme décimal(précision,échelle).

un type de données décimal ne peut pas contenir plus de 38 chiffres. La précision et l’échelle doit respecter la relation suivante:

0 <= scale <= precision <= 38 digits

Dans la Production.Table de produit, le type de données de la colonne de poids est défini comme décimal (8,2). Le premier chiffre est la précision, le second l’échelle.

le poids est défini pour avoir huit chiffres au total, dont deux à droite de la décimale. Nous allons l’exemple de requête suivante pour illustrer comment ce type de données.,

sélectionnez le poids DISTINCT de la Production.ProductWHERE poids entre 29.00 et 189.00 ORDRE PAR POIDS DESC
/* Answer */SELECT DISTINCT WeightFROM Production.ProductWHERE Weight BETWEEN 29.00 and 189.00ORDER BY Weight DESC

FLOAT

où les types de données décimales sont parfaits pour les nombres exacts, les flottants sont vraiment bons pour les valeurs numériques longues. Bien qu’une valeur décimale puisse avoir un total de 38 chiffres, dans de nombreuses applications d’ingénierie et scientifiques, cela est insuffisant. FLOAT monte au sommet dans les applications scientifiques où des valeurs numériques extrêmes sont rencontrées!

les flotteurs ont une plage de – 1.,79E + 308 à 1.79 e+308. Cela signifie que la plus grande valeur peut être 179 suivie de 306 zéros (grand en effet!).

en raison de la façon dont les données flottantes sont stockées dans l’ordinateur (voir la spécification IEEE 754 floating point), le nombre stocké est une approximation extrêmement proche. Pour de nombreuses applications, c’est assez bon.

en raison du comportement approximatif, évitez d’utiliser les opérateurs<> et = dans la clause WHERE. Cette déclaration a brûlé mai DBA!

WHERE mass = 2.5

leur attente est pointillée lorsque la masse est supposée égale à 2.,5, mais vraiment, sur l’ordinateur, il est stocké comme 2.4999999999999999; par conséquent, pas égal à 2.500000000000000!

c’est la nature des points flottants et des ordinateurs. Vous et moi voyons 2.4999999999999999 et pensons à des fins pratiques, il est 2.5, mais à l’ordinateur, étaient juste un peu. J

BIT – Boolean ou Yes/No values

Il y a des moments où vous avez juste besoin de stocker si quelque chose « est” ou « ne l’est pas. »Par exemple, si un employé est actif. C’est dans ces cas que le type de données BIT prend tout son sens. Ce type de données est l’un des trois états: 1, 0 ou NULL.,

la valeur de 1 signifie vrai et 0 faux.

dans cette requête, nous répertorions tous les titres de postes salariés

sélectionnez un titre de travail DISTINCT parmi HumanResources.EmployeeWHERE SalariedFlag = 1
SELECT DISTINCT JobTitleFROM HumanResources.EmployeeWHERE SalariedFlag = 1

Nous aurions pu également utilisé le « Vrai » au lieu de 1. Voici le même exemple en utilisant « True »

Leave a Comment