Ticker

6/recent/ticker-posts

MariaDB: Aplicando CHARSET utf8 COLLATE utf8_unicode_ci

En este tutorial práctico crearemos una tabla aplicando CHARSET utf8 COLLATE utf8_unicode_ci en algunas columnas que lo requiere.


Requisitos:

  1. XAMPP v3.3.0.
  2. MariaDB y PHPMyAdmin.

Lo que veremos en este tutorial:

  1. Consideraciones.
  2. Validar la versión de MariaDB.
  3. Aplicando CHARSET utf8 COLLATE utf8_unicode_ci.
  4. Insertando valores de caracteres especiales.
  5. 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 keyvalue 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:


Publicar un comentario

0 Comentarios