Capítulo 10. Soporte de conjuntos de caracteres

MySQL 5.0

Capítulo 10. Soporte de conjuntos de caracteres

Tabla de contenidos

10.1. Conjuntos de caracteres y colaciones en general
10.2. Conjuntos de caracteres y colaciones en MySQL
10.3. Determinar el conjunto de caracteres y la colación por defecto
10.3.1. Conjunto de caracteres y colación del servidor
10.3.2. Conjuntos de caracteres y colaciones de la base de datos
10.3.3. Conjunto de caracteres y colación de tabla
10.3.4. Conjunto de caracteres y colación de columnas
10.3.5. Ejemplos de asignación de conjunto de caracteres y colación
10.3.6. Conjunto de caracteres y colación de la conexión
10.3.7. Conjunto de caracteres y colación de columnas “carácter
10.3.8. Usar en sentencias SQL
10.3.9. Precedencia de la cláusula
10.3.10. Operador
10.3.11. Casos especiales en los que determinar la colación es complicado
10.3.12. A cada colación un conjunto de caracteres correcto
10.3.13. Un ejemplo del efecto de una colación
10.4. Efectos del soporte de conjuntos de caracteres
10.4.1. Cadenas de caracteres de resultado
10.4.2.
10.4.3.
10.4.4. Sentencias
10.5. Soporte Unicode
10.6. UTF8 para metadatos
10.7. Compatibilidad con otros SGBDs (Sistemas gestores de bases de datos)
10.8. Formato del nuevo fichero de conjunto de caracateres
10.9. Conjunto de caracteres nacional
10.10. Conjuntos de caracteres y colaciones que soporta MySQL
10.10.1. Conjuntos de caracteres Unicode
10.10.2. Conjuntos de caracteres de Europa occidental
10.10.3. Conjuntos de caracteres de Europa central
10.10.4. Conjuntos de caracteres del sur de Europa y de Oriente Medio
10.10.5. Conjuntos de caracteres bálticos
10.10.6. Conjuntos de caracteres cirílicos
10.10.7. Conjuntos de caracteres asiáticos

Este capítulo trata los siguientes temas:

  • Qué son los conjuntos de caracteres y colaciones.

  • El sistema por defecto de múltiples niveles

  • Sintaxis para especificar el conjunto de caracteres y colaciones.

  • Funciones y operaciones relacionadas.

  • Soporte Unicode

  • El significado de cada conjunto de caracteres individual y de cada colación

Los motores de almacenamiento , , e soportan el conjunto de caracteres.

10.1. Conjuntos de caracteres y colaciones en general

Un conjunto de caracteres es un conjunto de símbolos y codificaciones. Una colación es un conjunto de reglas para comparar caracteres en un conjunto de caracteres. Vamos a dejar clara la distinción con un ejemplo de un conjunto de caracteres imaginario.

Supongamos que tenemos un alfabeto con cuatro letras: '', '', '', ''. Damos a cada letra un número: '' = 0, '' = 1, '' = 2, '' = 3. La letra '' es un símbolo, el número 0 es la codificación para '', y la combinación de las cuatro letras y sus codificaciones es un conjunto de caracteres.

Suponga que queremos comparar dos cadenas de caracteres, '' y ''. La forma más fácil de hacerlo es mirar las codificaciones: 0 para '' y 1 para ''. Ya que 0 es menor a 1, decimos que '' es menor que ''. Lo que acabamos de hacer es aplicar una colación a un conjunto de caracteres. La colación es un conjunto de reglas (sólo una en este caso): “compara las codificaciones”. LLamamos a la más sencilla de todas las colaciones una colación binaria.

Pero, ¿qué pasa si queremos decir que las letras en mayúsculas y minúsculas son equivalentes? Entonces tendríamos como mínimo dos reglas: (1) tratar las letras minúsuclas '' y '' como equivalentes a '' y ''; (2) luego comparar las codificaciones. Llamamos a esto una colación no sensible a mayúsuculas y minúsculas (case-insensitive). Es un poco más compleja que una colación binaria.

En el mundo real, la mayoría de conjuntos de caracteres tienen varios caracteres: no sólo '' y '' sino alfabetos completos, a veces varios alfabetos o sistemas de escritura orientales con miles de caracteres, junto con muchos símbolos especiales y signos de puntuación. También en el mundo real, la mayoría de colaciones tienen muchas reglas: no sólo distinción entre mayúsculas y minúsculas, sino también sensibilidad a tildes (una “tilde” es una marca añadida a un carácter como en alemán '') y mapeos de múltiples caracteres (tales com la regla que '' = '' en una de las dos colaciones alemanas).

MySQL 5.0 puede hacer lo siguiente:

  • Guardar cadenas de caracteres usando una variedad de conjuntos de caracteres

  • Comparar cadenas de caracteres usando una variedad de colaciones

  • Mezclar cadenas de caracteres con distintos conjuntos de caracteres o colaciones en el mismo servidor, la misma base de datos, o incluso la misma tabla

  • Permitir la especificación de un conjunto de caracteres y una colación en cualquier nivel

En este aspecto, no sólo MySQL 5.0 es mucho más flexible que versiones anteriores de MySQL, sino mejor que otros SGBDs. Sin embargo, para usar estas características de forma correcta, necesita saber qué conjuntos de caracteres y colaciones están disponibles, cómo cambiar los valores por defecto, y cómo afectan al comportamiento de operadores de cadenas de caracteres y funciones.