Creare una tabella con SQL Server

  • Di
  • 2023-05-11 - 4 minuti
banner

Cosa vedrai

Definizione di tabella

Le tabelle sono oggetti presenti all’interno di un database che contengono tutti i dati. Nelle tabelle, i dati sono organizzati in modo strutturato tramite righe e colonne in un formato simile a quello di un foglio di calcolo, dove ogni riga rappresenta un record e ogni colonna un campo.

Come funziona

Per creare una nuova tabella tramite SQL Server Managament Studio, è sufficiente cliccare con il destro sulla voce “Tabelle” presente all’interno del database di nostro interesse e scegliere “Nuovo”:

Opzione per creare una tabella tramite SQL Server Management Studio

Si aprirà una finestra che ci permetterà di scegliere quali sono le colonne da aggiungere alla nostra tabella, e soprattutto le tipologie di dato.

Nel primo campo, inseriamo il nome della colonna. Nel secondo campo, il tipo di dato che vogliamo rappresentare e l’eventuale dimensione.

Infine, possiamo decidere di permettere o meno la creazione di record in cui la colonna presenta dei valori nulli.

Un esempio di utilizzo dei diversi tipi di dato è riportato di seguito:

Esempio di tabella tramite SQL Server Management Studio

Dopo aver definito le informazioni riguardanti le colonne, clicchiamo sul tasto per salvare (o usiamo “Ctrl+S”) e scegliamo il nome che la tabella assumerà. La tabella non sarà visibile subito nell’elenco a sinistra degli oggetti: sarà necessario cliccare con il destro sul database e selezionare “Aggiorna”:

Nuova tabella

Tipi di dato

Ne esistono moltissime varianti, di cui viene riportato un elenco dettagliato qui sotto:

Dati testuali

Tipo di datoDescrizioneDimensione massima
char(n)Lunghezza fissa di una stringa8,000 caratteri
varchar(n)Lunghezza variabile di una stringa8,000 caratteri
varchar(max)Lunghezza variabile di una stringa1,073,741,824 caratteri
textLunghezza variabile di una stringa fino a 2GB2GB
ncharLunghezza fissa di una stringa Unicode4,000 caratteri
nvarcharLunghezza variabile di una stringa Unicode4,000 caratteri
nvarchar(max)Lunghezza variabile di una stringa Unicode con massimo536,870,912 caratteri
ntextLunghezza variabile di una stringa Unicode2GB
binary(n)Lunghezza variabile di una stringa binaria8,000 bytes
varbinaryLunghezza variabile di una stringa binaria8,000 bytes
varbinary(max)Lunghezza variabile di una stringa binaria con massimo2GB

La differenza tra un campo con lunghezza fissa e una variabile sta nell’allocazione dello spazio: se viene definito un campo di tipo testuale con lunghezza variabile di 100 caratteri, nel caso in cui il valore del record inserito sia inferiore, lo spazio viene “trimmato”, ossia accorciato all’effettiva lunghezza del campo. Un esempio sono i dati anagrafici di una persona, che variano in lunghezza del nome e del cognome.

Se usassimo invece un campo di tipo testuale ma a lunghezza fissa, ogni record avrebbe allocato per sé sempre quella dimensione, anche in caso di utilizzo parziale. Un esempio è il campo che definisce il codice fiscale!

Dati numerici

Tipo di datoDescrizioneDimensione massima
bit0,1 o NULL
tinyint[0, 255]1 byte
smallint[-32768,32767]2 bytes
int[-2147483648,2147483647]4 bytes
bigint[-9223372036854775808,9223372036854775807]8 bytes
numeric(p,s)[-10^38 +1, 10^38 –1]5-17 bytes
smallmoney[-214748.3648,214748.3647]4 bytes
money[-922337203685477.5808,922337203685477.5807]8 bytes
float(n)[-1.79E + 308, 1.79E + 308]4/8 bytes
real[-3.40E + 38 , 3.40E + 38]4 bytes

Dati temporali

Tipo di datoDescrizioneDimensione massima
datetimeAccuratezza in millisecondi8 bytes
datetime2Accuratezza in nanosecondi6-8 bytes
smalldatetimeAccuratezza in minuti4 bytes
dateData per memorizzare giorno, mese e anno3 bytes
timeTempo espresso con una precisione in termini di nanosecondi3-5 bytes
datetimeoffsetCome datetime2, ma con la possibilità di specificare la timezone8-10 bytes
timestampTempo espresso in millisecondi4 bytes

Qual è la differenza tra timestamp e time? Un campo di tipo timestamp viene aggiornato automaticamente ogni volta che un valore presente nella riga viene aggiornato o modificato ed è basato su un valore interno al database.

Ogni tabella dovrebbe avere un solo campo di tipo timestamp.

Tip

Qual è la data minima che un campo datetime supporta? Il primo gennaio 1753.

E la data massima? Il 31 dicembre 9999.

Risorse utili

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source

Iscriviti alla newsletter

Per non perderti gli ultimi articoli e per vincere biglietti e gadget TheRedCode

Riceverai una volta al mese (o anche meno) gli articoli più interessanti pubblicati sul blog, e potrai provare a vincere un biglietto per uno dei prossimi eventi!

Andiamo!