I MySQL kan du oprette tabeller via GUI'en eller ved at køre SQL-kode. Her er en oversigt over begge metoder.
Nu hvor vi har oprettet vores database, lad os lave nogle tabeller.
Oprettelse af tabeller via GUI
En måde at oprette en tabel på er via MySQL Workbench GUI. Dette er en nem mulighed for dem, der foretrækker grafiske brugergrænseflader.
Selvom du starter med at bruge GUI, anbefaler jeg, at du bliver fortrolig med at oprette tabeller programmatisk ved hjælp af CREATE TABLE
erklæring.
CREATE TABLE
Erklæring
CREATE TABLE
statement gør nøjagtigt som navnet antyder - det opretter en tabel.
Du skal dog give oplysninger om den tabel, som du vil have MySQL til at oprette. For eksempel tabelnavnet, kolonnenavnene og deres datatyper, standardværdier, begrænsninger osv.
Her er eksemplet, vi brugte på den forrige side:
CREATE TABLE Fruit (FruitName VARCHAR(20), DateEntered DATETIME);
Dette opretter en tabel kaldet Fruit
der indeholder to kolonner:FruitName
og DateEntered
.
FruitName
kolonne bruger en datatype VARCHAR(20)
, hvilket betyder, at den accepterer data, der er en VARCHAR
(streng med variabel længde) op til 20 tegn lang.
DateEntered
kolonne bruger datatypen DATETIME
hvilket betyder, at kolonnen accepterer formatet DATETIME (en dato og et klokkeslæt) i følgende format YYYY-MM-DD HH:MM:SS
.
Du kan angive, at en kolonne altid skal indeholde en værdi (at den ikke skal være "nul"). For at gøre dette skal du inkludere NOT NULL
i kolonnens specifikationer (eksempel nedenfor).
Hvis du forsøger at indsætte data, der ikke er i det format, der er angivet for den pågældende kolonne, vil du modtage en fejlmeddelelse.
Opret flere tabeller
For at oprette flere tabeller tilføjer du blot en CREATE TABLE
erklæring for hver tabel, du skal oprette.
CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
Eksempel
Vi har tidligere oprettet en tom database kaldet "FruitShop". Men vi lavede ikke nogen tabeller på det tidspunkt. Lad os opdatere scriptet, så det opretter en database og to tabeller. Vi tilføjer nogle flere ting til koden.
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE Units ( UnitId TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, UnitName VARCHAR(10) NOT NULL, DateEntered DATETIME NOT NULL, DateUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (UnitId) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE Fruit ( FruitId SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, FruitName VARCHAR(45) NOT NULL, Inventory SMALLINT UNSIGNED NOT NULL, UnitId TINYINT UNSIGNED NOT NULL, DateEntered DATETIME NOT NULL, DateUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (FruitId), CONSTRAINT fkFruitUnits FOREIGN KEY (UnitId) REFERENCES Units (UnitId) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Kør ovenstående script, og opdater derefter venstre kolonne i MySQL Workbench. Du bør se din nyoprettede FruitShop database angivet under SCHEMAS fanen.
Udvid tabellerne node, og du vil se de tabeller, du lige har oprettet:
Du kan også udvide hver tabel for at se dens kolonner og andre objekter, som du har oprettet til den tabel.
Vis tabeloplysninger programmatisk
Du kan også vise tabeloplysninger programmatisk. Det vil sige ved at indtaste en SQL-kommando for at vise den information, du har brug for.
I det følgende eksempel indstiller vi standarddatabasen til at være FruitShop
ved at bruge USE FruitShop
. Vi beder derefter MySQL om at vise alle tabeller for standarddatabasen (ved at bruge SHOW TABLES
):
USE FruitShop; SHOW TABLES;
Du kan også finde ud af strukturen af en given tabel ved at bruge følgende kommando (udskift blot tabelnavnet med den tabel, du skal have strukturen af):
DESCRIBE Fruit;
Her er resultatet af den kommando i vores database: