SQL Server Data Types Tutorial (Italiano)

In SQL le colonne di una tabella sono definite per memorizzare un tipo specifico di valore come numeri, date o testo; questi sono chiamati tipi di dati. Con oltre trenta tipi di tipi di dati SQL Server tra cui scegliere, i tipi di dati possono sembrare intimidatorio, ma in realtà, ci sono solo alcuni comunemente utilizzati nei database.

Una volta compreso i tipi di dati in generale, non è un argomento complicato. Arriverai anche a capire perché c’è bisogno di tipi di dati e la ragione per cui ci sono così tante varietà.,

In questo articolo andremo oltre i tipi di dati più comuni e le migliori pratiche per il loro utilizzo.

Tutti gli esempi di questa lezione sono basati su Microsoft SQL Server Management Studio e il database AdventureWorks2012. Iniziare a utilizzare questi strumenti gratuiti con la mia guida Per iniziare a utilizzare SQL Server.

Quali sono i tipi di dati SQL Server?

Prima di entrare nei tipi di dati utilizzati in SQL Server, penso che sia importante per tutti capire cos’è un tipo di dati e perché sono necessari per l’uso nei computer.

Per il nostro esempio, parleremo di una persona., Se stavi pensando alle informazioni che potresti usare per descrivere una persona potresti pensare di raccogliere il loro nome, data di nascita, peso e numero di bambini. Per ciascuno di questi attributi, i dati rientrano generalmente in diverse categorie.

I nomi vengono memorizzati come testo, date di nascita come date di calendario e peso come valori decimali e un numero di bambini come numeri interi. Ciascuna di queste categorie di valori è un tipo di dati.

Come i tipi SQL aiutano

I tipi di dati definiscono le caratteristiche dei dati che possono essere memorizzati in una posizione come una colonna di database., Un tipo di dati definisce il possibile insieme di valori accettati. Ad esempio, un tipo di INT che sta per integer in SQL Server può accettare solo numeri interi, i valori decimali non sono consentiti.

Ecco un elenco di alcune persone e delle loro età

Age – Just Text Values

Riesci a vedere il problema con queste età? Sono tutti in un formato incoerente. Non solo sono difficili da leggere, ma l’ordinamento e il calcolo dei dati è difficile., Utilizzando i tipi di dati di SQL Server, che impongono il tipo previsto di dati da memorizzare, possiamo ottenere un risultato molto migliore. Qui è la stessa tabella con l’età mostrato come interi

> Età conforme al tipo di dati INT

Quando l’età è definito come un numero intero è l’aspettativa dell’inserimento dei dati come numeri interi.

Inoltre, senza entrare nei dettagli tecnici, è possibile vedere la memorizzazione dell’età come un numero intero occupa molto meno spazio rispetto all’età nella prima tabella., Questo potrebbe non sembrare una considerazione enorme con piccoli database, ma quando si lavora con i dati su smartphone o scenari di “big data”, queste considerazioni si sommano.

Una volta che il sistema comprende il tipo di dati, può quindi ordinare i dati in un ordine che abbia senso ed eseguire calcoli.

Motivi per utilizzare i tipi di dati SQL Server

Ecco alcuni motivi per cui i tipi di dati sono importanti:

  1. I dati vengono memorizzati in un formato coerente e noto.
  2. Conoscere il tipo di dati consente di sapere quali calcoli e formulazioni è possibile utilizzare sulla colonna.,
  3. I tipi di dati influenzano l’archiviazione. Alcuni valori occupano più spazio se memorizzati in un tipo di dati rispetto a un altro. Prendete le nostre tabelle di età sopra per esempio.
  4. I tipi di dati influenzano le prestazioni. Meno tempo il database deve dedurre valori o convertirli meglio è. “Il 32 dicembre 2015 è una data?”

Tipi di dati SQL Server comunemente usati

In SQL si definisce il tipo di dati da memorizzare all’interno delle colonne. Alcuni esempi includono dati di testo o numerici.,

Questo è il tipo di dati della colonna e una delle sue proprietà più importanti in quanto determina da solo se un valore è valido per l’archiviazione in una colonna.

Esistono oltre trenta tipi di dati diversi tra cui è possibile scegliere quando si definiscono le colonne, alcuni hanno usi specifici, come la memorizzazione di immagini.

In questo articolo andremo a coprire i sette tipi di dati che si incontrano più frequentemente nel vostro uso quotidiano di SQL., Questi sono:

  • INT
  • VARCHAR, NVARCHAR
  • DATETIME
  • DECIMAL, FLOAT
  • BIT

INT – Integer Data Type

Il tipo di dati integer memorizza numeri interi. Gli esempi includono -23, 0, 5 e 10045. I numeri interi non includono cifre decimali. Poiché SQL Server utilizza un numero di parole del computer per rappresentare un numero intero, esistono valori massimi e minimi che può rappresentare. Un tipo di dati INT può memorizzare un valore da -2.147.483.648 a 2.147.483.647.,

Gli usi pratici del tipo di dati INT includono l’utilizzo per contare i valori, memorizzare l’età di una persona o utilizzare come chiave ID di una tabella.

Ma INT non sarebbe così buono da tenere traccia di uno spazio di indirizzi del disco rigido terabyte, poiché il tipo di dati INT va solo a 2 miliardi e avremmo bisogno di tenere traccia dei trilioni. Per questo, potresti usare BIGINT.

Il tipo di dati INT viene utilizzato nei calcoli., Poiché DaysToManufacture è definito come INT, possiamo facilmente calcolare le ore moltiplicandole per 24:

SELEZIONA Nome, DaysToManufacture, DaysToManufacture * 24 come Hourstomanufactureda Produzione.Prodotto
/* Answer */SELECT Name, DaysToManufacture, DaysToManufacture * 24 as HoursToManufactureFROM Production.Product

Qui puoi vedere i risultati

Risultati di INT calcoli

Ci sono molte operazioni e funzioni che si possono utilizzare con i numeri interi che vedremo una volta che si scava nelle funzioni.,

VARCHAR e NVARCHAR – Valori di testo

Utilizzare VARCHAR e NVARCHAR per memorizzare valori di testo di lunghezza variabile. “VARCHAR” sta per carattere di lunghezza variabile.

Specificare il numero di caratteri da memorizzare in un VARCHAR o NVARCHAR come viene definita la colonna. Si noti come Nome è definito per contenere cinquanta caratteri:

VARCHAR definizione mostrato in SSMS Oggetto Explorer

Ciò che rende VARCHAR popolare è che i valori, a meno di cinquanta caratteri occupano meno spazio. Lo spazio è allocato secondo necessità., Questo differisce dal tipo di dati CHAR che assegna sempre la lunghezza specificata, indipendentemente dalla lunghezza dei dati effettivi memorizzati.

Il tipo di dati VARCHAR può in genere memorizzare un massimo di 8.000 caratteri. Utilizzare il tipo di dati NVARCHAR per memorizzare il testo Unicode. Poiché i caratteri UNICODE occupano il doppio dello spazio, le colonne NVARCHAR possono memorizzare un massimo di 4.000 caratteri.

Il vantaggio che NVARCHAR ha su VARCHAR è che può memorizzare caratteri Unicode. Ciò rende utile memorizzare set di caratteri estesi come quelli utilizzati per lingue come Kanji.,

I database progettati prima di SQL 2008 in genere usano VARCHAR; tuttavia, i database più moderni o quelli di natura globale tendono ad usare NVARCHAR.

DATETIME – Data e ora

Utilizzare il tipo di dati DATETIME per memorizzare la data e l’ora. Un esempio di valore DATATIME è

1968-10-23 1:45:37.123

Questo è il valore del 23 ottobre 1968 alle ore 1:45. In realtà il tempo è più preciso di quello. Il tempo è davvero 45 minuti, 37.123 secondi.

In molti casi, è sufficiente memorizzare la data. In questi casi, il componente tempo viene azzerato., Quindi, il 5 novembre 1972 è

1972-11-05 00:00:00.000

Un DATETIME può memorizzare date dal 1 gennaio 1753 al 31 dicembre 9999. Questo rende il DATETIME buono per la registrazione delle date nel mondo di oggi, ma non tanto in William Shakespeare.

Man mano che acquisisci maggiore familiarità con le varie funzioni integrate di SQL sarai in grado di manipolare i dati. Per darvi un assaggio, useremo la funzione ANNO per contare i dipendenti assunti ogni anno. Quando viene assegnato un valore DATETIME, la funzione YEAR restituisce l’anno.,

La query che useremo è

Il vantaggio è che il tipo DATETIME garantisce che i valori siano date valide. Una volta che questo è assicurato, siamo in grado di utilizzare una sfilza di funzioni per calcolare il numero di giorni tra le date, il mese di una data e così via.

Esploreremo queste varie funzioni in dettaglio in un altro articolo del blog.

Punti DECIMALI e FLOAT – Decimali

Utilizzare entrambi i tipi di dati DECIMALI e FLOAT per lavorare con valori decimali come 10.3.,

Ho raggruppato DECIMAL e FLOAT nella stessa categoria poiché entrambi possono gestire valori con punti decimali; tuttavia, entrambi lo fanno in modo diverso:

Se hai bisogno di valori precisi, come quando lavori con dati finanziari o contabili, usa DECIMAL. Il motivo è che il tipo di dati DECIMALE consente di definire il numero di punti decimali da mantenere.

DECIMALE

I tipi di dati decimali sono definiti dalla precisione e dalla scala. La precisione determina il numero di cifre totali da memorizzare; mentre, scala determina il numero di cifre a destra del punto decimale.,

Un tipo di dati DECIMALE viene specificato come DECIMALE(precisione,scala).

Un tipo di dati DECIMALE non può essere superiore a 38 cifre. La precisione e la scala devono rispettare la seguente relazione

0 <= scale <= precision <= 38 digits

Nella produzione.Tabella prodotto, il tipo di dati della colonna peso è definito come DECIMALE (8,2). La prima cifra è la precisione, la seconda la scala.

Il peso è definito per avere otto cifre totali, due delle quali a destra del decimale. Faremo la seguente query di esempio per illustrare come questo tipo di dati.,

SELEZIONARE PESO DISTINTO DALLA Produzione.ProductWHERE Peso TRA 29.00 e 189.00 ORDINA PER peso DESC

FLOAT

Dove i tipi di dati DECIMALI sono ottimi per i numeri esatti, i FLOAT sono davvero buoni per valori numerici lunghi. Anche se un valore DECIMALE può avere 38 cifre totali, in molte applicazioni ingegneristiche e scientifiche questo è inadeguato. FLOAT sale verso l’alto all’interno di applicazioni scientifiche in cui si incontrano valori numerici estremi!

I GALLEGGIANTI hanno un intervallo da-1.,79E + 308 a 1.79 E + 308. Ciò significa che il valore più grande può essere 179 seguito da 306 zeri (grande davvero!).

A causa del modo in cui i dati float sono memorizzati nel computer (vedere le specifiche IEEE 754 floating point) il numero memorizzato è un’approssimazione estremamente ravvicinata. Per molte applicazioni, questo è abbastanza buono.

A causa del comportamento approssimativo, evitare di utilizzare <> e = operatori nella clausola WHERE. Questa affermazione ha bruciato i DBA di maggio!

WHERE mass = 2.5

La loro aspettativa viene tratteggiata quando la massa dovrebbe essere uguale a 2.,5, ma in realtà, sul computer, è memorizzato come 2.499999999999999; quindi, non uguale a 2.500000000000000!

Questa è la natura dei punti mobili e dei computer. Io e te vediamo 2.49999999999999 e pensiamo che per scopi pratici sia 2.5, ma al computer, erano spenti solo un po’. J

BIT – Boolean o Yes / No values

Ci sono momenti in cui devi solo memorizzare se qualcosa “è” o “non lo è.”Ad esempio, se un dipendente è attivo. È in questi casi che il tipo di dati BIT viene a sé. Questo tipo di dati è uno dei tre stati: 1, 0 o NULL.,

Il valore di 1 indica TRUE e 0 FALSE.

In questa query, stiamo elencando tutti i titoli di lavoro di posizione salariati

SELEZIONA IL TITOLO di lavoro DISTINCTFROM HumanResources.EmployeeWHERE SalariedFlag = 1
SELECT DISTINCT JobTitleFROM HumanResources.EmployeeWHERE SalariedFlag = 1

Avremmo potuto anche usare ‘True’ invece di 1. Ecco lo stesso esempio usando ‘True’

Leave a Comment