Maison >base de données >tutoriel mysql >Pourquoi j'ai revisité les bases de MS SQL Server : une plongée approfondie dans les types de données chaîne

Pourquoi j'ai revisité les bases de MS SQL Server : une plongée approfondie dans les types de données chaîne

WBOY
WBOYoriginal
2024-08-30 06:40:35579parcourir

Aujourd'hui, lorsque j'ai évoqué les relations publiques avec mon manager (c'était concernant la procédure du magasin), mon manager m'a posé quelques questions à ce sujet.

Par exemple, Pourquoi déclarez-vous le type de données de la chaîne comme varchar(n) au lieu de nvarchar(n) et d'autres questions basées sur des scénarios ?

Vous avez peut-être également été confronté à une situation similaire avec des personnes âgées ou avec des enseignants au collège.

Bien que je lui ai donné des réponses, ce débat m'a posé des questions sur mes fondamentaux.

Et j'ai décidé de réviser dès le début.

En révisant, j'ai remarqué quelques points, que j'ai pensé partager avec vous tous, c'est pourquoi j'écris cet article.

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

Commençons par le début.

Lorsque nous créons une base de données, 2 fichiers sont générés en arrière-plan.

  1. Fichier de données : Il porte une extension (.mdf) et est appelé fichier de données principal.
  2. Fichier journal : Il a une extension (.ldf) et est connu sous le nom de fichier journal des transactions.

Bien que nous puissions configurer le nombre de fichiers à générer. Et si on configure plus de 2 fichiers il y a la 3ème catégorie qui est :

  • Fichiers définis par l'utilisateur : et ceux dits fichiers de données secondaires ayant l'extension (.ndf)

Chaque fois que nous effectuons une transaction DB, elle est d'abord stockée dans le fichier journal et une fois la transaction terminée, elle est mise à jour dans le fichier de données primaire.

La taille par défaut et la plus basse de chaque fichier est de 8 Mo et il n'y a pas de limite maximale. Et pour la base de données, selon Microsoft, une base de données peut atteindre 524 Po.

Requête Sélectionner ou Imprimer

Si vous avez utilisé la requête « sélectionner », vous avez peut-être également entendu parler de la requête « Imprimer ».

Comprenons quand utiliser lequel.

Fondamentalement, la requête "select" renvoie les données du tableau au format grille tandis que la requête "Print" renvoie les données sous forme de texte.

Ainsi, chaque fois que nous devons effectuer une opération sur les données d'une table, nous utilisons la requête "select" et principalement pour imprimer des journaux ou des erreurs, nous utilisons la requête "print".

Maintenant, discutons de la question d'entretien la plus préférée.

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

Char contre Varchar contre Nvarchar ?

Caractère :

Char stocke max 8 000 caractères et contient 1 octet par espace de caractère.

  • Si nous ne précisons pas la taille, par défaut SQL lui attribue 1 octet et ne contient qu'un seul caractère.

  • Si nous donnons plus d'entrées que la taille définie, les données sont automatiquement tronquées.

  • Char suit l'allocation de mémoire statique, donc si nous allouons une taille de 20 octets et stockons 10 caractères, SQL alloue toujours tout le stockage de 20 octets et les 10 octets restants seront considérés comme un perte d'espace.

Varchar :

  • Varchar peut stocker max 2 Go de données et contenir 1 octet par espace de caractère. Bien qu'il stocke jusqu'à 8 000 octets de données dans la table, tout ce qui dépasse est stocké dans le fichier texte.

  • Vous avez peut-être remarqué sa limite à 8 000 octets dans plusieurs articles.

  • Pour déclarer une colonne pour stocker 2 Go de données, nous pouvons utiliser varchar(max).

  • Varchar suit l'allocation dynamique de mémoire. Ainsi, si nous allouons une taille de 20 octets et stockons 10 caractères, SQL allouera uniquement 10 octets de stockage et les 10 octets restants seront enregistrés.

Nvarchar :

  • Nvarchar suit les mêmes propriétés que varchar, la seule différence est qu'il utilise 2 octets pour stocker un caractère.

  • car il suit les données standard Unicode, pour prendre en charge plusieurs langues.
    Et char, varchar suit les données standard ASCCI.

Il existe un autre type de données appelé Texte, mais il est obsolète, vous pouvez donc l'ignorer.

Il y a un article que j’ai trouvé très utile lors de mes recherches. Il contient des informations détaillées sur tous les types de données.

Vous pouvez le parcourir pour plus d'informations.

Si vous pensez que j'ai raté quelque chose ou que j'ai besoin de mettre à jour, n'hésitez pas à commenter. Cela m'aidera ainsi que notre communauté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn