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

โšก Smart opsummering

SQL Server-tabeller gemmer data i rรฆkker og kolonner. Transact-SQL bruger CREATE TABLE til at opbygge en tabel, ALTER TABLE til at tilfรธje eller รฆndre kolonner og DROP TABLE til at fjerne tabellen, dens data og dens struktur.

  • ๐Ÿงฑ Hvad er en tabel: En tabel lagrer data i rรฆkker og kolonner og er det grundlรฆggende objekt til at holde data i en database.
  • ๐Ÿ› ๏ธ OPRET TABEL: CREATE TABLE-sรฆtningen definerer hver kolonne med et navn, en datatype og en NULL- eller NOT NULL-indstilling.
  • ???? Opret fra eksisterende: SELECT โ€ฆ INTO kopierer valgte kolonner og rรฆkker fra en eksisterende tabel til en helt ny tabel.
  • โž• ร†NDRINGSTABEL: ALTER TABLE โ€ฆ ADD tilfรธjer nye kolonner til en tabel uden at genskabe den.
  • ๐Ÿ—‘๏ธ DROP TABEL: DROP TABLE fjerner hele tabellen, inklusive dens data og dens struktur.
  • ๐Ÿ–ฑ๏ธ Borddesigner: SQL Server Management Studio kan ogsรฅ oprette og รฆndre tabeller visuelt via Table Designer.

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

Hvad er en tabel?

En tabel er et objekt i SQL Server der lagrer data i et rรฆkke-og-kolonne-format. Diagrammet nedenfor viser henholdsvis rรฆkker og kolonner.

Diagram over en tabel, der lagrer data i rรฆkker og kolonner

Sรฅdan opretter du en tabel i SQL Server med T-SQL

Det fรธrste trin til at gemme data er at oprette en tabel i database hvor dataene skal vรฆre. Nรฅr du har oprettet tabellen, kan du fortsรฆtte med at indsรฆtte rรฆkker i den.

Du kan oprette en tabel pรฅ fรธlgende mรฅder:

  • T-SQL: Opret en ny tabel ved at definere alle kolonner og deres datatype.
  • T-SQL: Opret en ny tabel ved hjรฆlp af en eksisterende tabel.
  • Brug af tabeldesigner.

Lad os studere dette i detaljer.

T-SQL: Opret en ny tabel ved at definere alle kolonner og deres datatype

Nedenfor er syntaksen til at oprette en tabel i SQL Server.

Syntaks:

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

Her,

  • Parameteren tableName angiver navnet pรฅ den tabel, du vil oprette.
  • Parametrene column_1, column_2โ€ฆ angiver de kolonner, der skal tilfรธjes til tabellen.
  • En kolonne skal angives som enten NULL eller NOT NULL. Hvis du ikke angiver, bruger SQL Server NULL som standard.

Lad os oprette en grundlรฆggende tabel med to kolonner.

Forespรธrgsel:

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

Forudsรฆtning: Vรฆlg den database, hvor du skal oprette tabellen.

Trin 1) Kรธr forespรธrgslen ved at klikke pรฅ Udfรธr. Fรธr forespรธrgslen kรธres, findes der ingen tabel, som vist nedenfor.

Objekt Explorer viser ingen kursustabel fรธr CREATE-sรฆtningen kรธres

Nรฅr forespรธrgslen er kรธrt, skal du klikke pรฅ knappen Opdater. Den nye tabel findes nu som Kursus, som vist nedenfor.

Kursustabel vist i Object Explorer efter udfรธrelse og opdatering

Trin 2) Indsรฆt nogle data. Skรฆrmbillederne nedenfor viser den nyoprettede kursustabel, der er klar til at modtage rรฆkker.

Nyoprettet kursustabel valgt i Object Explorer fรธr indsรฆttelse af data

Kursets tabelstruktur med de to kolonner vist fรธr dataindsรฆttelse

Indtil nu findes kun tabellen, men der er endnu ingen data i den.

Transact-SQL bruger INSERT-sรฆtningen til at indsรฆtte data i en tabel. Med denne sรฆtning kan du indsรฆtte en eller flere rรฆkker i en tabel.

Syntaks:

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

Syntaksen ovenfor viser den grundlรฆggende form for kommandoen, nรฅr VALUES-nรธgleordet bruges til at indsรฆtte data i en tabel.

Lad os indsรฆtte fire rรฆkker ved hjรฆlp af 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');

ร˜jebliksbilledet nedenfor viser, at indsรฆttelsen af โ€‹โ€‹fire rรฆkker er vellykket.

Meddelelsesruden bekrรฆfter, at fire rรฆkker er indsat i kursustabellen

Trin 3) Brug SELECT-sรฆtningen til at se dataene. For at se data i SQL Server skal du bruge fรธlgende syntaks:

SELECT expression
FROM tableName
[WHERE condition];

Eksempel forespรธrgsel:

SELECT * FROM COURSE;

Tabellen blev oprettet og indeholder nu fire poster. Bemรฆrk, at du kan oprette poster med en duplikatvรฆrdi i en hvilken som helst af kolonnerne, fordi der ikke er nogen begrรฆnsninger.

Resultatgitter, der viser de fire kursusrรฆkker, der returneres af SELECT

T-SQL: Opret en ny tabel ved hjรฆlp af en eksisterende tabel

Antag, at du รธnsker en anden tabel ligesom den KURSUS-tabell, der er oprettet ovenfor, men du behรธver kun kolonnen Kursusnavn og ikke Kursus-ID.

Syntaks:

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

Eksempel forespรธrgsel:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Trin 1) Kรธr forespรธrgslen ved at klikke pรฅ Udfรธr. En ny tabel med navnet COURSE_NAMES oprettes med รฉn kolonne og fire poster kopieret fra den รฆldre tabel, som vist nedenfor.

Ny COURSE_NAMES-tabel oprettet fra en eksisterende tabel ved hjรฆlp af SELECT INTO

Eksempel forespรธrgsel:

SELECT * FROM COURSE_NAMES;

Resultatet nedenfor viser de fire Course_Name-poster i den nye COURSE_NAMES-tabel.

Resultatgitter, der viser vรฆrdierne for Course_Name i tabellen COURSE_NAMES

Brug af Table Designer

Du kan ogsรฅ oprette en tabel ud fra SQL Server Management Studio IDE ved hjรฆlp af tabeldesigner.

Trin 1) Hรธjreklik pรฅ Tabel > Ny > Tabel, som vist nedenfor.

Hรธjreklik pรฅ Tabel, derefter Ny og derefter Tabel i Object Explorer

Trin 2) Indtast kolonnenavnene og datatyper, og vรฆlg om hver kolonne tillader nuller.

Vรฆrktรธjslinjen Tabeldesigner til at definere en ny tabel

Tabeldesignergitter med kolonnenavne, datatyper og Tillad nuller-indstillinger

Trin 3) Tryk CTRL+S for at gemme tabellen, og indtast navnet som Kursustitel.

Vรฆlg Navn-dialogboksen for at gemme den nye tabel som Kursustitel

Efter du har klikket pรฅ Opdater, vises den nye tabel med navnet Kursustitel og รฉn kolonne med navnet Kursusnavn, som vist nedenfor.

Tabel af typen Course_Title med en enkelt Course_Name-kolonne i Object Explorer

ร†ndre tabel i SQL Server

Der er to mรฅder at รฆndre en tabel i SQL Server:

  • T-SQL: ร†ndr tabellen ved at tilfรธje nye kolonner.
  • Brug af tabeldesigner.

T-SQL: ร†ndre tabel ved at indsรฆtte kolonner

Nedenfor er syntaksen for ALTER-kommandoen i SQL:

Syntaks:

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

Forespรธrgsel:

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

Trin 1) Kรธr forespรธrgslen ved at klikke pรฅ Udfรธr. En ny kolonne med navnet Kursus_Varighed findes nu i tabellen Kursus_Titel, som vist nedenfor.

ALTER TABLE ADD-sรฆtning tilfรธjer kolonnen Course_Duration

Kolonnerne Course_Title inklusive den nyligt tilfรธjede kolonne Course_Duration

Brug af Table Designer

Du kan ogsรฅ รฆndre en tabel fra brugergrรฆnsefladen ved hjรฆlp af Tabeldesigner.

Trin 1) Hรธjreklik pรฅ den eksisterende tabel > Design, som vist nedenfor.

Hรธjreklik pรฅ tabellen Course_Title, og vรฆlg Design

Trin 2) Tilfรธj kolonnenavnet som Course_Start_Date, og vรฆlg dens datatype.

Tilfรธjelse af kolonnen Course_Start_Date og dens datatype i tabeldesigneren

Trin 3) Tryk CTRL+S for at gemme den nyligt tilfรธjede kolonne. En ny kolonne med navnet Course_Start_Date oprettes i tabellen Course_Title, som vist nedenfor.

Tabellen Course_Title, der viser den gemte kolonne Course_Start_Date

Slet tabel i SQL Server

Du sletter en tabel, nรฅr den ikke lรฆngere er nรธdvendig.

Der er to mรฅder at slette en tabel i SQL Server:

  • Brug af SQL Server Management Studio.
  • T-SQL: slet tabellen med DROP TABLE.

Brug af SQL Server Management Studio

Trin 1) Hรธjreklik pรฅ den eksisterende tabel > Slet for tabellen med navnet Course_Titel, som vist nedenfor.

Hรธjreklik pรฅ tabellen Course_Title, og vรฆlg Slet

Trin 2) Klik pรฅ OK i vinduet Slet objekt.

Bekrรฆftelsesvindue for sletning af objekt med OK-knappen

Tabellen Course_Title er nu slettet fra tabellisten, som vist nedenfor.

Object Explorer-tabelliste efter at Course_Title-tabellen er slettet

T-SQL: Slet tabel

Nedenfor er syntaksen for at slette en tabel.

Syntaks:

DROP TABLE <tableName>;

Parameteren tableName er navnet pรฅ den tabel, der skal slettes.

Forespรธrgsel:

DROP TABLE COURSE_NAMES;

Trin 1) Kรธr forespรธrgslen ved at klikke pรฅ Udfรธr. Tabellen COURSE_NAMES slettes fra tabellisten, som vist nedenfor.

DROP TABLE-sรฆtning fjerner COURSE_NAMES-tabellen

Object Explorer-tabellisten efter at COURSE_NAMES-tabellen er slettet

Alternativt viser kildekoden en DELETE TABLE-kommando, der kun har til formรฅl at fjerne rรฆkker (data), mens tabelstrukturen forbliver intakt, sรฅ tabellen kan genbruges senere.

Syntaks:

DELETE TABLE <Table name>;

Bemรฆrk: I standard T-SQL fjernes rรฆkker med DELETE FROM <table>, og et bord tรธmmes hurtigt med TRUNCATE TABLE <table>; hele tabellen fjernes med DROP TABLE, som vist ovenfor.

Interessante fakta!

  • Store filer som XML eller billeder kan gemmes i en kolonne ved hjรฆlp af datatyper med store objekter som VARBINARY(MAX), VARCHAR(MAX) eller XML-typen (SQL Server bruger ikke Oracle-stil BLOB- og CLOB-navne).
  • DELETE fjerner kun rรฆkker og kan rulles tilbage inden for en transaktion, mens DROP fjerner hele tabelstrukturen; i SQL Server kan selv DROP rulles tilbage, nรฅr den kรธrer inden for en eksplicit transaktion.

Ofte Stillede Spรธrgsmรฅl

DELETE fjerner valgte rรฆkker og logges fuldt ud. TRUNCATE fjerner hurtigt alle rรฆkker og nulstiller identitetsvรฆrdier. DROP fjerner hele tabellen, dens data og dens struktur. I SQL Server kan alle tre rulles tilbage i en eksplicit transaktion.

Brug DROP TABLE IF EXISTS tabelnavn, tilgรฆngelig siden SQL Server 2016. Den fjerner tabellen, nรฅr den er til stede, og gรธr ingenting, nรฅr den ikke er til stede, hvilket undgรฅr en fejl. Pรฅ รฆldre versioner skal du kontrollere OBJECT_ID fรธr drop.ping.

SQL Server har ingen RENAME TABLE-sรฆtning. Kรธr i stedet den systemlagrede procedure sp_rename, for eksempel EXEC sp_rename 'old_name', 'new_name'. Opdater afhรฆngige visninger, procedurer og kode bagefter, da sp_rename ikke รฆndrer disse referencer automatisk.

Ja. ALTER TABLE-tabellen ALTER COLUMN-kolonnen new_type รฆndrer en kolonnes datatype, og ALTER TABLE-tabellen DROP COLUMN-kolonnen fjerner den. ร†ndringen lykkes kun, nรฅr eksisterende data er kompatible, sรฅ test konverteringer og sikkerhedskopier fรธrst.

Definer begrรฆnsninger i CREATE TABLE, sรฅsom Course_ID INT PRIMARY KEY, eller tilfรธj dem senere med ALTER TABLE ADD CONSTRAINT. primรฆrnรธgle hรฅndhรฆver unikhed, mens en fremmed nรธgle forbinder rรฆkker pรฅ tvรฆrs af tabeller.

En midlertidig tabel, navngivet med prรฆfikset #, oprettes i tempdb og slettes automatisk, nรฅr sessionen slutter. En almindelig tabel er permanent, indtil du sletter den. Midlertidige tabeller er egnede til kortvarige mellemresultater i en batch eller procedure.

Ja. GitHub Copilot kan producere CREATE-, ALTER- og DROP TABLE-scripts fra prompter i naturligt sprog og foreslรฅ kolonner, datatyper og begrรฆnsninger. Gennemgรฅ altid det genererede skema, nรธgler og nullbarhed, fรธr det kรธres i produktion.

AI- og maskinlรฆringsvรฆrktรธjer anbefaler tabelstrukturer, datatyper og indekser fra eksempeldata og forespรธrgselsmรธnstre, markerer overflรธdige eller overdimensionerede kolonner og advarer om risikable DROP- eller ALTER-handlinger. Udvikleren bekrรฆfter hvert forslag, fรธr det anvendes.

Opsummer dette indlรฆg med: