ClickHouse/docs/fr/sql-reference/data-types/fixedstring.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

2.5 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 45 FixedString (N)

Fixedstring

Une chaîne de longueur fixe de N octets (ni caractères ni points de code).

Pour déclarer une colonne de FixedString tapez, utilisez la syntaxe suivante:

<column_name> FixedString(N)

N est un nombre naturel.

Le FixedString type est efficace lorsque les données ont la longueur de précisément N octet. Dans tous les autres cas, il est susceptible de réduire lefficacité.

Exemples de valeurs qui peuvent être stockées efficacement dans FixedString-tapé colonnes:

  • La représentation binaire des adresses IP (FixedString(16) pour IPv6).
  • Language codes (ru_RU, en_US … ).
  • Currency codes (USD, RUB … ).
  • Représentation binaire des hachages (FixedString(16) pour MD5, FixedString(32) pour SHA256).

Pour stocker les valeurs UUID, utilisez UUID type de données.

Lors de linsertion des données, ClickHouse:

  • Complète une chaîne avec des octets null si la chaîne contient moins de N octet.
  • Jette le Too large value for FixedString(N) exception si la chaîne contient plus de N octet.

Lors de la sélection des données, ClickHouse ne supprime pas les octets nuls à la fin de la chaîne. Si vous utilisez le WHERE clause, vous devez ajouter des octets null manuellement pour FixedString valeur. Lexemple suivant illustre lutilisation de l WHERE la clause de FixedString.

Considérons le tableau suivant avec le seul FixedString(2) colonne:

┌─name──┐
│ b     │
└───────┘

Requête SELECT * FROM FixedStringTable WHERE a = 'b' ne renvoie aucune donnée en conséquence. Nous devrions compléter le modèle de filtre avec des octets nuls.

SELECT * FROM FixedStringTable
WHERE a = 'b\0'
┌─a─┐
│ b │
└───┘

Ce comportement diffère de MySQL pour le CHAR type (où les chaînes sont remplies despaces et les espaces sont supprimés pour la sortie).

À noter que la longueur de la FixedString(N) la valeur est constante. Le longueur la fonction renvoie N même si l FixedString(N) la valeur est remplie uniquement avec des octets vide la fonction renvoie 1 dans ce cas.

Article Original