MySQL :: MySQL 8.0 Reference Manual :: 13.1.12 CREATE DATABASE Statement

13.1.12 CREATE DATABASE Statement

CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}

CREATE DATABASE skapar en databas med det angivna namnet. För att använda det här uttalandet måste du ha privilegiet CREATE för databasen. CREATE SCHEMA är en synonym till CREATE DATABASE.

Ett fel uppstår om databasen finns och du inte har angett IF NOT EXISTS.

CREATE DATABASE är inte tillåtet i en session som har ett aktivt LOCK TABLES-meddelande.

Varje create_option anger en databasegenskap. Databasegenskaper lagras i datalängden.

  • Alternativet CHARACTER SET anger standardteckenuppsättningen för databasen. Alternativet COLLATE anger standarddatabasens kollationering. Information om namn på teckenuppsättningar och kollationeringar finns i kapitel 10, Teckenuppsättningar, kollationeringar, Unicode.

    Om du vill se de tillgängliga teckenuppsättningarna och kollationerna använder du SHOW CHARACTER SET respektive SHOW COLLATION. Se avsnitt 13.7.7.3, ”SHOW CHARACTER SET Statement”, och avsnitt 13.7.7.4, ”SHOW COLLATION Statement”.

  • Alternativet ENCRYPTION, som infördes i MySQL 8.0.16, definierar standardkrypteringen av databasen, som ärvs av tabeller som skapas i databasen. De tillåtna värdena är 'Y' (kryptering aktiverad) och 'N' (kryptering inaktiverad). Om alternativet ENCRYPTION inte anges definierar värdet på systemvariabeln default_table_encryption standardkrypteringen för databasen. Om systemvariabeln table_encryption_privilege_check är aktiverad krävs privilegiet TABLE_ENCRYPTION_ADMIN för att ange en standardkrypteringsinställning som skiljer sig från inställningen default_table_encryption. Mer information finns i Definiera en krypteringsstandard för scheman och allmänna tabellutrymmen.

En databas i MySQL implementeras som en katalog som innehåller filer som motsvarar tabeller i databasen. Eftersom det inte finns några tabeller i en databas när den först skapas, skapar CREATE DATABASE-angivelsen endast en katalog under MySQL-datakatalogen. Regler för tillåtna databasnamn ges i avsnitt 9.2, ”Schema Object Names”. Om ett databasnamn innehåller specialtecken, innehåller namnet för databaskatalogen kodade versioner av dessa tecken enligt beskrivningen i avsnitt 9.2.4, ”Mapping of Identifiers to File Names” (Mappning av identifierare till filnamn).

Att skapa en databaskatalog genom att manuellt skapa en katalog under datakatalogen (till exempel med mkdir) stöds inte i MySQL 8.0.

När du skapar en databas, låt servern hantera katalogen och filerna i den. Att hantera databaskataloger och filer direkt kan orsaka inkonsekvenser och oväntade resultat.

MySQL har ingen gräns för antalet databaser. Det underliggande filsystemet kan ha en gräns för antalet kataloger.

Du kan också använda programmet mysqladmin för att skapa databaser. Se avsnitt 4.5.2, ”mysqladmin – ett administrationsprogram för MySQL-servern”.

Lämna ett svar

Din e-postadress kommer inte publiceras.