Tabella CREATE, ALTER, DROP di SQL Server [Esempi T-SQL]

โšก Riepilogo intelligente

Le tabelle di SQL Server memorizzano i dati in righe e colonne. Transact-SQL utilizza CREATE TABLE per creare una tabella, ALTER TABLE per aggiungere o modificare le colonne e DROP TABLE per rimuovere la tabella, i relativi dati e la sua struttura.

  • ๐Ÿงฑ Cos'รจ una tabella? Una tabella memorizza i dati in righe e colonne ed รจ l'oggetto base per la gestione dei dati in un database.
  • ๏ธ CREA TABELLA: L'istruzione CREATE TABLE definisce ogni colonna con un nome, un tipo di dati e un'impostazione NULL o NOT NULL.
  • ๐Ÿ“‹ Crea da un elemento esistente: SELECT โ€ฆ INTO copia le colonne e le righe selezionate da una tabella esistente in una tabella completamente nuova.
  • โž• MODIFICA TABELLA: ALTER TABLE โ€ฆ ADD aggiunge nuove colonne a una tabella senza ricrearla.
  • ๐Ÿ—‘๏ธ TABELLA DI RILASCIO: Il comando DROP TABLE rimuove l'intera tabella, inclusi i dati e la struttura.
  • ๐Ÿ–ฑ๏ธ Progettista della tabella: SQL Server Management Studio consente inoltre di creare e modificare tabelle in modo visivo tramite Table Designer.

Esempi di CREAZIONE, ALTERAZIONE e ELIMINAZIONE di tabelle in SQL Server con T-SQL

Cos'รจ una tabella?

Una tabella รจ un oggetto in SQL Server che memorizza i dati in un formato a righe e colonne. Il diagramma seguente mostra rispettivamente righe e colonne.

Diagramma di una tabella che memorizza i dati in righe e colonne

Come creare una tabella in SQL Server con T-SQL

Il primo passo per memorizzare i dati รจ creare una tabella nel banca dati dove risiederanno i dati. Dopo aver creato la tabella, รจ possibile continuare a inserirvi righe.

รˆ possibile creare una tabella nei seguenti modi:

  • T-SQL: crea una nuova tabella definendo tutte le colonne e il loro tipo di dati.
  • T-SQL: crea una nuova tabella utilizzando una tabella esistente.
  • Utilizzo di Table Designer.

Analizziamo la questione nel dettaglio.

T-SQL: Creare una nuova tabella definendo tutte le colonne e il loro tipo di dati.

Di seguito รจ riportata la sintassi per creare una tabella in SQL Server.

Sintassi:

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

Qui,

  • Il parametro tableName indica il nome della tabella che stai per creare.
  • I parametri colonna_1, colonna_2โ€ฆ indicano le colonne da aggiungere alla tabella.
  • Una colonna deve essere specificata come NULL o NOT NULL. Se non si specifica nulla, SQL Server utilizza NULL come valore predefinito.

Creiamo una tabella di base con due colonne.

Query:

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

Pre-requisito: Seleziona il database in cui devi creare la tabella.

Passo 1) Esegui la query facendo clic su Esegui. Prima di eseguire la query, non esiste alcuna tabella, come mostrato di seguito.

Esplora oggetti non mostra la tabella Course prima dell'esecuzione dell'istruzione CREATE

Dopo aver eseguito la query, fai clic sul pulsante Aggiorna; la nuova tabella ora esiste con il nome Corso, come mostrato di seguito.

Tabella dei corsi visualizzata in Esplora oggetti dopo l'esecuzione e l'aggiornamento

Passo 2) Inserisci alcuni dati. Gli screenshot qui sotto mostrano la tabella Course appena creata, pronta a ricevere righe.

La tabella Corso appena creata รจ selezionata in Esplora oggetti prima dell'inserimento dei dati.

Struttura della tabella dei corsi con le sue due colonne visualizzate prima dell'inserimento dei dati.

Finora la tabella esiste soltanto, ma non contiene ancora alcun dato.

Transact-SQL fornisce l'istruzione INSERT per inserire dati in una tabella. Con questa istruzione, รจ possibile inserire una o piรน righe in una tabella.

Sintassi:

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

La sintassi sopra riportata mostra la forma base del comando quando si utilizza la parola chiave VALUES per inserire dati in una tabella.

Inseriamo quattro righe utilizzando il comando 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');

L'immagine sottostante mostra che l'inserimento di quattro righe รจ andato a buon fine.

Pannello dei messaggi che conferma l'inserimento di quattro righe nella tabella Corso

Passo 3) Utilizzare l'istruzione SELECT per visualizzare i dati. Per visualizzare i dati in SQL Server, utilizzare la seguente sintassi:

SELECT expression
FROM tableName
[WHERE condition];

Interrogazione di esempio:

SELECT * FROM COURSE;

La tabella รจ stata creata e ora contiene quattro record. Nota che puoi creare record con un valore duplicato in una qualsiasi delle colonne, perchรฉ non ci sono vincoli.

Griglia dei risultati che mostra le quattro righe del corso restituite da SELECT

T-SQL: Creare una nuova tabella utilizzando una tabella esistente

Supponiamo di voler creare un'altra tabella simile alla tabella COURSE descritta in precedenza, ma di aver bisogno solo della colonna Course_Name e non di Course_ID.

Sintassi:

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

Interrogazione di esempio:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Passo 1) Esegui la query facendo clic su Esegui. Verrร  creata una nuova tabella denominata COURSE_NAMES con una colonna e quattro record copiati dalla tabella precedente, come mostrato di seguito.

Nuova tabella COURSE_NAMES creata da una tabella esistente utilizzando SELECT INTO

Interrogazione di esempio:

SELECT * FROM COURSE_NAMES;

Il risultato seguente elenca i quattro record Course_Name nella nuova tabella COURSE_NAMES.

Griglia dei risultati che mostra i valori di Course_Name nella tabella COURSE_NAMES

Utilizzo di Progettazione tabelle

รˆ anche possibile creare una tabella dalla SQL Server Management Studio IDE che utilizza Table Designer.

Passo 1) Fare clic con il pulsante destro del mouse su Tabella > Nuovo > Tabella, come mostrato di seguito.

Fai clic con il pulsante destro del mouse su Tabella, quindi su Nuovo e infine su Tabella in Esplora oggetti.

Passo 2) Inserisci i nomi delle colonne e tipi di datie scegliere se ciascuna colonna consente valori nulli.

Barra degli strumenti di Table Designer per definire una nuova tabella

Griglia di progettazione tabelle con nomi di colonna, tipi di dati e opzioni per consentire valori nulli.

Passo 3) Premi CTRL+S per salvare la tabella e inserisci il nome come Course_Title.

Nella finestra di dialogo Seleziona Nome, salva la nuova tabella come Course_Title.

Dopo aver cliccato su Aggiorna, viene visualizzata la nuova tabella con il nome Course_Title e una colonna denominata Course_Name, come mostrato di seguito.

Tabella Course_Title con una singola colonna Course_Name in Esplora oggetti

Modificare la tabella in SQL Server

Esistono due modi per modificare una tabella in SQL Server:

  • T-SQL: modificare la tabella aggiungendo nuove colonne.
  • Utilizzo di Table Designer.

T-SQL: modifica la tabella inserendo colonne

Di seguito รจ riportata la sintassi del comando ALTER in SQL:

Sintassi:

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

Query:

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

Passo 1) Esegui la query facendo clic su Esegui. Una nuova colonna denominata Course_Duration ora esiste all'interno della tabella Course_Title, come mostrato di seguito.

Istruzione ALTER TABLE ADD per aggiungere la colonna Course_Duration

Le colonne Course_Title includono la colonna Course_Duration, aggiunta di recente.

Utilizzo di Progettazione tabelle

รˆ inoltre possibile modificare una tabella dall'interfaccia utente utilizzando Table Designer.

Passo 1) Fai clic con il pulsante destro del mouse sulla tabella esistente > Progetta, come mostrato di seguito.

Fai clic con il pulsante destro del mouse sulla tabella Course_Title e scegli Progettazione.

Passo 2) Aggiungi la colonna denominata Course_Start_Date e seleziona il relativo tipo di dati.

Aggiunta della colonna Course_Start_Date e del relativo tipo di dati in Table Designer

Passo 3) Premi CTRL+S per salvare la colonna appena aggiunta. Nella tabella Course_Title viene creata una nuova colonna denominata Course_Start_Date, come mostrato di seguito.

Tabella Course_Title che mostra la colonna Course_Start_Date salvata

Elimina tabella in SQL Server

Una tabella viene eliminata quando non รจ piรน necessaria.

Esistono due modi per eliminare una tabella in SQL Server:

  • Utilizzo di SQL Server Management Studio.
  • T-SQL: elimina la tabella con DROP TABLE.

Utilizzo di SQL Server Management Studio

Passo 1) Fai clic con il pulsante destro del mouse sulla tabella esistente > Elimina, per la tabella denominata Course_Title, come mostrato di seguito.

Fai clic con il pulsante destro del mouse sulla tabella Course_Title e scegli Elimina

Passo 2) Nella finestra Elimina oggetto, fai clic su OK.

Finestra di conferma per l'eliminazione dell'oggetto con il pulsante OK

La tabella Course_Title รจ stata eliminata dall'elenco delle tabelle, come mostrato di seguito.

Elenco delle tabelle di Esplora oggetti dopo l'eliminazione della tabella Course_Title

T-SQL: Elimina tabella

Di seguito รจ riportata la sintassi per eliminare una tabella.

Sintassi:

DROP TABLE <tableName>;

Il parametro tableName รจ il nome della tabella da eliminare.

Query:

DROP TABLE COURSE_NAMES;

Passo 1) Eseguire la query facendo clic su Esegui. La tabella COURSE_NAMES viene eliminata dall'elenco delle tabelle, come mostrato di seguito.

Istruzione DROP TABLE per rimuovere la tabella COURSE_NAMES

Elenco delle tabelle di Esplora oggetti dopo l'eliminazione della tabella COURSE_NAMES

In alternativa, il codice sorgente mostra un comando DELETE TABLE pensato per rimuovere solo le righe (dati) lasciando intatta la struttura della tabella, in modo che quest'ultima possa essere riutilizzata in seguito.

Sintassi:

DELETE TABLE <Table name>;

Nota: Nel T-SQL standard, le righe vengono rimosse con DELETE FROM <table>e un tavolo viene svuotato rapidamente con TRUNCATE TABLE <table>; l'intera tabella viene rimossa con DROP TABLE, come mostrato sopra.

Fatti interessanti!

  • I file di grandi dimensioni come XML o immagini possono essere memorizzati in una colonna utilizzando tipi di dati di oggetti di grandi dimensioni come VARBINARY(MAX), VARCHAR(MAX) o il tipo XML (SQL Server non utilizza il Oracle(Nomi BLOB e CLOB in stile).
  • DELETE rimuove solo le righe e puรฒ essere annullato all'interno di una transazione, mentre DROP rimuove l'intera struttura della tabella; in SQL Server, anche DROP puรฒ essere annullato se eseguito all'interno di una transazione esplicita.

DOMANDE FREQUENTI

DELETE elimina le righe selezionate e registra completamente l'operazione. TRUNCATE elimina rapidamente tutte le righe e reimposta i valori di identitร . DROP elimina l'intera tabella, i relativi dati e la sua struttura. In SQL Server, tutte e tre le operazioni possono essere annullate tramite rollback all'interno di una transazione esplicita.

Utilizzare DROP TABLE IF EXISTS nome_tabella, disponibile da SQL Server 2016. Questo comando rimuove la tabella se presente e non fa nulla se assente, evitando cosรฌ un errore. Nelle versioni precedenti, verificare OBJECT_ID prima di eliminare la tabella.ping.

SQL Server non dispone di un'istruzione RENAME TABLE. In alternativa, รจ possibile utilizzare la stored procedure di sistema sp_rename, ad esempio EXEC sp_rename 'vecchio_nome', 'nuovo_nome'. Successivamente, รจ necessario aggiornare le viste, le procedure e il codice dipendenti, poichรฉ sp_rename non modifica automaticamente tali riferimenti.

Sรฌ. Il comando ALTER TABLE table ALTER COLUMN column new_type modifica il tipo di dati di una colonna, mentre ALTER TABLE table DROP COLUMN column la rimuove. La modifica ha successo solo se i dati esistenti sono compatibili, quindi รจ consigliabile testare le conversioni ed eseguire prima un backup.

Definisci i vincoli all'interno di CREATE TABLE, come Course_ID INT PRIMARY KEY, oppure aggiungili in seguito con ALTER TABLE ADD CONSTRAINT. chiave primaria impone l'unicitร , mentre un chiave esterna collega le righe tra le tabelle.

Una tabella temporanea, il cui nome inizia con il prefisso #, viene creata in tempdb ed eliminata automaticamente al termine della sessione. Una tabella normale, invece, rimane permanente finchรฉ non viene eliminata manualmente. Le tabelle temporanee sono adatte a contenere risultati intermedi di breve durata all'interno di un batch o di una procedura.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub Puรฒ generare script CREATE, ALTER e DROP TABLE a partire da prompt in linguaggio naturale e suggerire colonne, tipi di dati e vincoli. Prima di eseguirlo in produzione, รจ sempre consigliabile rivedere lo schema generato, le chiavi e la possibilitร  di valori nulli.

Gli strumenti di intelligenza artificiale e apprendimento automatico suggeriscono strutture di tabelle, tipi di dati e indici a partire da dati di esempio e modelli di query, segnalano colonne ridondanti o sovradimensionate e avvertono in merito a operazioni DROP o ALTER rischiose. Lo sviluppatore conferma ogni suggerimento prima di applicarlo.

Riassumi questo post con: