SQL Server CREATE, ALTER, DROP Table [T-SQL-eksempler]

โšก Smart oppsummering

SQL Server-tabeller lagrer data i rader og kolonner. Transact-SQL bruker CREATE TABLE for รฅ bygge en tabell, ALTER TABLE for รฅ legge til eller endre kolonner, og DROP TABLE for รฅ fjerne tabellen, dataene og strukturen.

  • ๐Ÿงฑ Hva er en tabell: En tabell lagrer data i rader og kolonner, og er det grunnleggende objektet for รฅ holde data i en database.
  • ๐Ÿ› ๏ธ LAG TABELL: CREATE TABLE-setningen definerer hver kolonne med et navn, en datatype og en NULL- eller NOT NULL-innstilling.
  • ???? Opprett fra eksisterende: SELECT โ€ฆ INTO kopierer valgte kolonner og rader fra en eksisterende tabell til en helt ny tabell.
  • โž• ENDRINGSTABELL: ALTER TABLE โ€ฆ ADD legger til nye kolonner i en tabell uten รฅ opprette den pรฅ nytt.
  • ๐Ÿ—‘๏ธ SLIPP TABELL: DROP TABLE fjerner hele tabellen, inkludert dataene og strukturen.
  • ๐Ÿ–ฑ๏ธ Borddesigner: SQL Server Management Studio kan ogsรฅ opprette og endre tabeller visuelt gjennom tabelldesigneren.

SQL Server CREATE, ALTER og DROP-tabell med T-SQL-eksempler

Hva er en tabell?

En tabell er et objekt i SQL Server som lagrer data i et rad-og-kolonne-format. Diagrammet nedenfor viser henholdsvis rader og kolonner.

Diagram over en tabell som lagrer data i rader og kolonner

Hvordan lage en tabell i SQL Server med T-SQL

Det fรธrste trinnet for รฅ lagre data er รฅ opprette en tabell i database hvor dataene skal ligge. Etter at du har opprettet tabellen, kan du fortsette รฅ sette inn rader i den.

Du kan opprette en tabell pรฅ fรธlgende mรฅter:

  • T-SQL: opprett en ny tabell ved รฅ definere alle kolonnene og deres datatype.
  • T-SQL: opprett en ny tabell ved hjelp av en eksisterende tabell.
  • Bruk av tabelldesigner.

La oss studere dette i detalj.

T-SQL: Opprett en ny tabell ved รฅ definere alle kolonnene og datatypen deres

Nedenfor finner du syntaksen for รฅ opprette en tabell i SQL Server.

Syntaks:

CREATE TABLE tableName
( 
  column_1 datatype [ NULL | NOT NULL ],
  column_2 datatype [ NULL | NOT NULL ],
  ...
);

Her

  • Parameteren tableName angir navnet pรฅ tabellen du skal lage.
  • Parametrene column_1, column_2โ€ฆ angir kolonnene som skal legges til i tabellen.
  • En kolonne bรธr spesifiseres som enten NULL eller NOT NULL. Hvis du ikke spesifiserer, bruker SQL Server NULL som standard.

La oss lage en grunnleggende tabell med to kolonner.

Spรธrsmรฅl:

CREATE TABLE COURSE
(
Course_ID Int,
Course_Name Varchar(10)
)

Forutsetning: Velg databasen der du vil opprette tabellen.

Trinn 1) Kjรธr spรธrringen ved รฅ klikke pรฅ Utfรธr. Fรธr spรธrringen kjรธres, finnes det ingen tabell, som vist nedenfor.

Objektutforskeren viser ingen kurstabell fรธr CREATE-setningen kjรธres

Etter at du har kjรธrt spรธrringen, klikker du pรฅ Oppdater-knappen. Den nye tabellen finnes nรฅ som Kurs, som vist nedenfor.

Kurstabellen er oppfรธrt i Object Explorer etter utfรธrelse og oppdatering

Trinn 2) Sett inn noen data. Skjermbildene nedenfor viser den nyopprettede kurstabellen som er klar til รฅ motta rader.

Nyopprettet kurstabell valgt i Object Explorer fรธr innsetting av data

Kurstabellstruktur med de to kolonnene vist fรธr datainnsetting

Frem til nรฅ finnes bare tabellen, men det er ingen data i den ennรฅ.

Transact-SQL bruker INSERT-setningen for รฅ sette inn data i en tabell. Med denne setningen kan du sette inn รฉn eller flere rader i en tabell.

Syntaks:

INSERT INTO tableName
(column_1, column_2, ... )
VALUES
(expression_1, expression_2, ... ),
(expression_1, expression_2, ... ),
...;

Syntaksen ovenfor viser den grunnleggende formen for kommandoen nรฅr du bruker VALUES-nรธkkelordet til รฅ sette inn data i en tabell.

La oss sette inn fire rader ved hjelp av INSERT-kommandoen.

Insert into COURSE values (1,'SQL');
Insert into COURSE values (2,'Python');
Insert into COURSE values (3,'SQL');
Insert into COURSE values (4,'C');

ร˜yeblikksbildet nedenfor viser at innsettingen av fire rader er vellykket.

Meldingsruten bekrefter at fire rader er satt inn i emnetabellen

Trinn 3) Bruk SELECT-setningen til รฅ vise dataene. For รฅ vise data i SQL Server, bruk fรธlgende syntaks:

SELECT expression
FROM tableName
[WHERE condition];

Eksempel pรฅ spรธrring:

SELECT * FROM COURSE;

Tabellen ble opprettet og inneholder nรฅ fire poster. Merk at du kan opprette poster med en duplikatverdi i hvilken som helst av kolonnene, fordi det ikke finnes noen begrensninger.

Resultatrutenett som viser de fire kursradene som returneres av SELECT

T-SQL: Opprett en ny tabell ved hjelp av en eksisterende tabell

Anta at du vil ha en annen tabell som KURS-tabellen som ble opprettet ovenfor, men du trenger bare Kursnavn-kolonnen og ikke Kurs-ID.

Syntaks:

SELECT (Column 1, โ€ฆ) INTO <New Table name> FROM <Old Table name>;

Eksempel pรฅ spรธrring:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Trinn 1) Kjรธr spรธrringen ved รฅ klikke pรฅ Utfรธr. En ny tabell med navnet COURSE_NAMES opprettes med รฉn kolonne og fire poster kopiert fra den eldre tabellen, som vist nedenfor.

Ny COURSE_NAMES-tabell opprettet fra en eksisterende tabell ved hjelp av SELECT INTO

Eksempel pรฅ spรธrring:

SELECT * FROM COURSE_NAMES;

Resultatet nedenfor viser de fire Course_Name-postene i den nye COURSE_NAMES-tabellen.

Resultatrutenett som viser Course_Name-verdiene i COURSE_NAMES-tabellen

Bruke Table Designer

Du kan ogsรฅ opprette en tabell fra SQL Server Management Studio IDE ved bruk av tabelldesigner.

Trinn 1) Hรธyreklikk pรฅ Tabell > Ny > Tabell, som vist nedenfor.

Hรธyreklikk pรฅ Tabell, deretter Ny og deretter Tabell i Objektutforsker

Trinn 2) Skriv inn kolonnenavnene og datatyper, og velg om hver kolonne tillater nullverdier.

Verktรธylinjen for tabelldesign for รฅ definere en ny tabell

Tabelldesigner-rutenett med kolonnenavn, datatyper og alternativer for Tillat nullverdier

Trinn 3) Trykk CTRL+S for รฅ lagre tabellen, og skriv inn navnet som Kurstittel.

Velg Navn-dialogboksen for รฅ lagre den nye tabellen som Kurstittel

Etter at du har klikket pรฅ Oppdater, vises den nye tabellen med navnet Kurstittel og รฉn kolonne kalt Kursnavn, som vist nedenfor.

Kurstittel-tabell med รฉn Kursnavn-kolonne i Objektutforsker

Endre tabell i SQL Server

Det finnes to mรฅter รฅ endre en tabell i SQL Server pรฅ:

  • T-SQL: endre tabellen ved รฅ legge til nye kolonner.
  • Bruk av tabelldesigner.

T-SQL: Endre tabell ved รฅ sette inn kolonner

Nedenfor er syntaksen til ALTER-kommandoen i SQL:

Syntaks:

 Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;

Spรธrsmรฅl:

ALTER TABLE dbo.Course_Title ADD Course_Duration VARCHAR(20);

Trinn 1) Kjรธr spรธrringen ved รฅ klikke pรฅ Utfรธr. En ny kolonne med navnet Kurs_Varighet finnes nรฅ i Kurs_Tittel-tabellen, som vist nedenfor.

ALTER TABLE ADD-setning legger til Course_Duration-kolonnen

Kurstittel-kolonnene, inkludert den nylig tillagte Kursvarighet-kolonnen

Bruke Table Designer

Du kan ogsรฅ endre en tabell fra brukergrensesnittet ved hjelp av tabelldesigneren.

Trinn 1) Hรธyreklikk pรฅ den eksisterende tabellen > Utforming, som vist nedenfor.

Hรธyreklikk pรฅ tabellen Kurstittel og velg Utforming

Trinn 2) Legg til kolonnenavnet som Course_Start_Date og velg datatypen.

Legge til kolonnen Course_Start_Date og dens datatype i tabelldesigneren

Trinn 3) Trykk CTRL+S for รฅ lagre den nylig tillagte kolonnen. En ny kolonne med navnet Course_Start_Date opprettes i Course_Title-tabellen, som vist nedenfor.

Tabellen Course_Title som viser den lagrede kolonnen Course_Start_Date

Slett tabell i SQL Server

Du sletter en tabell nรฅr den ikke lenger er nรธdvendig.

Det finnes to mรฅter รฅ slette en tabell i SQL Server pรฅ:

  • Bruk av SQL Server Management Studio.
  • T-SQL: slett tabellen med DROP TABLE.

Bruker SQL Server Management Studio

Trinn 1) Hรธyreklikk pรฅ den eksisterende tabellen > Slett, for tabellen med navnet Kurstittel, som vist nedenfor.

Hรธyreklikk pรฅ tabellen Kurstittel og velg Slett

Trinn 2) Klikk OK i vinduet Slett objekt.

Bekreftelsesvindu for sletting av objekt med OK-knappen

Tabellen Course_Title er nรฅ slettet fra tabelllisten, som vist nedenfor.

Object Explorer-tabellliste etter at Course_Title-tabellen er slettet

T-SQL: Slett tabell

Nedenfor er syntaksen for รฅ slette en tabell.

Syntaks:

DROP TABLE <tableName>;

Parameteren tableName er navnet pรฅ tabellen som skal slettes.

Spรธrsmรฅl:

DROP TABLE COURSE_NAMES;

Trinn 1) Kjรธr spรธrringen ved รฅ klikke pรฅ Utfรธr. Tabellen COURSE_NAMES slettes fra tabelllisten, som vist nedenfor.

DROP TABLE-setning fjerner COURSE_NAMES-tabellen

Object Explorer-tabelllisten etter at COURSE_NAMES-tabellen er slettet

Alternativt viser kildekoden en DELETE TABLE-kommando som bare fjerner rader (data) samtidig som tabellstrukturen forblir intakt, slik at tabellen kan brukes pรฅ nytt senere.

Syntaks:

DELETE TABLE <Table name>;

OBS: I standard T-SQL fjernes rader med DELETE FROM <table>, og et bord tรธmmes raskt med TRUNCATE TABLE <table>; hele tabellen fjernes med DROP TABLE, vist ovenfor.

Interessante fakta!

  • Store filer som XML eller bilder kan lagres i en kolonne ved hjelp av datatyper for store objekter som VARBINARY(MAX), VARCHAR(MAX) eller XML-typen (SQL Server bruker ikke Oracle-stil BLOB- og CLOB-navn).
  • DELETE fjerner bare rader og kan rulles tilbake i en transaksjon, mens DROP fjerner hele tabellstrukturen; i SQL Server kan til og med DROP rulles tilbake nรฅr den kjรธrer i en eksplisitt transaksjon.

Spรธrsmรฅl og svar

DELETE fjerner valgte rader og logges fullstendig. TRUNCATE fjerner raskt alle rader og tilbakestiller identitetsverdier. DROP fjerner hele tabellen, dataene og strukturen. I SQL Server kan alle tre rulles tilbake i en eksplisitt transaksjon.

Bruk DROP TABLE IF EXISTS tabellnavn, tilgjengelig siden SQL Server 2016. Den fjerner tabellen nรฅr den finnes, og gjรธr ingenting nรฅr den ikke er der, noe som unngรฅr en feil. Pรฅ eldre versjoner, sjekk OBJECT_ID fรธr du sletter den.ping.

SQL Server har ingen RENAME TABLE-setning. Kjรธr i stedet den systemlagrede prosedyren sp_rename, for eksempel EXEC sp_rename 'old_name', 'new_name'. Oppdater avhengige visninger, prosedyrer og kode etterpรฅ, fordi sp_rename ikke endrer disse referansene automatisk.

Ja. ALTER TABLE-tabellen ALTER COLUMN-kolonnen ny_type endrer datatypen til en kolonne, og ALTER TABLE-tabellen DROP COLUMN-kolonnen fjerner den. Endringen lykkes bare nรฅr eksisterende data er kompatible, sรฅ test konverteringer og sikkerhetskopier fรธrst.

Definer begrensninger i CREATE TABLE, for eksempel Course_ID INT PRIMARY KEY, eller legg dem til senere med ALTER TABLE ADD CONSTRAINT. primรฆrnรธkkel hรฅndhever unikhet, mens en utenlandsk nรธkkel lenker rader pรฅ tvers av tabeller.

En midlertidig tabell, navngitt med prefikset #, opprettes i tempdb og slettes automatisk nรฅr รธkten avsluttes. En vanlig tabell er permanent inntil du sletter den. Midlertidige tabeller passer for kortvarige mellomresultater i en batch eller prosedyre.

Ja. GitHub Copilot kan produsere CREATE-, ALTER- og DROP TABLE-skript fra ledetekster i naturlig sprรฅk og foreslรฅ kolonner, datatyper og begrensninger. Gjennomgรฅ alltid det genererte skjemaet, nรธklene og nullverdiene fรธr du kjรธrer det i produksjon.

AI- og maskinlรฆringsverktรธy anbefaler tabellstrukturer, datatyper og indekser fra eksempeldata og spรธrremรธnstre, flagger overflรธdige eller overdimensjonerte kolonner og advarer om risikable DROP- eller ALTER-operasjoner. Utvikleren bekrefter hvert forslag fรธr det tas i bruk.

Oppsummer dette innlegget med: