I MariaDB bruges kom­man­do­en CREATE TABLE til at oprette nye tabeller. For at sikre, at hver tabel er unik i databasen, kan op­tio­ner­ne OR REPLACE og IF NOT EXISTS bruges til at undgå dup­li­ke­ring og fejl­med­del­el­ser.

Hvad er CREATE TABLE for MariaDB?

CREATE TABLE i MariaDB bruges til at oprette en ny tabel, der senere kan udfyldes med data. Som et re­la­tio­nelt da­ta­ba­sesty­rings­sy­stem (DBMS) bruger MariaDB disse tabeller som grundlag for alle lag­rings­o­pe­ra­tio­ner. Under op­ret­tel­sen af tabellen defineres de enkelte kolonner, og da­ta­ty­per­ne for hver kolonne spe­ci­fi­ce­res. Tabeller er unikke inden for en ny­op­ret­tet database – MariaDB CREATE DATABASE – så hvis der allerede findes en tabel med samme navn, genereres der en fejl­med­del­el­se. I de kommende afsnit beskriver vi, hvordan du bruger kom­man­do­en CREATE TABLE i MariaDB, og gennemgår de til­gæn­ge­li­ge mu­lig­he­der, du kan bruge.

Syntaks og drifts­form

Den generelle syntaks for CREATE TABLE i MariaDB følger altid dette princip:

CREATE TABLE Name_of_table(
	Name_of_first_column Data_type_of_first_column,
	Name_of_second_column Data_type_of_second_column
	…
);
sql

For at gøre dette skal du først oprette en ny tabel og give den sit eget navn i stedet for plads­hol­de­ren ‘Navn_på_tabel’. Alle ASCII-kodetegn er tilladt. Derefter skal de enkelte kolonner spe­ci­fi­ce­res. Hver af disse kolonner får sit eget navn og datatype, der kan gemmes i denne kolonne. Alle kolonner adskilles fra hinanden med kommaer.

OR REPLACE og IF NOT EXISTS

Da tabeller skal være unikke, vil du modtage en fejl­med­del­el­se, hvis der allerede findes en tabel med samme navn. For at undgå dette problem har du to mu­lig­he­der: Mulighed OR REPLACE kon­trol­le­rer, om der allerede findes en tabel med samme navn i databasen. Hvis dette er tilfældet, erstattes den gamle tabel med den nye. Ellers oprettes den nye tabel blot. Syntaksen for denne sætning ser således ud:

CREATE OR REPLACE TABLE Name_of_table(
	Name_of_first_column Data_type_of_first_column,
	Name_of_second_column Data_type_of_second_column,
	…
);
sql

Bemærk dog, at den gamle tabel over­skri­ves, og dens indhold går tabt. Indstil­lin­gen fungerer som en kort form af denne kode:

DROP TABLE IF EXISTS Name_of_table;
CREATE TABLE Name_of_table (
	Name_of_first_column Data_type_of_first_column,
	Name_of_second_column Data_type_of_second_column
	…
);
sql

En anden måde at undgå dup­li­ka­ter eller de ef­ter­føl­gen­de fejl­med­del­el­ser på er mulighed IF NOT EXISTS. Denne kon­trol­le­rer, om der allerede findes en tabel med samme navn i databasen. Hvis dette er tilfældet, modtager du kun en med­del­el­se, og ingen tabel over­skri­ves. Hvis der ikke findes en tabel med dette navn, oprettes en ny tabel. Den til­hø­ren­de syntaks ser således ud:

CREATE TABLE IF NOT EXISTS Name_of_table (
	Name_of_first_column Data_type_of_first_column,
	Name_of_second_column Data_type_of_second_column
	…
);
sql

Eksempel på CREATE TABLE i MariaDB

Funk­tio­nen CREATE TABLE i MariaDB kan bedst de­mon­stre­res med et simpelt eksempel. Vi opretter en tabel til en fiktiv pro­jekt­lis­te, der in­de­hol­der otte kolonner. Struk­tu­ren er som følger:

CREATE TABLE Projects(
	Project_number INT AUTO_INCREMENT,
	surname VARCHAR(50) NOT NULL,
	first_name VARCHAR(50),
	start DATE,
	end DATE,
	costs DOUBLE,
	tasks VARCHAR(255) NOT NULL,
	created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (Project_number)
);
sql

I det første trin opretter vi en ny tabel og navngiver den ‘Projekter’. I de følgende rækker angiver vi de enkelte kolonner:

  • project_number: I denne kolonne tildeles projektet et in­di­vi­du­elt nummer. Det behandles som en primær nøgle og bruges derfor til klart at tildele hver enkelt linje. Med AUTO_INCREMENT in­stru­e­rer vi pro­gram­met om au­to­ma­tisk at fortsætte ind­tast­nin­ger­ne i ‘pro­jek­t­num­mer’ for at sikre en ensartet ræk­ke­føl­ge.
  • efternavn: Her re­gi­stre­res kundens efternavn. Ind­tast­nin­gen kan være op til 50 tegn lang. NOT NULL-be­græns­nin­gen sikrer, at denne kolonne ikke kan ef­ter­la­des tom.
  • first_name: Kolonnen ‘first_name’ fungerer på samme måde som den fo­re­gå­en­de kolonne. Da fornavnet imid­ler­tid ikke er påkrævet til fak­tu­re­ring, kan denne kolonne ef­ter­la­des tom.
  • start: Dette afsnit re­gi­stre­rer starten på et løbende projekt. De ac­cep­tab­le værdier er en dato i det angivne da­to­for­mat eller en null-værdi.
  • end: ‘end’ beskriver deadline eller den faktiske af­slut­ning af et projekt. Disse værdier kan også være i formatet DATE eller NULL.
  • costs: Fak­tu­ra­be­lø­bet angives i denne kolonne. Det gemmes i formatet DOUBLE.
  • opgaver: Under ‘opgaver’ er der plads til en kort be­skri­vel­se af de tjenester, der blev udført for projektet. Kolonnen har plads til op til 255 tegn og må ikke ef­ter­la­des tom.
  • oprettet_ved: Datoen for det på­gæl­den­de projekts op­ret­tel­se gemmes i den sidste kolonne. Dette er baseret på systemets aktuelle tid og dato.
Gå til ho­ved­me­nu­en