MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Ustaw zestaw znaków i sortowanie tabeli w MariaDB

Zestaw znaków i sortowanie można określić na różnych poziomach w MariaDB. Możesz określić je na poziomie połączenia, serwera, bazy danych, tabeli, a nawet kolumny.

Możesz również określić sortowanie w swoich zapytaniach, aby zastąpiło ono wszelkie sortowanie, które zostało wcześniej określone na wyżej wymienionych poziomach.

Aby ustawić zestaw znaków i sortowanie na poziomie tabeli, użyj CREATE TABLE oświadczenie lub ALTER TABLE oświadczenie (w zależności od tego, czy tworzysz tabelę, czy ją modyfikujesz).

Podczas tworzenia tabeli

Oto przykład ustawienia sortowania i zestawu znaków podczas tworzenia tabeli:

CREATE TABLE Products ( 
    ProductId CHAR(10), 
    ProductName VARCHAR(255) NOT NULL, 
    PRIMARY KEY (ProductId)) 
    CHARACTER SET latin1 
    COLLATE latin1_general_ci;

To tworzy tabelę o nazwie Products z latin1 zestaw znaków i zestawienie latin1_general_ci .

Zmień istniejącą tabelę

Oto przykład zmiany sortowania i zestawu znaków w istniejącej tabeli:

ALTER TABLE Products 
CONVERT TO CHARACTER SET utf8 COLLATE utf8_spanish_ci;

Używa teraz nowego sortowania i zestawu znaków.

Możliwe jest również pominięcie CONVERT TO część:

ALTER TABLE Products 
CHARACTER SET utf8 
COLLATE utf8_spanish_ci;

Układ musi być prawidłowy dla zestawu znaków

Podczas ustawiania zarówno sortowania, jak i zestawu znaków, należy upewnić się, że sortowanie jest prawidłowe dla wybranego zestawu znaków i odwrotnie. Jeśli nie, zwracany jest błąd.

Oto przykład określenia przy użyciu nieprawidłowego sortowania dla określonego zestawu znaków:

ALTER TABLE Products 
CHARACTER SET latin1 
COLLATE utf8_spanish_ci;

Wynik:

ERROR 1253 (42000): COLLATION 'utf8_spanish_ci' is not valid for CHARACTER SET 'latin1'

Mówi nam, że wybrane przez nas sortowanie nie jest prawidłowe dla wybranego zestawu znaków.

Zobacz Pełna lista sortowań obsługiwanych przez MariaDB lub Pełna lista zestawów znaków obsługiwanych przez MariaDB, aby uzyskać listę pasujących sortowań i zestawów znaków.

Określanie tylko sortowania lub zestawu znaków

Można określić tylko sortowanie lub tylko zestaw znaków (lub nie):

  • Jeśli podano tylko zestaw znaków, zostanie użyte domyślne sortowanie dla tego zestawu znaków.
  • Jeśli podano tylko sortowanie, zostanie użyty powiązany zestaw znaków.
  • Jeśli nie podano sortowania ani zestawu znaków, używana jest wartość domyślna tabeli.

Konwersja do zestawu znaków, który wymaga więcej bajtów

Dla VARCHAR lub TEXT kolumny, CONVERT TO CHARACTER SET zmienia typ danych, jeśli jest to wymagane, aby zapewnić, że nowa kolumna jest wystarczająco długa, aby pomieścić tyle znaków, co oryginalna kolumna.

Na przykład ascii TEXT kolumna wymaga jednego bajtu na znak, więc kolumna może zawierać do 65 535 znaków. Jeśli kolumna jest konwertowana na utf8, do każdego znaku mogą być wymagane maksymalnie 3 bajty, więc kolumna zostanie skonwertowana na MEDIUMTEXT (który ma maksymalną długość 16 777 215), dzięki czemu będzie w stanie pomieścić taką samą liczbę znaków.

Jeśli nie chcesz, aby takie zmiany typu danych miały miejsce, użyj MODIFY zamiast tego na poszczególnych kolumnach.

Na przykład:

ALTER TABLE Products 
MODIFY ProductName VARCHAR(255) 
CHARACTER SET utf8; 

Konwertowanie do formatu binarnego

CONVERT TO CHARACTER SET binary przekonwertuje CHAR , VARCHAR i TEXT kolumny do BINARY , VARBINARY i BLOB odpowiednio.

Gdy to zostanie zrobione, takie kolumny nie będą już miały zestawu znaków. Ponadto nie będą już miały na nie wpływu przyszłe CONVERT TO CHARACTER SET oświadczenia.

Sprawdzanie sortowania i zestawów znaków w MariaDB

Istnieje wiele sposobów sprawdzania sortowania i zestawów znaków w MariaDB, w zależności od sprawdzanego poziomu (serwer, baza danych, tabela, kolumna, połączenie itp.). Zobacz Pokaż sortowanie w MariaDB, aby zapoznać się z przykładami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak OCTET_LENGTH() działa w MariaDB

  2. Jak poprawić wydajność replikacji w klastrze MySQL lub MariaDB Galera

  3. 2 sposoby na uzyskanie skróconej nazwy miesiąca z daty w MariaDB

  4. 3 sposoby na uzyskanie sortowań dostępnych w MariaDB

  5. Ustaw zestaw znaków i sortowanie tabeli w MariaDB