sql >> Databáze >  >> RDS >> Mysql

Rozdíl mezi databází, tabulkou, řazením sloupců

Znakové sady a kolace MySQL lze interpretovat jako seznam prioritních položek shora dolů. Nejvyšší má nejnižší prioritu a nejnižší má nejvyšší prioritu.

Pořadí priority, přičemž nejvyšší má nejnižší prioritu:

  • Řazení na serveru
  • Řazení podle konkrétního připojení
  • Řazení databáze
  • Řazení tabulek
  • Řazení sloupců
  • Řazení dotazů (pomocí CAST nebo CONVERT )

serverové řazení je nastaven serverem, který je nastaven buď uvnitř my.cnf nebo když byl server vytvořen ze zdrojového kódu. Ve výchozím nastavení to bude obvykle latin1 nebo utf8 , v závislosti na vaší platformě.

Řazení specifické pro připojení je nastaveno klientem pomocí dotazu jako SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'; . Většina klientů nenastavuje řazení specifické pro připojení, takže server použije své vlastní výchozí nastavení, jak je vysvětleno výše.

Řazení databáze se nastavuje při vytváření databáze nebo ručně pozdější aktualizací. Pokud žádný neurčíte, použije se další řazení vyšší úrovně, což by bylo řazení specifické pro připojení nebo server.

Řazení tabulek je stejné jako řazení databáze, kromě toho, že pokud ponecháte prázdné, použije databázi jako svou výchozí, poté specifickou pro připojení a nakonec porovnání serveru.

Řazení sloupců používá řazení tabulky jako své výchozí nastavení, a pokud neexistuje žádná sada řazení, bude následovat řetězec, aby nalezl řazení k použití, a zastaví se na serveru, pokud nebyly nastaveny všechny ostatní.

Řazení dotazů je specifikováno v dotazu pomocí CAST nebo CONVERT , ale jinak použije další dostupné řazení v řetězci. Neexistuje způsob, jak to nastavit, pokud nepoužijete funkci.

Podívejte se také na manuálovou stránku Podpora znakové sady .



  1. Jak nakonfigurovat zvýraznění syntaxe v SQLcl

  2. Vizualizace dat v Microsoft Power BI

  3. Existuje seznam nepovolených znaků pro názvy sloupců tabulky mysql?

  4. Vytvořte víceúrovňový JSON s PHP a MySQL