Maison  >  Article  >  base de données  >  Quelles sont les différences entre char, varchar, nchar, nvarchar et text ?

Quelles sont les différences entre char, varchar, nchar, nvarchar et text ?

一个新手
一个新手original
2017-10-18 10:00:061533parcourir

La différence entre char, varchar, nchar, nvarchar et text

Ceux avec le préfixe var indiquent l'espace de stockage réel. est de longueur variable, varchar, nvarchar

La longueur dite fixe signifie que la longueur est fixe lorsque la longueur des données d'entrée n'atteint pas la longueur. longueur spécifiée, il remplira automatiquement derrière avec des espaces anglais pour que la longueur atteigne la longueur correspondante Lorsque les caractères que vous entrez sont supérieurs au nombre spécifié, il interceptera la partie excédentaire ; et les données de caractères de longueur variable ne seront pas remplies d'espaces. Une exception est que le texte est également stocké en longueur variable.

2.n représente les caractères Unicode, c'est-à-dire que tous les caractères occupent deux octets, nchar, nvarchar,

Parmi les caractères, les caractères anglais n'ont besoin que d'un octet pour être stockés, mais il existe de nombreux caractères chinois qui nécessitent deux octets pour être stockés. Lorsque les caractères anglais et chinois existent en même temps, il est facile de semer la confusion. Le jeu de caractères est destiné à résoudre le problème des jeux de caractères. Cela est dû à des problèmes d'incompatibilité. Tous les caractères sont représentés par deux octets, c'est-à-dire que les caractères anglais sont également représentés par deux octets.

3. Sur la base des deux points ci-dessus, regardons la capacité sur le terrain

4. Utilisation (préférence personnelle)

a. Si la quantité de données est très importante, la longueur peut être déterminée à 100% et seuls les caractères ansi sont enregistrés, then char

b. Si la longueur peut être déterminée mais qu'il ne s'agit pas nécessairement de caractères ansi, alors utilisez nchar ; les données volumineuses, telles que le contenu de l'article, utilisent nText

d. Autre nvarchar général

Comparaison des fonctionnalités

1. CHAR . CHAR est très pratique pour stocker des données de longueur fixe

L'efficacité de l'indexation sur le champ CHAR est élevée . , comme définir char (10), alors peu importe si les données que vous stockez atteignent 10 octets, elles occuperont 10 octets d'espace. 2. Stocke des données de longueur variable,

, mais l'efficacité du stockage n'est pas aussi élevée que CHAR , si le La valeur possible d'un champ n'est pas de longueur fixe, nous savons seulement qu'elle ne peut pas dépasser 10 caractères, et il est plus rentable de la définir comme VARCHAR(10). La longueur réelle du type VARCHAR est la longueur réelle de sa valeur + 1. Pourquoi "+1" ? Cet octet est utilisé pour enregistrer la longueur réelle utilisée.

D'un point de vue spatial, varchar est approprié, d'un point de vue d'efficacité, char est approprié. La clé est de trouver le point de compromis en fonction. sur la situation réelle.

3. text stocke des données non Unicode de longueur variable, avec une longueur maximale de 2 ^ 31-1 (2 147 483 647) caractères.

4, NCHAR, NVARCHAR, NTEXT. Ces trois types ont un « N » supplémentaire dans leur nom par rapport aux trois précédents. Par rapport à char et varchar, nchar et nvarchar peuvent stocker jusqu'à 4 000 caractères, qu'il s'agisse de caractères anglais ou chinois, tandis que char et varchar peuvent stocker jusqu'à 8 000 caractères anglais et 4 000 caractères chinois. On peut voir que lorsque vous utilisez les types de données nchar et nvarchar, vous n'avez pas à vous soucier de savoir si les caractères saisis sont des caractères anglais ou chinois, ce qui est plus pratique, mais il y a une certaine perte de quantité lors du stockage de l'anglais.

Donc, de manière générale, s'il contient des caractères chinois, utilisez nchar/nvarchar, et s'il contient de l'anglais pur et des chiffres, utilisez char/varchar.

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