rtgx

Znakové sady

Test slovenského triedenia v MySQL

Príkazy na vytvorenie databázy test s jednou tabuľkou user a vloženie testovacieho obsahu tabuľky user. Základným predpokladom správneho triedenia je nastavenie vlastností databázy CHARACTER SET a COLLATE na utf8. Test prebehol na databázach MySQL 4 a 5 s rovnakým výsledkom.

CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_slovak_ci;

CREATE TABLE `user` (
`uid` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR( 40 ) NOT NULL
);

INSERT INTO `user` (`uid`, `name`) VALUES
(0, 'ander'), (0, 'ábel'),
(0, 'cetera'), (0, 'český'),
(0, 'branislav'), (0, 'dulovič'),
(0, 'Ďurko'), (0, 'esmeralda'),
(0, 'érvín'), (0, 'čaptoš'),
(0, 'Šeherezáda'), (0, 'loverman'),
(0, 'šereda'), (0, 'Somrák'),
(0, 'žralok'), (0, 'čistič'),
(0, 'ľubovník'), (0, 'zemepán'),
(0, 'šašek'), (0, 'semering'),
(0, 'čašník');

Výber záznamov a triedenie podľa mena.

SET CHARACTER SET utf8;
SELECT * FROM `user` ORDER BY name;

Výsledok posledného dotazu

2 ábel
1 ander
5 branislav
3 cetera
10 čaptoš
21 čašník
4 český
16 čistič
6 dulovič
7 Ďurko
9 érvín
8 esmeralda
12 loverman
17 ľubovník
20 semering
14 Somrák
19 šašek
11 Šeherezáda
13 šereda
18 zemepán
15 žralok

Test s kódovaním cp1250

Test prebehol na databáze MySQL 5. Uvedený je len príkaz na vytvorenie databázy s príslušným kódovaním, vytvorenie a naplnenie tabuľky je rovnaké ako v teste kódovania utf8.

CREATE DATABASE test_cp1250 CHARACTER SET cp1250 COLLATE cp1250_general_ci;

Výber záznamov a triedenie podľa mena.

SELECT * FROM `user` ORDER BY name;

Výsledok posledného dotazu

2 ábel
1 ander
5 branislav
3 cetera
10 čaptoš
21 čašník
4 český
16 čistič
6 dulovič
7 Ďurko
9 érvín
8 esmeralda
12 loverman
17 ľubovník
20 semering
14 Somrák
19 šašek
11 Šeherezáda
13 šereda
18 zemepán
15 žralok