sql >> Databasteknik >  >> RDS >> Database

Lägg till en kolumn i en tabell i SQL

I SQL kan du använda ALTER TABLE för att lägga till en eller flera kolumner i en befintlig tabell.

För att göra detta, använd ADD klausul, följt av kolumndefinitionen. Separera flera kolumner med ett kommatecken.

Ange bara ADD en gång (dvs. det finns inget behov av att ange det för varje kolumn).

Lägg till en kolumn

Här är ett grundläggande exempel där jag lägger till en kolumn i en befintlig tabell.

ALTER TABLE Test ADD 
  column_2 varchar(50) NOT NULL;

I det här fallet lade jag till en kolumn som heter column_2 till tabellen Test .

Detta kunde lätt ha gjorts på en enda rad. Jag använder bara två rader här för lättare läsbarhet.

Bara för att vara tydlig, här är den igen, men den här gången skapar jag tabellen innan jag ändrar den.

CREATE TABLE Test 
  (
      column_1 int IDENTITY NOT NULL PRIMARY KEY
  );
ALTER TABLE Test ADD 
  column_2 varchar(50) NOT NULL;

Observera att exemplen på den här sidan gjordes med SQL Server. Beroende på ditt DBMS kan du behöva ändra vissa detaljer i kolumndefinitionerna.

Till exempel IDENTITY är SQL Servers version av det som ibland kallas AUTO_INCREMENT i andra DBMS (som MySQL). Om du använder SQLite, så här skapar du en kolumn med automatisk ökning i SQLite.

Lägg till flera kolumner

Så här lägger du till två eller flera kolumner.

ALTER TABLE Test ADD 
  column_3 int NULL, 
  column_4 int NULL;

Som nämnts separerar du helt enkelt varje kolumn med ett kommatecken.

Lägg till begränsningar

Du kan också lägga till begränsningar för alla kolumner som du lägger till i en befintlig tabell. Här är ett exempel.

ALTER TABLE Test ADD 
  column_5 int NOT NULL
  CONSTRAINT u_column_5 UNIQUE;

Det här exemplet lägger till en kolumn som heter column_5 med en UNIQUE begränsning som kallas u_column_5 .

Självklart kommer den faktiska koden du använder att bero på kolumnnamnet och begränsningen som du lägger till, såväl som dess typ. Du kan till exempel lägga till en primärnyckelrestriktion, en främmandenyckelrestriktion, en CHECK-restriktion, etc.

Detta är inte heller det enda sättet du kan lägga till begränsningar i en kolumn. Om kolumnen redan finns kan du använda ADD CONSTRAINT för att lägga till en begränsning mot den befintliga kolumnen.

Om du lägger till begränsningen när du lägger till kolumnen slipper du helt enkelt lägga till den senare.


  1. Bästa sättet att ta bort tid del av datetime i SQL Server

  2. mysql trigger lagrad trigger används redan av satsen som anropade lagrad trigger

  3. Hur kan jag ta bort en icke-null-begränsning i Oracle när jag inte vet namnet på begränsningen?

  4. Finns det en prestandaskillnad mellan CTE , Sub-Query, Temporary tabell eller Tabellvariabel?