Colonnes de caractères

Pour les types CHAR, VARCHAR et BLOB avec le sous-type TEXT, vous pouvez spécifier le jeu de caractères dans la phrase CHARACTER SET. Si aucun jeu de caractères n'est spécifié, la valeur par défaut est le jeu de caractères qui a été spécifié lors de la création de la base de données. Si aucun jeu de caractères n'a été spécifié lors de la création de la base de données, le jeu de caractères par défaut est NONE. Dans ce cas, les données sont stockées et récupérées telles qu'elles ont été soumises. Il est possible de charger des données dans une colonne dans n'importe quel encodage, mais il n'est pas possible de charger ces données dans une colonne avec un encodage différent. La translittération entre les codages source et destination n'est pas effectuée, ce qui peut entraîner des erreurs.

La clause facultative COLLATE vous permet de spécifier un ordre de tri pour les types de données de type chaîne (sauf pour BLOB). Si aucun ordre de tri n'est spécifié, l'ordre de tri par défaut pour le jeu de tri spécifié est pris en charge.

Restriction NOT NULL

Par défaut, la colonne peut accepter la valeur NULL.

La clause facultative NOT NULL indique que la colonne ne peut pas être affectée d'une valeur NULL.

Valeur par défaut

La clause facultative DEFAULT vous permet de spécifier une valeur par défaut pour une colonne de table. Cette valeur sera placée dans la colonne de la table lors de l'exécution de l'instruction INSERT si aucune valeur n'est spécifiée pour cette colonne. La valeur par défaut peut être un littéral compatible avec le type, une valeur NULL inconnue, ou une variable contextuelle dont le type est compatible avec le type de la colonne. Si aucune valeur par défaut n'est explicitement définie, une valeur vide, NULL, est supposée. L'utilisation d'expressions dans la valeur par défaut n'est pas autorisée.

Colonnes basées sur un domaine

Pour définir une colonne, on peut utiliser le domaine décrit précédemment. Si la définition de la colonne est basée sur un domaine, elle peut inclure une nouvelle valeur par défaut, des contraintes CHECK supplémentaires, une suggestion COLLATE qui remplacent les valeurs spécifiées dans la définition du domaine. Une telle définition de colonne peut inclure des contraintes de colonne supplémentaires telles que NOT NULL si le domaine n'en contient pas déjà une.

Important

Notez que si NOT NULL a été spécifié dans la définition du domaine, il n'est pas possible de définir l'admissibilité de NULL au niveau de la colonne. Si vous voulez pouvoir définir des colonnes autorisant la pseudo-définition NULL et ne l'autorisant pas, c'est une bonne pratique de créer un domaine autorisant NULL et de spécifier une contrainte NOT NULL sur les colonnes de la table où cela est nécessaire.