SQL Serveri CREATE, ALTER, DROP tabel [T-SQL näited]

⚡ Nutikas kokkuvõte

SQL Serveri tabelid salvestavad andmeid ridades ja veergudes. Transact-SQL kasutab tabeli loomiseks käsku CREATE TABLE, veergude lisamiseks või muutmiseks käsku ALTER TABLE ning tabeli, selle andmete ja struktuuri eemaldamiseks käsku DROP TABLE.

  • 🧱 Mis on laud: Tabel salvestab andmeid ridades ja veergudes ning on andmebaasis andmete hoidmise põhiobjekt.
  • 🛠️ LOO TABEL: CREATE TABLE käsk defineerib iga veeru nime, andmetüübi ja NULL või NOT NULL sätte abil.
  • ???? Loo olemasolevast: SELECT … INTO kopeerib valitud veerud ja read olemasolevast tabelist uude tabelisse.
  • MUUDA TABEL: ALTER TABLE … ADD lisab tabelisse uued veerud seda uuesti loomata.
  • 🗑️ VÄLJAPANEV TABEL: DROP TABLE eemaldab kogu tabeli, sealhulgas selle andmed ja struktuuri.
  • 🖱️ Laua kujundaja: SQL Server Management Studio saab tabeleid luua ja visuaalselt muuta ka tabelikujundaja abil.

SQL Serveri CREATE, ALTER ja DROP tabelid koos T-SQL näidetega

Mis on laud?

Tabel on objekt, mis asub SQL Server mis salvestab andmeid rea- ja veeruvormingus. Allolev diagramm näitab vastavalt ridu ja veerge.

Tabeli diagramm, mis salvestab andmeid ridades ja veergudes

Kuidas SQL Serveris T-SQL-iga tabelit luua

Andmete salvestamise esimene samm on tabeli loomine andmebaas kuhu andmed asuvad. Pärast tabeli loomist saate sinna ridu lisada.

Tabelit saab luua järgmistel viisidel.

  • T-SQL: looge uus tabel, määrates kõik veerud ja nende andmetüübi.
  • T-SQL: looge uus tabel olemasoleva tabeli abil.
  • Tabeli kujundaja kasutamine.

Uurime seda üksikasjalikumalt.

T-SQL: Loo uus tabel, määratledes kõik veerud ja nende andmetüübi

Allpool on süntaks tabeli loomiseks SQL Serveris.

süntaksit:

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

Siin

  • Parameeter tableName tähistab loodava tabeli nime.
  • Parameetrid veerg_1, veerg_2… tähistavad tabelisse lisatavaid veerge.
  • Veerg tuleks määrata kas NULL või NOT NULL väärtusena. Kui te seda ei määra, võtab SQL Server vaikimisi väärtuseks NULL.

Loome lihtsa tabeli kahe veeruga.

Päring:

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

Eeltingimus: Valige andmebaas, kuhu soovite tabeli luua.

Step 1) Käivitage päring, klõpsates nuppu „Käivita“. Enne päringu käivitamist pole tabelit olemas, nagu allpool näidatud.

Objektihaldur ei kuva enne CREATE-lause käivitamist kursuse tabelit

Pärast päringu käivitamist klõpsake nuppu Värskenda; uus tabel on nüüd nimega Kursus, nagu allpool näidatud.

Kursuse tabel kuvatakse pärast käivitamist ja värskendamist Object Exploreris

Step 2) Sisesta andmed. Allolevad ekraanipildid näitavad äsja loodud kursuse tabelit, mis on ridade vastuvõtmiseks valmis.

Enne andmete sisestamist valitud Object Exploreris äsja loodud kursuse tabel

Kursuse tabeli struktuur koos kahe veeruga enne andmete sisestamist

Praeguseks on tabel ainult olemas, aga selles pole veel andmeid.

Transact-SQL pakub INSERT-lauset andmete lisamiseks tabelisse. Selle lausega saate tabelisse lisada ühe või mitu rida.

süntaksit:

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

Ülaltoodud süntaks näitab käsu põhivormi, kui VALUES märksõna abil tabelisse andmeid sisestatakse.

Lisame neli rida käsuga INSERT.

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

Allolev pilt näitab, et nelja rea ​​lisamine õnnestus.

Sõnumite paan, mis kinnitab nelja rea ​​lisamist kursuse tabelisse

Step 3) Andmete vaatamiseks kasutage SELECT-lauset. Andmete vaatamiseks SQL Serveris kasutage järgmist süntaksit:

SELECT expression
FROM tableName
[WHERE condition];

Näidispäring:

SELECT * FROM COURSE;

Tabel loodi ja sisaldab nüüd nelja kirjet. Pange tähele, et saate luua kirjeid, mille mis tahes veerus on duplikaatväärtus, kuna neid pole. piiranguid.

Tulemuste tabel, mis näitab SELECT-i tagastatud nelja kursuse rida

T-SQL: uue tabeli loomine olemasoleva tabeli abil

Oletame, et soovite teist tabelit, nagu eespool loodud KURSUSE tabel, aga vajate ainult Course_Name veergu, mitte Course_ID veergu.

süntaksit:

SELECT (Column 1, …) INTO <New Table name> FROM <Old Table name>;

Näidispäring:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Step 1) Käivitage päring, klõpsates nuppu „Käivita“. Luuakse uus tabel nimega COURSE_NAMES, mis sisaldab ühte veergu ja nelja kirjet, mis on kopeeritud vanemast tabelist, nagu allpool näidatud.

Uus tabel COURSE_NAMES loodi olemasolevast tabelist, kasutades funktsiooni SELECT INTO

Näidispäring:

SELECT * FROM COURSE_NAMES;

Allolev tulemus loetleb uues COURSE_NAMES tabelis olevad neli Course_Name kirjet.

Tulemuste tabel, mis kuvab Course_Name väärtusi tabelis COURSE_NAMES

Tabelikujundaja kasutamine

Samuti saate tabeli luua SQL Serveri haldusstuudio IDE, mis kasutab tabeli kujundajat.

Step 1) Paremklõpsake valikul Tabel > Uus > Tabel, nagu allpool näidatud.

Paremklõpsake objektide uurijas valikul Tabel, seejärel Uus ja seejärel Tabel.

Step 2) Sisestage veerunimed ja andmetüübidja valige, kas iga veerg lubab tühiväärtusi.

Tabeli kujundaja tööriistariba uue tabeli määratlemiseks

Tabeli kujundaja ruudustik veerunimede, andmetüüpide ja tühjade väärtuste lubamise valikutega

Step 3) Tabeli salvestamiseks vajutage CTRL+S ja sisestage nimi kujul Kursuse_Pealkiri.

Uue tabeli salvestamiseks nimega Course_Title valige dialoogiboks Nimi.

Pärast nupule „Värskenda“ klõpsamist kuvatakse uus tabel nimega Kursuse_Pealkiri ja ühe veeruga nimega Kursuse_Nimi, nagu allpool näidatud.

Course_Title tabel ühe Course_Name veeruga Object Exploreris

Muuda tabelit SQL Serveris

SQL Serveris on tabeli muutmiseks kaks võimalust:

  • T-SQL: tabeli muutmine uute veergude lisamise teel.
  • Tabeli kujundaja kasutamine.

T-SQL: muutke tabelit veergude lisamisega

Allpool on SQL-i ALTER-käsu süntaks:

süntaksit:

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

Päring:

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

Step 1) Käivitage päring, klõpsates nuppu „Käivita“. Tabelis „Kursuse_pealkiri“ on nüüd uus veerg nimega „Kursuse_kestus“, nagu allpool näidatud.

ALTER TABLE ADD käsk lisab Course_Duration veeru

Kursuse_pealkirja veerud, sh äsja lisatud Kursuse_kestuse veerg

Tabelikujundaja kasutamine

Tabelit saab muuta ka kasutajaliidese kaudu, kasutades tabeli kujundajat.

Step 1) Paremklõpsake olemasoleval tabelil > Kujundus, nagu allpool näidatud.

Paremklõpsake tabelit Course_Title ja valige Design (Kujundus)

Step 2) Lisa veeru nimi kujul Course_Start_Date ja vali selle andmetüüp.

Course_Start_Date veeru ja selle andmetüübi lisamine tabeli kujundajasse

Step 3) Uue veeru salvestamiseks vajutage CTRL+S. Uus veerg nimega Course_Start_Date luuakse Course_Title tabelisse, nagu allpool näidatud.

Course_Title tabel, mis kuvab salvestatud Course_Start_Date veeru

Tabeli kustutamine SQL Serveris

Tabeli kustutatakse siis, kui seda enam vaja pole.

SQL Serveris on tabeli kustutamiseks kaks võimalust:

  • SQL Server Management Studio kasutamine.
  • T-SQL: kustuta tabel DROP TABLE abil.

SQL Serveri haldusstuudio kasutamine

Step 1) Paremklõpsake olemasoleval tabelil > Kustuta, et leida tabel nimega Course_Title, nagu allpool näidatud.

Paremklõpsake tabelil Course_Title ja valige Kustuta.

Step 2) Klõpsake aknas „Kustuta objekt” nuppu OK.

Objekti kustutamise kinnitusaken nupuga OK

Tabel „Course_Title” on nüüd tabelite loendist kustutatud, nagu allpool näidatud.

Objektihalduri tabeli loend pärast Course_Title tabeli kustutamist

T-SQL: Tabeli kustutamine

Allpool on tabeli eemaldamise süntaks.

süntaksit:

DROP TABLE <tableName>;

Parameeter tableName on kustutatava tabeli nimi.

Päring:

DROP TABLE COURSE_NAMES;

Step 1) Käivitage päring, klõpsates nuppu „Käivita“. Tabel „COURSE_NAMES“ kustutatakse tabelite loendist, nagu allpool näidatud.

DROP TABLE käsk eemaldab COURSE_NAMES tabeli

Objektihalduri tabeli loend pärast COURSE_NAMES tabeli eemaldamist

Teise võimalusena näitab allikas käsku DELETE TABLE, mis on mõeldud ainult ridade (andmete) eemaldamiseks, jättes samal ajal tabeli struktuuri puutumata, et tabelit saaks hiljem uuesti kasutada.

süntaksit:

DELETE TABLE <Table name>;

Märge: Standardses T-SQL-is eemaldatakse read järgmiselt: DELETE FROM <table>ja laud tühjendatakse kiiresti koos TRUNCATE TABLE <table>; kogu tabel eemaldatakse käsuga DROP TABLE, nagu eespool näidatud.

Huvitavaid fakte!

  • Suuri faile, näiteks XML-i või pilte, saab veergu salvestada, kasutades suurte objektide andmetüüpe, näiteks VARBINARY(MAX), VARCHAR(MAX) või XML-tüüpi (SQL Server ei kasuta seda tüüpi). Oracle-stiilis BLOB ja CLOB nimed).
  • DELETE eemaldab ainult read ja seda saab tehingu sees tagasi võtta, samas kui DROP eemaldab kogu tabeli struktuuri; SQL Serveris saab isegi DROP-i tagasi võtta, kui see töötab selgesõnalise tehingu sees.

KKK

DELETE eemaldab valitud read ja logitakse täielikult. TRUNCATE eemaldab kiiresti kõik read ja lähtestab identiteediväärtused. DROP eemaldab kogu tabeli, selle andmed ja struktuuri. SQL Serveris saab kõiki kolme tagasi võtta ühe selgesõnalise tehingu sees.

Kasutage käsku DROP TABLE IF EXISTS table_name, mis on saadaval alates SQL Server 2016-st. See eemaldab tabeli, kui see on olemas, ja ei tee midagi, kui see puudub, vältides seega viga. Vanemate versioonide puhul kontrollige enne tabeli eemaldamist OBJECT_ID-d.ping.

SQL Serveril puudub RENAME TABLE käsk. Selle asemel käivitage süsteemi salvestatud protseduur sp_rename, näiteks EXEC sp_rename 'old_name', 'new_name'. Värskendage sõltuvaid vaateid, protseduure ja koodi hiljem, sest sp_rename ei muuda neid viiteid automaatselt.

Jah. Käsk ALTER TABLE table ALTER COLUMN column new_type muudab veeru andmetüüpi ja käsk ALTER TABLE table DROP COLUMN column eemaldab selle. Muudatus õnnestub ainult siis, kui olemasolevad andmed on ühilduvad, seega testige esmalt teisendusi ja varundage andmed.

Määrake piirangud tabeli CREATE TABLE sees, näiteks Course_ID INT PRIMARY KEY, või lisage need hiljem käsuga ALTER TABLE ADD CONSTRAINT. esmane võti jõustab unikaalsust, samal ajal kui a võõras võti lingib ridu tabelite vahel.

Ajutine tabel, mille nimeks on eesliide #, luuakse tempdb-s ja see kustutatakse automaatselt seansi lõppedes. Tavaline tabel on püsiv, kuni see kustutatakse. Ajutised tabelid sobivad lühiajaliste vahetulemuste jaoks partii või protseduuri sees.

Jah. GitHubi koopia oskab loomuliku keele viipadest luua CREATE, ALTER ja DROP TABLE skripte ning soovitada veerge, andmetüüpe ja piiranguid. Enne tootmises käivitamist vaadake alati loodud skeem, võtmed ja tühistatavus üle.

Tehisintellekti ja masinõppe tööriistad soovitavad näidisandmete ja päringumustrite põhjal tabelistruktuure, andmetüüpe ja indekseid, märgistavad üleliigsed või ülemõõdulised veerud ning hoiatavad riskantsete DROP- või ALTER-toimingute eest. Arendaja kinnitab iga soovituse enne selle rakendamist.

Võta see postitus kokku järgmiselt: