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

โšก Rezumat inteligent

Tabelele SQL Server stocheazฤƒ datele รฎn rรขnduri ศ™i coloane. Transact-SQL utilizeazฤƒ CREATE TABLE pentru a construi un tabel, ALTER TABLE pentru a adฤƒuga sau modifica coloane ศ™i DROP TABLE pentru a elimina tabelul, datele ศ™i structura sa.

  • ๐Ÿงฑ Ce este un tabel: Un tabel stocheazฤƒ datele รฎn rรขnduri ศ™i coloane ศ™i este obiectul de bazฤƒ pentru stocarea datelor รฎntr-o bazฤƒ de date.
  • ๐Ÿ› ๏ธ CREAศšI TABEL: Instrucศ›iunea CREATE TABLE defineศ™te fiecare coloanฤƒ cu un nume, un tip de date ศ™i o setare NULL sau NOT NULL.
  • ๐Ÿ“‹ Creaศ›i din ceea ce existฤƒ: SELECT โ€ฆ INTO copiazฤƒ coloanele ศ™i rรขndurile selectate dintr-un tabel existent รฎntr-un tabel nou.
  • โž• ALTER TABLE: ALTER TABLE โ€ฆ ADD adaugฤƒ coloane noi la un tabel fฤƒrฤƒ a-l recrea.
  • ๐Ÿ—‘๏ธ TABEL DE ELIMINARE: Funcศ›ia DROP TABLE eliminฤƒ รฎntregul tabel, inclusiv datele ศ™i structura sa.
  • ๐Ÿ–ฑ๏ธ Designer de tabel: SQL Server Management Studio poate, de asemenea, sฤƒ creeze ศ™i sฤƒ modifice tabele vizual prin intermediul Table Designer.

Tabele SQL Server CREATE, ALTER ศ™i DROP cu exemple T-SQL

Ce este o masฤƒ?

Un tabel este un obiect รฎn SQL Server care stocheazฤƒ datele รฎntr-un format de rรขnd ศ™i coloanฤƒ. Diagrama de mai jos prezintฤƒ rรขndurile ศ™i respectiv coloanele.

Diagrama unui tabel care stocheazฤƒ date รฎn rรขnduri ศ™i coloane

Cum se creeazฤƒ un tabel รฎn SQL Server cu T-SQL

Primul pas pentru stocarea datelor este crearea unui tabel รฎn Baza de date unde vor fi stocate datele. Dupฤƒ crearea tabelului, puteศ›i continua sฤƒ inseraศ›i rรขnduri รฎn acesta.

Puteศ›i crea un tabel รฎn urmฤƒtoarele moduri:

  • T-SQL: creeazฤƒ un tabel nou prin definirea tuturor coloanelor ศ™i a tipului lor de date.
  • T-SQL: creeazฤƒ un tabel nou folosind un tabel existent.
  • Utilizarea Designerului de tabele.

Sฤƒ studiem acest lucru รฎn detaliu.

T-SQL: Creaศ›i un tabel nou prin definirea tuturor coloanelor ศ™i a tipului lor de date

Mai jos este sintaxa pentru a crea un tabel รฎn SQL Server.

Sintaxฤƒ:

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

Aici,

  • Parametrul tableName denotฤƒ numele tabelului pe care urmeazฤƒ sฤƒ-l creaศ›i.
  • Parametrii coloana_1, coloana_2... indicฤƒ coloanele care trebuie adฤƒugate รฎn tabel.
  • O coloanฤƒ trebuie specificatฤƒ fie ca NULL, fie ca NOT NULL. Dacฤƒ nu specificaศ›i aceastฤƒ valoare, SQL Server va lua NULL ca valoare implicitฤƒ.

Sฤƒ creฤƒm un tabel de bazฤƒ cu douฤƒ coloane.

Solicitare:

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

Pre-cerinศ›ฤƒ: Selectaศ›i baza de date รฎn care doriศ›i sฤƒ creaศ›i tabelul.

Pas 1) Executaศ›i interogarea fฤƒcรขnd clic pe Executare. รŽnainte de a executa interogarea, nu existฤƒ niciun tabel, aศ™a cum se aratฤƒ mai jos.

Exploratorul de obiecte nu afiศ™eazฤƒ niciun tabel de curs รฎnainte de executarea instrucศ›iunii CREATE

Dupฤƒ rularea interogฤƒrii, faceศ›i clic pe butonul Reรฎmprospฤƒtare; noul tabel existฤƒ acum ca ศ™i Curs, aศ™a cum se aratฤƒ mai jos.

Tabelul cursului este afiศ™at รฎn Exploratorul de obiecte dupฤƒ execuศ›ie ศ™i reรฎmprospฤƒtare

Pas 2) Introduceศ›i cรขteva date. Capturile de ecran de mai jos aratฤƒ tabelul Curs nou creat, gata sฤƒ primeascฤƒ rรขnduri.

Tabelul de curs nou creat a fost selectat รฎn Exploratorul de obiecte รฎnainte de inserarea datelor

Structura tabelului de curs cu cele douฤƒ coloane ale sale afiศ™ate รฎnainte de inserarea datelor

Pรขnฤƒ acum, tabelul existฤƒ doar, dar nu conศ›ine รฎncฤƒ date.

Transact-SQL oferฤƒ instrucศ›iunea INSERT pentru inserarea datelor รฎntr-un tabel. Cu aceastฤƒ instrucศ›iune, puteศ›i insera unul sau mai multe rรขnduri รฎntr-un tabel.

Sintaxฤƒ:

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

Sintaxa de mai sus prezintฤƒ forma de bazฤƒ a comenzii atunci cรขnd se utilizeazฤƒ cuvรขntul cheie VALUES pentru a insera date รฎntr-un tabel.

Sฤƒ inserฤƒm patru rรขnduri folosind comanda 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');

Imaginea de mai jos aratฤƒ cฤƒ inserarea a patru rรขnduri a reuศ™it.

Panoul Mesaje care confirmฤƒ inserarea a patru rรขnduri รฎn tabelul Curs

Pas 3) Utilizaศ›i instrucศ›iunea SELECT pentru a vizualiza datele. Pentru a vizualiza datele รฎn SQL Server, utilizaศ›i urmฤƒtoarea sintaxฤƒ:

SELECT expression
FROM tableName
[WHERE condition];

Exemplu de interogare:

SELECT * FROM COURSE;

Tabelul a fost creat ศ™i acum conศ›ine patru รฎnregistrฤƒri. Reศ›ineศ›i cฤƒ puteศ›i crea รฎnregistrฤƒri cu o valoare duplicatฤƒ รฎn oricare dintre coloane, deoarece nu existฤƒ constrรขngeri.

Grilฤƒ de rezultate care afiศ™eazฤƒ cele patru rรขnduri de Curs returnate de SELECT

T-SQL: Crearea unui tabel nou folosind un tabel existent

Sฤƒ presupunem cฤƒ doriศ›i un alt tabel similar tabelului CURS creat mai sus, dar aveศ›i nevoie doar de coloana Nume_curs ศ™i nu de ID_curs.

Sintaxฤƒ:

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

Exemplu de interogare:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Pas 1) Executaศ›i interogarea fฤƒcรขnd clic pe Executare. Se creeazฤƒ un tabel nou numit NUME_CURSURI cu o coloanฤƒ ศ™i patru รฎnregistrฤƒri copiate din tabelul mai vechi, aศ™a cum se aratฤƒ mai jos.

Un nou tabel COURSE_NAMES a fost creat dintr-un tabel existent folosind SELECT INTO

Exemplu de interogare:

SELECT * FROM COURSE_NAMES;

Rezultatul de mai jos listeazฤƒ cele patru รฎnregistrฤƒri Course_Name din noul tabel COURSE_NAMES.

Grila de rezultate care afiศ™eazฤƒ valorile Course_Name din tabelul COURSE_NAMES

Folosind Table Designer

De asemenea, puteศ›i crea un tabel din SQL Server Management Studio IDE folosind Table Designer.

Pas 1) Faceศ›i clic dreapta pe Tabel > Nou > Tabel, aศ™a cum se aratฤƒ mai jos.

Faceศ›i clic dreapta pe Tabel, apoi pe Nou, apoi pe Tabel รฎn Exploratorul de obiecte

Pas 2) Introduceศ›i numele coloanelor ศ™i tipuri de dateศ™i alegeศ›i dacฤƒ fiecare coloanฤƒ permite valori nule.

Bara de instrumente Table Designer pentru definirea unui tabel nou

Grilฤƒ Table Designer cu nume de coloane, tipuri de date ศ™i opศ›iuni Permite valori nule

Pas 3) Apฤƒsaศ›i CTRL+S pentru a salva tabelul ศ™i introduceศ›i numele ca Titlu_curs.

Caseta de dialog Alegeศ›i Nume pentru a salva noul tabel ca Titlu_curs

Dupฤƒ ce faceศ›i clic pe Reรฎmprospฤƒtare, noul tabel apare cu numele Titlul_cursului ศ™i o coloanฤƒ numitฤƒ Nume_curs, aศ™a cum se aratฤƒ mai jos.

Tabelul Course_Title cu o singurฤƒ coloanฤƒ Course_Name รฎn Object Explorer

Modificaศ›i tabelul รฎn SQL Server

Existฤƒ douฤƒ modalitฤƒศ›i de a modifica un tabel รฎn SQL Server:

  • T-SQL: modificฤƒ tabelul prin adฤƒugarea de noi coloane.
  • Utilizarea Designerului de tabele.

T-SQL: Modificaศ›i tabelul prin inserarea coloanelor

Mai jos este sintaxa comenzii ALTER รฎn SQL:

Sintaxฤƒ:

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

Solicitare:

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

Pas 1) Executaศ›i interogarea fฤƒcรขnd clic pe Executare. Acum existฤƒ o nouฤƒ coloanฤƒ numitฤƒ Durata_Coursului รฎn tabelul Titlu_Coursului, aศ™a cum se aratฤƒ mai jos.

Instrucศ›iunea ALTER TABLE ADD care adaugฤƒ coloana Course_Duration

Coloanele Course_Title, inclusiv coloana Course_Duration nou adฤƒugatฤƒ

Folosind Table Designer

De asemenea, puteศ›i modifica un tabel din interfaศ›a cu utilizatorul folosind Table Designer.

Pas 1) Faceศ›i clic dreapta pe tabelul existent > Design, aศ™a cum se aratฤƒ mai jos.

Faceศ›i clic dreapta pe tabelul Course_Title ศ™i alegeศ›i Design

Pas 2) Adฤƒugaศ›i numele coloanei ca Course_Start_Date ศ™i selectaศ›i tipul de date al acesteia.

Adฤƒugarea coloanei Course_Start_Date ศ™i a tipului sฤƒu de date รฎn Table Designer

Pas 3) Apฤƒsaศ›i CTRL+S pentru a salva coloana nou adฤƒugatฤƒ. O nouฤƒ coloanฤƒ numitฤƒ Course_Start_Date este creatฤƒ รฎn tabelul Course_Title, aศ™a cum se aratฤƒ mai jos.

Tabelul Course_Title care afiศ™eazฤƒ coloana Course_Start_Date salvatฤƒ

ศ˜tergeศ›i tabelul din SQL Server

ศ˜tergeศ›i un tabel atunci cรขnd nu mai este necesar.

Existฤƒ douฤƒ modalitฤƒศ›i de a ศ™terge un tabel รฎn SQL Server:

  • Utilizarea SQL Server Management Studio.
  • T-SQL: ศ™terge tabelul cu DROP TABLE.

Utilizarea SQL Server Management Studio

Pas 1) Faceศ›i clic dreapta pe tabelul existent > ศ˜tergere, pentru tabelul numit Titlul_cursului, aศ™a cum se aratฤƒ mai jos.

Faceศ›i clic dreapta pe tabelul Course_Title ศ™i alegeศ›i ศ˜tergere

Pas 2) รŽn fereastra ศ˜tergere obiect, faceศ›i clic pe OK.

Fereastra de confirmare a ศ™tergerii obiectului cu butonul OK

Tabelul Course_Title este acum ศ™ters din lista de tabele, aศ™a cum se aratฤƒ mai jos.

Lista tabelelor din Exploratorul de obiecte dupฤƒ ศ™tergerea tabelului Titlu_curs

T-SQL: ศ˜tergerea tabelului

Mai jos este sintaxa pentru eliminarea unui tabel.

Sintaxฤƒ:

DROP TABLE <tableName>;

Parametrul tableName este numele tabelului care urmeazฤƒ sฤƒ fie ศ™ters.

Solicitare:

DROP TABLE COURSE_NAMES;

Pas 1) Executaศ›i interogarea fฤƒcรขnd clic pe Executare. Tabelul COURSE_NAMES este ศ™ters din lista de tabele, aศ™a cum se aratฤƒ mai jos.

Instrucศ›iunea DROP TABLE eliminฤƒ tabelul COURSE_NAMES

Lista tabelelor din Object Explorer dupฤƒ eliminarea tabelului COURSE_NAMES

Alternativ, sursa afiศ™eazฤƒ o comandฤƒ DELETE TABLE menitฤƒ sฤƒ elimine doar rรขndurile (datele), lฤƒsรขnd structura tabelului intactฤƒ, astfel รฎncรขt tabelul sฤƒ poatฤƒ fi reutilizat ulterior.

Sintaxฤƒ:

DELETE TABLE <Table name>;

Notฤƒ: รŽn T-SQL standard, rรขndurile sunt eliminate cu DELETE FROM <table>ศ™i o masฤƒ este golitฤƒ rapid cu TRUNCATE TABLE <table>; รฎntregul tabel este eliminat cu comanda DROP TABLE, aศ™a cum se aratฤƒ mai sus.

Fapte interesante!

  • Fiศ™iere mari, cum ar fi XML sau imagini, pot fi stocate รฎntr-o coloanฤƒ folosind tipuri de date pentru obiecte mari, cum ar fi VARBINARY(MAX), VARCHAR(MAX) sau tipul XML (SQL Server nu utilizeazฤƒ Oracle-nume BLOB ศ™i CLOB).
  • DELETE eliminฤƒ doar rรขndurile ศ™i poate fi derulatฤƒ รฎnapoi รฎn cadrul unei tranzacศ›ii, รฎn timp ce DROP eliminฤƒ รฎntreaga structurฤƒ a tabelului; รฎn SQL Server, chiar ศ™i DROP poate fi derulatฤƒ รฎnapoi atunci cรขnd ruleazฤƒ รฎn interiorul unei tranzacศ›ii explicite.

รŽntrebฤƒri frecvente

DELETE eliminฤƒ rรขndurile selectate ศ™i este รฎnregistratฤƒ complet รฎn jurnal. TRUNCATE eliminฤƒ rapid toate rรขndurile ศ™i reseteazฤƒ valorile de identitate. DROP eliminฤƒ รฎntregul tabel, datele ศ™i structura sa. รŽn SQL Server, toate trei pot fi derulate รฎnapoi รฎn cadrul unei tranzacศ›ii explicite.

Foloseศ™te DROP TABLE IF EXISTS table_name, disponibilฤƒ รฎncepรขnd cu SQL Server 2016. Eliminฤƒ tabelul atunci cรขnd este prezent ศ™i nu face nimic atunci cรขnd acesta lipseศ™te, evitรขnd o eroare. Pe versiunile mai vechi, verificฤƒ OBJECT_ID รฎnainte de eliminare.ping.

SQL Server nu are nicio instrucศ›iune RENAME TABLE. รŽn schimb, executaศ›i procedura stocatฤƒ de sistem sp_rename, de exemplu EXEC sp_rename โ€žnume_vechiโ€, โ€žnume_nouโ€. Actualizaศ›i ulterior vizualizฤƒrile, procedurile ศ™i codul dependente, deoarece sp_rename nu modificฤƒ automat aceste referinศ›e.

Da. Codul de date al unei coloane din tabelul ALTER TABLE, coloana `new_type`, modificฤƒ tipul de date al unei coloane, iar codul de date al unei coloane din tabelul ALTER TABLE, `DROP COLUMN`, รฎl eliminฤƒ. Modificarea are succes numai atunci cรขnd datele existente sunt compatibile, aศ™adar testaศ›i conversiile ศ™i faceศ›i o copie de rezervฤƒ mai รฎntรขi.

Definiศ›i constrรขngeri รฎn interiorul CREATE TABLE, cum ar fi Course_ID INT PRIMARY KEY, sau adฤƒugaศ›i-le ulterior cu ALTER TABLE ADD CONSTRAINT. cheia principala impune unicitatea, รฎn timp ce un cheie externฤƒ leagฤƒ rรขnduri รฎntre tabele.

Un tabel temporar, denumit cu prefixul #, este creat รฎn tempdb ศ™i eliminat automat la sfรขrศ™itul sesiunii. Un tabel obiศ™nuit este permanent pรขnฤƒ cรขnd รฎl eliminaศ›i. Tabelele temporare sunt potrivite pentru rezultate intermediare de scurtฤƒ duratฤƒ รฎn cadrul unui lot sau al unei proceduri.

Da. Copilotul GitHub poate produce scripturi CREATE, ALTER ศ™i DROP TABLE din prompturi รฎn limbaj natural ศ™i poate sugera coloane, tipuri de date ศ™i constrรขngeri. Verificaศ›i รฎntotdeauna schema, cheile ศ™i nulabilitatea generate รฎnainte de a o rula รฎn producศ›ie.

Instrumentele de inteligenศ›ฤƒ artificialฤƒ ศ™i รฎnvฤƒศ›are automatฤƒ recomandฤƒ structuri de tabele, tipuri de date ศ™i indexuri din date eศ™antion ศ™i modele de interogฤƒri, semnaleazฤƒ coloane redundante sau supradimensionate ศ™i avertizeazฤƒ despre operaศ›iunile DROP sau ALTER riscante. Dezvoltatorul confirmฤƒ fiecare sugestie รฎnainte de a o aplica.

Rezumaศ›i aceastฤƒ postare cu: