En este tutorial práctico crearemos una tabla aplicando CHARSET utf8 COLLATE utf8_unicode_ci en algunas columnas que lo requiere.
Requisitos:
- XAMPP v3.3.0.
- MariaDB y PHPMyAdmin.
Lo que veremos en este tutorial:
- Consideraciones.
- Validar la versión de MariaDB.
- Aplicando CHARSET utf8 COLLATE utf8_unicode_ci.
- Insertando valores de caracteres especiales.
- Conclusiones y Referencias.
1. Consideraciones.
En MariaDB, el juego de caracteres (CHARSET) predeterminado es el latin1 y la intercalación (COLLATE) predeterminada es latin1_swedish_ci, sin embargo, esto puede variar en algunas distribuciones; lo recomendable es definir el CHARSET y COLLATE al crear nuestra base de datos u otros objetos de la base de datos.
En el caso de MariaDB y MySQL se puede definir en una base de datos, tabla y columna el formato de codificación como CHARSET y un sub formato llamado COLLATE.
2. Validar la versión de MariaDB.
Ejecutamos la setencia SQL para validar la versión de MariaDB:
SELECT @@version;
El COLLATE se encarga de ayudar en la presición vs rendimiento de los carácteres especiales registrados en tablas de la base de datos.
3. Aplicando CHARSET utf8 COLLATE utf8_unicode_ci.
El algortimo utf8_unicode_ci es el más complejo para comparar, esto hace que sea más lento para ordenar y comparar un gran número de campos. Creamos la tabla websitetype_settings con las columnas key, value y url aplicando COLLATE utf8_unicode_ci
CREATE TABLE `websitetype_settings` (
`id` int(11) UNSIGNED NOT NULL,
`key` varchar(255) COLLATE utf8_unicode_ci DEFAULT 'landing',
`value` longtext COLLATE utf8_unicode_ci DEFAULT NULL,
`visible` int(11) UNSIGNED DEFAULT 1,
`id_company` int(11) UNSIGNED DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Indexes for table `websitetype_settings`
--
ALTER TABLE `websitetype_settings`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for table `websitetype_settings`
--
ALTER TABLE `websitetype_settings`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
4. Insertando valores de caracteres especiales.
En la columna `value` insertsmos valores con caracteres especiales como las palabras de prácticos, conviértete y enseñar:
INSERT INTO `websitetype_settings` (`key`, `value`, `url`) VALUES
('website_type', 'landing', 'home'),
('section_one', '<h3>Mejora tus habilidades con <strong>Smart Academy</strong></h3> \r\n<ul class=\"course-menu-li\">\r\n <li class=\"nav-item\"><p>Acceso ilimitado a cursos destacados.</p><p></p></li>\r\n <li class=\"nav-item\"><p>Aprende en cualquier momento y en cualquier lugar.</p><p></p></li>\r\n <li class=\"nav-item\"><p>Amplia tus habilidades con cursos prácticos.</p><p></p></li> \r\n</ul>', 'home'),
('section_two', '<h3>¡Es hora de ampliar tus conocimientos, <strong>comienza ahora!</strong></h3>', 'home'),
('section_three', '<h3>Conviértete en instructor</h3> \r\n<h5>\r\n Conviertate en instructor e imparte tus habilidades y conocimientos. Proporcionamos las herramientas necesarias para enseñar lo que realmente amas.\r\n</h5>', 'home'),
('section_four', '', NULL),
('section_five', '', NULL),
('section_one_active', '1', NULL),
('section_two_active', '1', NULL),
('section_three_active', '1', NULL),
('section_four_active', '0', NULL),
('section_five_active', '0', NULL);
5. Conclusiones y Referencias.
Conclusiones:
Cada columna de tipo "CHARSET", es decir, una columna de tipo CHAR, VARCHAR, TEXT o LONGTEXT tiene un conjunto de caracteres de columna y una intercalación de columnas de las cuales nos permite definir el tipo de algoritmo a aplicar en cada columna. Además, se puede hacer uso de la variable de sistema Character_set_server para cambiar el juego de caracteres predeterminado del servidor. Se puede configurar tanto al inicio como dinámicamente, con el comando SET.
Referencia:
0 Comentarios