FirebirdSQL logo

Format hexadécimal pour les entiers

Les constantes de types entiers peuvent être spécifiées au format hexadécimal.

Table 1. Constantes de type entier au format hexadécimal
Nombre de chiffres hexadécimaux Type de données

1-8

INTEGER

9-16

BIGINT

17-32

INT128

L’écriture d’un SMALLINT en représentation hexadécimale n’est pas explicitement prise en charge, mais Firebird convertira de manière transparente un nombre hexadécimal en SMALLINT, si nécessaire, tant qu’il se situe dans la plage valide des valeurs positives et négatives pour un SMALLINT.

L’utilisation et les plages des nombres de notation hexadécimale sont décrites plus en détail au cours de la discussion des constantes numériques dans le chapitre intitulé « Éléments communs du langage ».

Example 1. Utilisation d’entiers spécifiés sous forme hexadécimale
INSERT INTO MYBIGINTS VALUES (
  -236453287458723,
  328832607832,
  22,
  -56786237632476,
  0X6F55A09D42, -- 478177959234
  0X7FFFFFFFFFFFFFFF, -- 9223372036854775807
  0XFFFFFFFFFFFFFFFF, -- -1
  0X80000000, -- -2147483648, INTEGER
  0X080000000, -- 2147483648, BIGINT
  0XFFFFFFFF, -- -1, INTEGER
  0X0FFFFFFFF -- 4294967295, BIGINT
);

L’hexadécimal INTEGER est automatiquement converti au type BIGINT avant d’être inséré dans le tableau. Toutefois, cela se produit après avoir défini une valeur numérique, de sorte que 0x80000000 (8 chiffres) et 0x080000000 (9 chiffres) seront enregistrés dans des formats différents. La valeur 0x80000000 (8 chiffres) sera enregistrée au format INTEGER , et la 0x080000000 (9 chiffres) sous la forme BIGINT.

Types de données personnalisé — domaines

Les domaines dans Firebird implémentent l’outil `Types de données définis par l’utilisateur', qui est largement connu dans de nombreux langages de programmation.Lorsque plusieurs tables d’une base de données contiennent des champs ayant les mêmes caractéristiques ou presque, il est utile de créer un domaine dans lequel décrire un ensemble de propriétés de champ et d’utiliser cet ensemble de propriétés, décrit une fois, dans plusieurs objets de la base de données.Les domaines peuvent être utilisés en plus de la description des champs de table et des vues (VIEW) et lors de la déclaration des paramètres d’entrée et de sortie, ainsi que lors de la déclaration des variables dans le code PSQL.

Attributs du domaine

La définition du domaine contient des attributs obligatoires et facultatifs.Les attributs obligatoires comprennent le type de données.Les attributs facultatifs comprennent :

  • valeur par défaut ;

  • Capacités nulles pour le domaine ;

  • Contrôler les contraintes pour les données du domaine ;

  • Jeu de caractères (pour les types de données en caractères et les champs BLOB) ;

  • ordre de tri (pour les types de données de type caractère).

Example 1. Créer un domaine
CREATE DOMAIN BOOL3 AS SMALLINT
			CHECK (VALUE IS NULL OR VALUE IN (0, 1));
Voir aussi:

Conversion explicite des types de données, qui décrit les différences dans le fonctionnement du mécanisme de conversion des données lorsque l’on spécifie des domaines pour les options TYPE OF et TYPE OF COLUMN.

Remplacer les propriétés du domaine

Lors de la description des tables de base de données, certaines propriétés des colonnes basées sur le domaine peuvent être remplacées. Les possibilités de remplacer les attributs des colonnes basées sur le domaine sont indiquées dans le tableau.

Table 1. Options de remplacement des attributs des colonnes basées sur le domaine
Attribut Annulation ? Notes

type de données

non

Valeur par défaut

Oui

Jeu de caractères du texte

Oui

peut également être utilisé pour réinitialiser la colonnevaleurs par défaut pour la base de données

Ordre de tri du texte

oui

vérifier les conditions CHECK

non

pour ajouter de nouvelles conditions à la vérification, il est possible d’utiliser enles instructions CREATE et ALTER au niveau de la table, avec les instructionsSuggestions de "contrôle".

NOT NULL

none

Dans de nombreux cas, il est préférable de laisser la description du domainela possibilité de NULL et de contrôler sa validitédans les descriptions des champs au niveau de la table.