Qué es la intercalación: Una visión general
La intercalación se aplica a todos los sistemas de gestión de bases de datos y se utiliza para dictar cómo se tratarán los caracteres. Los distintos idiomas suelen utilizar conjuntos de caracteres propios de su lengua nacional. Muchos idiomas tienen caracteres nacionales que deben tenerse en cuenta a la hora de ordenar y comparar valores de caracteres.
Para saber más sobre el cotejo, es útil entender un poco cómo los sistemas operativos y las aplicaciones, como los sistemas de gestión de bases de datos, tratan los juegos de caracteres nacionales y cómo se ordenan. Una de las primeras preguntas que te hacen al instalar un nuevo sistema operativo es en qué país estás y qué dialecto del idioma nacional utilizas. Esto asigna la disposición del teclado, incluidos los caracteres del idioma nacional, como los símbolos de moneda, a la cadena de bits correcta que entiende el sistema operativo. Los sistemas operativos y los sistemas de bases de datos se refieren a estos conjuntos de caracteres como páginas de código, que suelen ser propietarias pero a menudo utilizan estándares como Unicode. En los ejemplos verás referencias a conjuntos de caracteres UTF8 y latinos. Una vez establecido el conjunto de caracteres que utilizará el sistema operativo subyacente y los sistemas de gestión de bases de datos, podemos ocuparnos de los órdenes de clasificación, que pueden variar según el conjunto de caracteres.
Definición de la intercalación
Una intercalación especifica los patrones de bits que representan cada carácter en un jeu de données y determina las reglas utilizadas para ordenar y comparar datos. Los atributos de cotejo pueden influir en los resultados de las consultas porque determinan cómo funcionan las operaciones de ordenación y comparación. Las cláusulas de una sentencia SQL SELECT, como JOINS y ORDER BY, comparan datos de texto de tipos de datos como CHAR, VARCHAR, NCHAR y NVARCHAR. Los códigos y conjuntos de caracteres especificados por la intercalación determinan qué caracteres se pueden mostrar.
La configuración de la intercalación establece el valor predeterminado para todas las bases de datos del sistema y las bases de datos de usuario creadas por esa instancia, incluidas las tablas temporales.
Ejemplos de opciones de intercalación
Cuando se instala una base de datos SQL Server, la intercalación predeterminada viene dictada por la configuración regional del sistema operativo. Por ejemplo, para el inglés de EE.UU. (en-US), la configuración regional es SQL_Latin1_General_CP1_CI_AS. Puede anular la configuración predeterminada del sistema operativo en una sentencia CREATE DATABASE utilizando la cláusula COLLATE. Una vez creada la base de datos, se puede utilizar la sentencia ALTER para realizar cambios en la definición de la base de datos.
Las bases de datos de usuarios existentes no se migran a la nueva configuración, por lo que debe utilizar un proceso engorroso de exportación de todas las bases de datos de usuarios, configuración de la intercalación maestra y, a continuación, importación de las bases de datos de usuarios.
A continuación se muestra un ejemplo de modificación de la configuración de una columna existente:
ALTER TABLE dbo.UserTable ALTER COLUMN DepartmentName VARCHAR(80) COLLATE Latin1_General_100_CI_AI_SC_UTF8;
SQL Server admite varias opciones a la hora de especificar una intercalación, incluidas las mayúsculas y minúsculas y la sensibilidad.
Niveles de intercalación
SQL Server le permite especificar los siguientes niveles:
- A nivel de servidor: establece una intercalación por defecto para todas las bases de datos creadas en ese servidor.
- A nivel de base de datos: permite establecer una intercalación sólo para esa base de datos mediante los comandos CREATE o ALTER con la cláusula COLLATE.
- Nivel de columna - Puede utilizar la sentencia ALTER para especificar el nivel de columna
- Nivel de expresión: permite definir la intercalación que se utilizará en las cláusulas ORDER BY o SORT BY.
Ejemplos de bases de datos
Hemos tratado SQL Server con cierto detalle. Para tener una perspectiva más amplia, podemos examinar otras bases de datos:
PostgreSQL - Permite especificar el orden de clasificación y el comportamiento de clasificación de caracteres de los datos por columna o por operación. A diferencia de SQL Server, las colaciones a nivel de base de datos no se pueden cambiar después de la creación. Sin embargo, puede anular el valor predeterminado utilizando la cláusula COLLATE en la sentencia SQL como en el ejemplo siguiente:
SELECT a < ('Joe' COLLATE "fr_FR") FROM MyTable;
MySQL - Las intercalaciones se establecen en el momento de crear la base de datos utilizando la siguiente sintaxis:
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Tras la creación, el comando ALTER DATABASE permite cambiar la intercalación de una base de datos determinada.
Del mismo modo, puede utilizar la cláusula COLLATE para CREAR o ALTERAR una tabla.
Visite nuestro sitio web para obtener más información sobre los productos y soluciones de bases de datos Actian.