MariaDB:ssä komentoa CREATE TABLE käytetään uusien tau­lu­koi­den luomiseen. Jotta jokainen taulukko olisi ai­nut­laa­tui­nen tie­to­kan­nas­sa, vaih­toeh­to­ja OR REPLACE ja IF NOT EXISTS voidaan käyttää pääl­lek­käi­syyk­sien ja vir­heil­moi­tus­ten vält­tä­mi­sek­si.

Mikä on CREATE TABLE MariaDB:lle?

MariaDB:n CREATE TABLE käytetään uuden taulukon luomiseen, joka voidaan myöhemmin täyttää tiedoilla. MariaDB on re­laa­tio­tie­to­kan­nan hal­lin­ta­jär­jes­tel­mä (DBMS), joka käyttää näitä tau­lu­koi­ta kaikkien tal­len­nus­toi­min­to­jen perustana. Taulukon luomisen aikana mää­ri­tel­lään yk­sit­täi­set sarakkeet ja kunkin sarakkeen tie­to­tyy­pit. Taulukot ovat ai­nut­laa­tui­sia uudessa tie­to­kan­nas­sa – MariaDB CREATE DATABASE – joten jos taulukko, jolla on sama nimi, on jo olemassa, näyttöön tulee vir­heil­moi­tus. Seu­raa­vis­sa osioissa kuvataan, miten MariaDB:n CREATE TABLE käytetään, ja tutkitaan käy­tet­tä­vis­sä olevia vaih­toeh­to­ja.

Syntaksi ja toi­min­ta­ti­la

MariaDB:n CREATE TABLE:n yleinen syntaksi noudattaa aina tätä pe­ri­aa­tet­ta:

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

Tätä varten luo ensin uusi taulukko ja anna sille oma nimi paik­ka­merk­ki­nä olevan “Name_of_table” sijaan. Kaikki ASCII-koo­di­mer­kit ovat sal­lit­tu­ja. Sen jälkeen on mää­ri­tet­tä­vä yk­sit­täi­set sarakkeet. Jo­kai­sel­le sa­rak­keel­le annetaan oma nimi ja tie­to­tyyp­pi, joka voidaan tallentaa kyseiseen sa­rak­kee­seen. Kaikki sarakkeet erotetaan toi­sis­taan pilkuilla.

OR REPLACE ja IF NOT EXISTS

Koska taulukot on oltava yk­si­löl­li­siä, saat vir­heil­moi­tuk­sen , jos taulukko, jolla on sama nimi, on jo olemassa. Voit välttää tämän ongelman kahdella tavalla: OR REPLACE tarkistaa, onko tie­to­kan­nas­sa jo taulukko, jolla on sama nimi. Jos näin on, vanha taulukko korvataan uudella. Muussa ta­pauk­ses­sa uusi taulukko luodaan. Tämän lauseen syntaksi on seuraava:

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

Huomaa kuitenkin, että vanha taulukko korvataan ja sen sisältö me­ne­te­tään. Tämä vaih­toeh­to toimii tämän koodin ly­hen­net­ty­nä versiona:

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

Toinen tapa välttää pääl­lek­käi­syy­det tai niistä seuraavat vir­heil­moi­tuk­set on vaih­toeh­to IF NOT EXISTS. Se tarkistaa, onko tie­to­kan­nas­sa jo olemassa sa­man­ni­mi­nen taulukko. Jos näin on, saat vain il­moi­tuk­sen eikä taulukkoa korvata. Jos taulukkoa tällä nimellä ei ole, luodaan uusi taulukko. Vastaava syntaksi näyttää tältä:

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

Esimerkki CREATE TABLE MariaDB:ssä

MariaDB:n CREATE TABLE funktiota voidaan parhaiten ha­vain­nol­lis­taa yk­sin­ker­tai­sel­la esi­mer­kil­lä. Luomme taulukon ku­vit­teel­li­sel­le pro­jek­ti­luet­te­lol­le, joka sisältää kahdeksan saraketta. Rakenne on seuraava:

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

En­sim­mäi­ses­sä vaiheessa luomme uuden taulukon ja nimeämme sen “Projektit”. Seu­raa­vis­sa riveissä mää­ri­täm­me yk­sit­täi­set sarakkeet:

  • project_number: Tässä sa­rak­kees­sa pro­jek­til­le annetaan yk­si­löl­li­nen numero. Sitä kä­si­tel­lään en­si­si­jai­se­na avaimena, ja siksi sitä käytetään kunkin yk­sit­täi­sen rivin selkeään mää­rit­tä­mi­seen. Arvolla AUTO_INCREMENT oh­jeis­tam­me ohjelmaa jatkamaan au­to­maat­ti­ses­ti mer­kin­tö­jä kentässä ”project number”, jotta var­mis­te­taan yh­te­näi­nen järjestys.
  • surname: Tähän kenttään kirjataan asiakkaan sukunimi. Merkintää voi olla enintään 50 merkkiä. NOT NULL -rajoitus varmistaa, että tätä saraketta ei voi jättää tyhjäksi.
  • first_name: “first_name”-sarake toimii samalla tavalla kuin edellinen sarake. Koska etunimeä ei kui­ten­kaan tarvita las­ku­tus­ta varten, tämä sarake voidaan jättää tyhjäksi.
  • start: Tässä osiossa tal­len­ne­taan jatkuvan projektin aloi­tus­päi­vä. Hy­väk­syt­tä­vät arvot ovat päi­vä­mää­rä mää­ri­tel­lys­sä päi­vä­mää­rä­muo­dos­sa tai nolla-arvo.
  • end: ”end” kuvaa projektin mää­rä­ai­kaa tai to­del­lis­ta päät­ty­mi­sa­jan­koh­taa. Nämä arvot voivat olla myös muodossa DATE tai NULL.
  • costs: Laskun summa on merkitty tähän sa­rak­kee­seen. Se tal­len­ne­taan muodossa DOUBLE.
  • tehtävät: Kohdassa ”tehtävät” on tilaa lyhyelle ku­vauk­sel­le projektin yh­tey­des­sä suo­ri­te­tuis­ta pal­ve­luis­ta. Sa­rak­kee­seen mahtuu enintään 255 merkkiä, eikä sitä saa jättää tyhjäksi.
  • created_at: Vii­mei­ses­sä sa­rak­kees­sa on tal­len­net­tu kyseisen projektin luo­mis­päi­vä. Se perustuu jär­jes­tel­män nykyiseen kel­lo­nai­kaan ja päi­vä­mää­rään.
Siirry pää­va­lik­koon