I MariaDB används kommandot CREATE TABLE för att skapa nya tabeller. För att sä­ker­stäl­la att varje tabell är unik inom databasen kan al­ter­na­ti­ven OR REPLACE och IF NOT EXISTS användas för att undvika dub­blet­ter och fel­med­de­lan­den.

Vad är CREATE TABLE för MariaDB?

Kommandot CREATE TABLE i MariaDB används för att skapa en ny tabell som senare kan fyllas med data. Som ett re­la­tions­da­ta­bashan­te­rings­sy­stem (DBMS) använder MariaDB dessa tabeller som grund för alla lag­ringso­pe­ra­tio­ner. Under ta­bell­ska­pan­det de­fi­nie­ras enskilda kolumner och da­ta­ty­per­na för varje kolumn spe­ci­fi­ce­ras. Tabeller är unika inom en nyupp­rät­tad databas – MariaDB CREATE DATABASE – så om en tabell med samma namn redan finns kommer ett fel­med­de­lan­de att genereras. I de kommande avsnitten kommer vi att beskriva hur man använder kommandot CREATE TABLE i MariaDB och utforska de till­gäng­li­ga al­ter­na­tiv som du kan använda.

Syntax och driftslä­ge

Den allmänna syntaxen för CREATE TABLE i MariaDB följer alltid denna 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

För att göra detta måste du först skapa en ny tabell och ge den ett eget namn istället för plats­hål­la­ren “Namn_på_tabell”. Alla ASCII-tecken är tillåtna. Därefter måste de enskilda ko­lum­ner­na spe­ci­fi­ce­ras. Varje kolumn får ett eget namn och en datatyp som kan lagras i kolumnen. Alla kolumner separeras från varandra med kom­ma­tec­ken.

OR REPLACE och IF NOT EXISTS

Eftersom tabeller måste vara unika får du ett fel­med­de­lan­de om en tabell med samma namn redan finns. För att undvika detta problem har du två al­ter­na­tiv: Al­ter­na­tiv OR REPLACE kon­trol­le­rar om en tabell med samma namn redan finns i databasen. Om så är fallet ersätts den gamla tabellen med den nya. Annars skapas helt enkelt den nya tabellen. Syntaxen för detta uttalande ser ut så här:

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

Observera dock att den gamla tabellen kommer att skrivas över och dess innehåll kommer att gå förlorat. Al­ter­na­ti­vet fungerar som en förkortad form av denna kod:

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

Ett annat sätt att undvika dub­blet­ter eller ef­ter­föl­jan­de fel­med­de­lan­den är al­ter­na­tiv IF NOT EXISTS. Detta kon­trol­le­rar om en tabell med samma namn redan finns i databasen. Om så är fallet får du endast ett med­de­lan­de och ingen tabell skrivs över. Om det inte finns någon tabell med detta namn skapas en ny tabell. Mot­sva­ran­de syntax ser ut så här:

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

Exempel på CREATE TABLE i MariaDB

Funk­tio­nen CREATE TABLE i MariaDB kan bäst de­mon­stre­ras med ett enkelt exempel. Vi skapar en tabell för en fiktiv pro­jekt­lis­ta som in­ne­hål­ler åtta kolumner. Struk­tu­ren är följande:

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örsta steget skapar vi en ny tabell och namnger den “Projekt”. I följande rader spe­ci­fi­ce­rar vi de enskilda ko­lum­ner­na:

  • project_number: I denna kolumn tilldelas projektet ett in­di­vi­du­ellt nummer. Det behandlas som en pri­mär­nyc­kel och används därför för att tydligt tilldela varje enskild rad. Med AUTO_INCREMENT in­stru­e­rar vi pro­gram­met att au­to­ma­tiskt fortsätta in­mat­ning­ar­na i “pro­jekt­num­mer” för att sä­ker­stäl­la en enhetlig sekvens.
  • efternamn: Här re­gi­stre­ras kundens efternamn. Posten kan vara upp till 50 tecken lång. Be­gräns­ning­en NOT NULL sä­ker­stäl­ler att denna kolumn inte kan lämnas tom.
  • förnamn: Kolumnen ”förnamn” fungerar på samma sätt som fö­re­gå­en­de kolumn. Eftersom förnamnet inte krävs för fak­tu­re­ring kan denna kolumn dock lämnas tom.
  • start: I detta avsnitt re­gi­stre­ras starten på ett pågående projekt. Godkända värden är ett datum i angivet da­tum­for­mat eller ett null-värde.
  • end: ”end” beskriver deadline eller det faktiska slut­fö­ran­det av ett projekt. Dessa värden kan också ha formatet DATE eller NULL.
  • kostnader: Fak­tu­ra­be­lop­pet anges i denna kolumn. Det lagras i formatet DOUBLE.
  • tasks: Under ”tasks” finns utrymme för en kort be­skriv­ning av de tjänster som utförts för projektet. Kolumnen har utrymme för upp till 255 tecken och får inte lämnas tom.
  • created_at: Datumet för re­spek­ti­ve projekts skapande lagras i den sista kolumnen. Detta baseras på systemets aktuella tid och datum.
Gå till huvudmeny