Qu'est-ce que la collation ? Une vue d'ensemble
La collation s'applique à tous les systèmes de gestion de base de données et sert à déterminer le traitement des caractères. Les différentes langues utilisent souvent des jeux de caractères propres à leur langue nationale. De nombreuses langues ont des caractères nationaux qui doivent être pris en compte lors du tri et de la comparaison des valeurs de caractères.
Pour en savoir plus sur la collation, il est utile de comprendre un peu comment les systèmes d'exploitation et les applications telles que les systèmes de gestion de base de données traitent les jeux de caractères nationaux et comment ils sont triés. L'une des premières questions posées lors de l'installation d'un nouveau système d'exploitation est de savoir dans quel pays vous vous trouvez et quel dialecte de la langue nationale vous utilisez. Cela permet d'établir une correspondance entre la disposition de votre clavier, y compris les caractères nationaux tels que les symboles monétaires sur votre clavier, et la chaîne de bits correcte que le système d'exploitation comprend. Les systèmes d'exploitation et les systèmes de base de données font référence à ces ensembles de caractères en tant que pages de code, qui sont généralement propriétaires, mais qui utilisent souvent des normes telles que Unicode. Vous verrez dans les exemples des références aux jeux de caractères UTF8 et latins. Une fois que nous avons établi le jeu de caractères à utiliser par le système d'exploitation sous-jacent et les systèmes de gestion de base de données, nous pouvons nous préoccuper des ordres de tri, qui peuvent varier selon le jeu de caractères.
Définition de la collation
Une collation spécifie les modèles de bits qui représentent chaque caractère dans un jeu de données et détermine les règles utilisées pour trier et comparer les données. Les attributs de collation peuvent avoir un impact sur les résultats de la requête car ils régissent le fonctionnement des opérations de tri et de comparaison. Les clauses d'une instruction SQL SELECT, telles que JOINS et ORDER BY, comparent des données textuelles de types CHAR, VARCHAR, NCHAR et NVARCHAR. Les pages de code et les jeux de caractères spécifiés par la collation déterminent les caractères qui peuvent être affichés.
Les paramètres de regroupement définissent la valeur par défaut pour toutes les bases de données système et les bases de données utilisateur créées par cette instance, y compris les tables temporaires.
Exemples d'options de collationnement
Lorsque vous installez une base de données SQL Server, la collation par défaut est dictée par les paramètres régionaux du système d'exploitation. Par exemple, pour l'anglais US (en-US), la locale est SQL_Latin1_General_CP1_CI_AS. Vous pouvez remplacer la valeur par défaut du système d'exploitation dans une instruction CREATE DATABASE à l'aide de la clause COLLATE. Si la base de données est créée, l'instruction ALTER peut être utilisée pour apporter des modifications à la définition de la base de données.
Les bases de données utilisateur existantes ne sont pas migrées vers la nouvelle configuration. Vous devez donc recourir à un processus fastidieux d'exportation de toutes les bases de données utilisateur , de définition de la collation principale, puis d'importation des bases de données utilisateur .
Vous trouverez ci-dessous un exemple de modification des paramètres d'une colonne existante :
ALTER TABLE dbo.UserTable ALTER COLUMN DepartmentName VARCHAR(80) COLLATE Latin1_General_100_CI_AI_SC_UTF8 ;
SQL Server prend en charge plusieurs options lors de la spécification d'une collation, y compris la casse et la sensibilité.
Niveaux de collationnement
SQL Server vous permet de spécifier les niveaux suivants :
- Au niveau du serveur - Définit une collation par défaut pour toutes les bases de données créées sur ce serveur.
- Au niveau de la base de données - Cela vous permet de définir une collation pour cette seule base de données en utilisant les commandes CREATE ou ALTER avec la clause COLLATE.
- Niveau colonne - Vous pouvez utiliser l'instruction ALTER pour spécifier le niveau colonne.
- Niveau de l'expression - Permet de définir la collation à utiliser dans une clause ORDER BY ou SORT BY.
Exemples de bases de données
Nous avons couvert le serveur SQL de manière assez détaillée. Pour obtenir une perspective plus large, nous pouvons examiner d'autres bases de données :
PostgreSQL - Permet de spécifier l'ordre de tri et le comportement de classification des caractères des données par colonne ou par opération. Contrairement à SQL Server, les collations au niveau de la base de données ne peuvent pas être modifiées après la création. Toutefois, vous pouvez remplacer la valeur par défaut en utilisant la clause COLLATE dans l'instruction SQL, comme dans l'exemple ci-dessous :
SELECT a < ('Joe' COLLATE "fr_FR") FROM MyTable;
MySQL - Les collations sont définies lors de la création de la base de données à l'aide de la syntaxe suivante :
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
Après la création, la commande ALTER DATABASE vous permet de modifier la collation pour une base de données donnée.
De même, vous pouvez utiliser la clause COLLATE pour CREER ou ALTER une table.
Visitez notre site web pour en savoir plus sur les produits et solutions de base de données Actian.