13.1.12 CREATE DATABASE Příkaz
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}
CREATE DATABASE
vytvoří databázi s daným názvem. K použití tohoto příkazu potřebujete pro danou databázi oprávnění CREATE
. CREATE SCHEMA
je synonymem pro CREATE DATABASE
.
K chybě dojde, pokud databáze existuje a nezadali jste příkaz IF NOT EXISTS
.
CREATE DATABASE
není povoleno v rámci relace, která má aktivní příkaz LOCK TABLES
.
Každý create_option
určuje charakteristiku databáze. Charakteristiky databáze jsou uloženy v datovém slovníku.
-
Volba
CHARACTER SET
určuje výchozí znakovou sadu databáze. VolbaCOLLATE
určuje výchozí znakovou sadu databáze (collation). Informace o názvech znakových sad a kolace naleznete v kapitole 10, Znakové sady, kolace, Unicode.Chcete-li zobrazit dostupné znakové sady a koliace, použijte příkazy
SHOW CHARACTER SET
, respektiveSHOW COLLATION
. Viz kapitola 13.7.7.3, „Příkaz SHOW CHARACTER SET“, a kapitola 13.7.7.4, „Příkaz SHOW COLLATION“. -
Volba
ENCRYPTION
, zavedená v MySQL 8.0.16, definuje výchozí šifrování databáze, které dědí tabulky vytvořené v databázi. Povolené hodnoty jsou'Y'
(šifrování povoleno) a'N'
(šifrování zakázáno). Není-li možnostENCRYPTION
zadána, určuje výchozí šifrování databáze hodnota systémové proměnnédefault_table_encryption
. Pokud je systémová proměnnátable_encryption_privilege_check
povolena, je pro zadání výchozího nastavení šifrování, které se liší od nastavenídefault_table_encryption
, vyžadováno oprávněníTABLE_ENCRYPTION_ADMIN
. Další informace naleznete v části Definování výchozího šifrování pro schémata a obecné tabulkové prostory.
Databáze v MySQL je implementována jako adresář obsahující soubory, které odpovídají tabulkám v databázi. Protože při počátečním vytvoření databáze v ní nejsou žádné tabulky, příkaz CREATE DATABASE
vytvoří pouze adresář pod datovým adresářem MySQL. Pravidla pro přípustné názvy databází jsou uvedena v části 9.2 „Názvy objektů schématu“. Pokud název databáze obsahuje speciální znaky, název adresáře databáze obsahuje kódované verze těchto znaků, jak je popsáno v části 9.2.4, „Mapování identifikátorů na názvy souborů“.
Vytvoření adresáře databáze ručním vytvořením adresáře pod datovým adresářem (například pomocí mkdir) není v MySQL 8.0 podporováno.
Při vytváření databáze nechte adresář a soubory v něm spravovat server. Přímá manipulace s adresáři a soubory databáze může způsobit nekonzistence a neočekávané výsledky.
MySQL nemá žádné omezení počtu databází. Podkladový souborový systém může mít omezení počtu adresářů.
K vytváření databází můžete také použít program mysqladmin. Viz část 4.5.2, „mysqladmin – program pro správu serveru MySQL“.