Meningsfullt skapande av tabeller
I de tidigare föreläsningarna har vi redan bekantat oss lite med frågor för att skapa tabeller, nu är det dags att fördjupa sig i detta.
Att skapa en tabell är mycket likt att deklarera en klass i Java och har detta mönster:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
Låt oss till exempel skriva en fråga som skapar en tabell med användare:
CREATE TABLE user (
id INT,
name VARCHAR(100),
level INT,
created_date DATE,
);
Det ser väldigt enkelt ut, eftersom många nyanser inte anges här.
För det första kan tabellen ha ytterligare inställningar.
Och för det andra kan varje kolumn ha ytterligare inställningar.
Och vi börjar med inställningarna för att skapa kolumner.
Nycklar i tabellen
Förutom namnet och datatypen kan en tabellkolumn även ha följande inställningar:
PRIMÄRNYCKEL | Kolumnen är nyckeln i tabellen |
UNIK NYCKEL | Alla kolumnvärden måste vara unika. |
Standardvärde | Standardvärde |
INTE NULL | Förbudet att acceptera värdet NULL |
AUTO_INCREMENT | SQL Server kommer automatiskt att öka värdet när en ny post läggs till i tabellen |
GENERERAD | Beräknat fält |
LAGRING | Var data lagras: på disk eller i minnet |
KOMMENTAR | Kolumnkommentar, t.ex. titel på lokalt språk |
Nedan ska vi titta på några av dem.
För det första är det PRIMÄRNYCKEL .
Oftast är detta en separat kolumn med namnet id och typen INT. Detta är den så kallade "huvudnyckeln" i tabellen, och alla dess rader har unika värden för denna nyckel. Den används främst för att andra tabeller ska kunna referera till posterna i vår tabell och peka på dess specifika post.
Andra är UNIK NYCKEL .
På vissa sätt liknar den PRIMARY KEY, även om dess semantiska belastning är helt annorlunda. Om en kolumn har attributet UNIQUE, måste alla värden i den kolumnen vara unika. Ett bra exempel på skillnaden mellan UNIQUE KEY och PRIMÄRNYCKEL är listan över personer på passkontoret.
Skattenumret är en PRIMÄRNYCKEL, det används för att göra det enkelt att hänvisa till rätt person från andra tabeller.
Passnumret är en UNIK NYCKEL. Inga två personer kan ha samma passnummer. Passnumret kan dock ändras. Till exempel när du byter efternamn. Och skattenumret kommer att stanna hos dig för alltid. Detta är huvuduppgiften för PRIMARY KEY. Ett exempel på en fråga som anger PRIMÄRKEY:
CREATE TABLE user (
id INT PRIMARY KEY,
name VARCHAR(100),
level INT,
created_date DATE,
);
Inställningar för datatyp
Det finns mindre viktiga men användbara egenskaper.
DEFAUL värde
När du infogar data (lägger till en ny rad) i en tabell kan du utelämna värdena för vissa kolumner om de har ett standardvärde. I det här fallet kommer SQL-servern helt enkelt att ställa in värdet på själva kolumnen.
Från och med version 8 av MySQL kan du ange ett uttryck som ett värde.
INTE NULL
Om du anger NOT NULL-attributet för en kolumn när du skapar en tabell, kommer SQL Server att säkerställa att det är omöjligt att lagra ett NULL-värde i denna kolumn. Som standard kan alla kolumner ha ett NULL-värde, även en INT-kolumn. Vilket är lite självklart för en Java-programmerare.
AUTO_INCREMENT
Det används vanligtvis för kolumn-id:n. När du lägger till en ny rad i en tabell vill du verkligen att SQL-servern ska tilldela ett id för denna post. Vem bättre än servern vet hur många rader han har i tabellen. Speciellt om förfrågningar från olika klienter går till samma SQL-server.
Detta är exakt vad AUTO_INCREMENT-attributet gör. När vi lägger till en ny rad skickar vi helt enkelt ingenting som ett id, och SQL-servern kommer att ange rätt ID för denna post: den tar helt enkelt ID:t för den senaste befintliga posten och ökar den med 1. Detta attribut kan bara vara används med heltals- och reella taltyper. Och, naturligtvis, låt oss göra ett exempel på att skapa en sådan tabell:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
level INT DEFAULT 1,
created_date DATE NOT NULL,
);
GO TO FULL VERSION