Tipi di dati di SQL Server: varchar, numerico, data e ora (esempi T-SQL)

Sommario:

Anonim

Cos'è il tipo di dati?

Un tipo di dati è definito come il tipo di dati che qualsiasi colonna o variabile può memorizzare in MS SQL Server.

Durante la creazione di qualsiasi tabella o variabile, oltre a specificare il nome, imposti anche il tipo di dati che memorizzerà.

Come utilizzare il tipo di dati MS SQL

  • È necessario definire in anticipo il tipo di dati che una colonna o una variabile può memorizzare. La determinazione del tipo di dati impedisce inoltre all'utente di immettere dati imprevisti o non validi.
  • È possibile fare un uso efficiente della memoria assegnando un tipo di dati appropriato alla variabile o alla colonna che allocherà solo la quantità richiesta di memoria di sistema per i dati della rispettiva colonna.
  • MS SQL offre un'ampia categoria del tipo di dati secondo le esigenze dell'utente. Come la data, le immagini binarie, ecc.

In questo tutorial imparerai:

  • Cos'è il tipo di dati?
    • Come utilizzare il tipo di dati MS SQL
  • Perché utilizzare DataTypes?
    • Numerico esatto
    • Numerico approssimativo
    • Data e ora
    • Stringhe di caratteri
    • Stringhe di caratteri Unicode
    • Stringa binaria
    • Altri tipi di dati

Perché utilizzare DataTypes?

Facciamo un esempio della semplice pagina di registrazione dell'applicazione del sito Web. Tre campi di input sono Nome, Cognome e Numero di contatto.

Qui dobbiamo notare che in tempo reale:

  • "Nome / Cognome" sarà sempre alfabetico .
  • "Contatto" sarà sempre numerico .

  • Dall'immagine sopra vale la pena definire "Nome / Cognome" come carattere e " Contatto" come numero intero .

È evidente che in qualsiasi applicazione tutti i campi hanno l'uno o l'altro tipo di dati. Ad esempio, numerico, alfabetico, data e molti altri.

Inoltre, tieni presente che un tipo di dati diverso ha requisiti di memoria diversi. Pertanto, ha più senso definire la colonna o la variabile con il tipo di dati che manterrà per un uso efficiente della memoria.

Tipo di dati disponibile in MS SQL

Il server MS SQL supporta le seguenti categorie di tipo di dati:

  • Numerico esatto
  • Numerico approssimativo
  • Data e ora
  • Stringhe di caratteri
  • Stringhe di caratteri Unicode
  • Stringhe binarie
  • Altri tipi di dati
Tipi di dati MSQL

Numerico esatto

Numerico esatto ha nove tipi di sottotipi di dati. Tipi di dati numerici esatti

Tipo di dati Descrizione Limite inferiore Limite superiore Memoria
bigint Memorizza numeri interi nell'intervallo fornito −2 63 (−9.223.372, 036.854.775.808) 2 63−1 (−9.223.372, 036.854.775.807) 8 byte
int Memorizza numeri interi nell'intervallo fornito −2 31 (−2.147, 483.648) 2 31−1 (−2.147, 483.647) 4 byte
smallint Memorizza numeri interi nell'intervallo fornito −2 15 (−32.767) 2 15 (−32.768) 2 byte
tinyint Memorizza numeri interi nell'intervallo fornito 0 255 1 byte
po Può richiedere valori 0, 1 o NULL. 0 1 Colonna da 1 byte / 8 bit
decimale Utilizzato per numeri di scala e di precisione fissa −10 38 + 1 10 381-1 Da 5 a 17 byte
numerico Utilizzato per numeri di scala e di precisione fissa −10 38 + 1 10 381-1 Da 5 a 17 byte
i soldi Dati monetari utilizzati −922.337, 203, 685.477.5808 +922.337, 203, 685.477.5807 8 byte
smallmoney Dati monetari utilizzati −214.478,3648 +214.478.3647 4 byte

Esempi:

Query:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Uscita: 2

Sintassi: decimale (P, S)

Qui,

  • P è precisione
  • S è la scala

Query:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal

Uscita: 2.31

Numerico approssimativo

La categoria numerica approssimativa include virgola mobile e valori reali. Sono utilizzati principalmente nei calcoli scientifici. Tipo di dati numerico approssimativo

Tipo di dati Descrizione Limite inferiore Limite superiore Memoria Precisione
galleggiante (n) Utilizzato per un numero di precisione mobile −1,79E + 308 1,79 E + 308 Dipende dal valore di n 7 cifre
vero Utilizzato per un numero di precisione mobile −3,40E + 38 3.40E + 38 4 byte 15 cifre
Syntax: FLOAT [(n)] 

Qui, n è il numero di bit utilizzati per memorizzare la mantissa del numero float in notazione scientifica. Per impostazione predefinita, il valore di n è 53.

Quando l'utente definisce un tipo di dati come float, n dovrebbe essere un valore compreso tra 1 e 53.

SQL Server considera n come uno dei due possibili valori. Se 1 <= n <= 24, n viene considerato come 24. Se 25 <= n <= 53, n viene considerato come 53.

Query di esempio:

DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float

Uscita: 22.1234

Data e ora

Memorizza dati di tipo Data e ora. Tipo di dati data e ora

Tipo di dati Descrizione Dimensioni di archiviazione Precisione Gamma inferiore Gamma superiore
Appuntamento Utilizzato per specificare una data e un'ora dal 1 gennaio 1753 al 31 dicembre 9999. Ha una precisione di 3,33 millisecondi. 8 byte Arrotondato a incrementi di .000, .003, .007 1753-01-01 9999-12-31
smalldatetime Utilizzato per specificare una data e un'ora dal 1 gennaio 0001 al 31 dicembre 9999. Ha una precisione di 100 nanosecondi 4 byte, fissi 1 minuto 1900-01-01 2079-06-06
Data Utilizzato per memorizzare solo la data dal 1 gennaio 0001 al 31 dicembre 9999 3 byte, fissi 1 giorno 0001-01-01 9999-12-31
tempo Utilizzato per memorizzare solo valori temporali con una precisione di 100 nanosecondi. 5 byte 100 nanosecondi 00: 00: 00.0000000 23: 59: 59.9999999
datetimeoffset Simile a datatime ma ha una differenza di fuso orario 10 byte 100 nanosecondi 0001-01-01 9999-12-31
datetime2 Utilizzato per specificare una data e un'ora dal 1 gennaio 0001 al 31 dicembre 9999 6 byte 100 nanosecondi 0001-01-01 9999-12-31

Query di esempio:

DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date

Uscita: "2030-01-01"

Stringhe di caratteri

Questa categoria è correlata a un tipo di carattere. Consente all'utente di definire il tipo di dati del carattere che può essere di lunghezza fissa e variabile. Ha quattro tipi di dati. Tipi di dati di stringhe di caratteri

Tipo di dati Descrizione Limite inferiore Limite superiore Memoria
char È una stringa di caratteri con una larghezza fissa. Memorizza un massimo di 8.000 caratteri. 0 caratteri 8000 caratteri n byte
varchar Questa è una stringa di caratteri con larghezza variabile 0 caratteri 8000 caratteri n byte + 2 byte
varchar (max) Questa è una stringa di caratteri con una larghezza variabile. Memorizza un massimo di 1.073.741.824 caratteri. 0 caratteri 2 31 caratteri n byte + 2 byte
testo Questa è una stringa di caratteri con una larghezza variabile. Memorizza un massimo di 2 GB di dati di testo. 0 caratteri 2.147.483.647 caratteri n byte + 4 byte

Query di esempio:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char

Output: questo è il tipo di dati del carattere

Stringhe di caratteri Unicode

Questa categoria memorizza l'intera gamma di caratteri Unicode che utilizza la codifica dei caratteri UTF-16. Tipi di dati stringa di caratteri Unicode

Tipo di dati Descrizione Limite inferiore Limite superiore Memoria
nchar È una stringa Unicode di larghezza fissa 0 caratteri 4000 caratteri 2 volte n byte
nvarchar È una stringa Unicode di larghezza variabile 0 caratteri 4000 caratteri 2 volte n byte + 2 byte
ntext È una stringa Unicode di larghezza variabile 0 caratteri 1.073.741.823 car 2 volte la lunghezza della stringa

Query di esempio:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar

Output: questo è nCharacter Datatype

Stringa binaria

Questa categoria contiene una stringa binaria di lunghezza fissa e variabile. Tipi di dati di stringa binaria

Tipo di dati Descrizione Limite inferiore Limite superiore Memoria
binario È una stringa binaria a larghezza fissa. Memorizza un massimo di 8.000 byte. 0 byte 8000 byte n byte
varbinary Questa è una stringa binaria di larghezza variabile. Memorizza un massimo di 8.000 byte 0 byte 8000 byte La lunghezza effettiva dei dati immessi + 2 byte
Immagine Questa è una stringa binaria di larghezza variabile. Memorizza un massimo di 2 GB. 0 byte 2.147.483.647 byte

Query di esempio:

DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary

Uscita: 0x000C

Altri tipi di dati

Questi sono altri diversi tipi di dati con la descrizione di seguito-

Tipo di dati Descrizione
Cursore Il relativo output è una colonna di sp_cursor_list e sp_describe_cursor. Restituisce il nome della variabile cursore.
Versione riga La versione timbra le righe della tabella.
Hierarchyid Questo tipo di dati rappresenta una posizione nella gerarchia
Identificativo unico Conversione da un'espressione di caratteri.
Sql_variant Memorizza i valori dei tipi di dati supportati da SQL Server.
XML Memorizza i dati XML in una colonna.
Tipo di geometria spaziale Rappresenta i dati in un sistema di coordinate piatte.
Tipo di geografia spaziale Rappresenta i dati nel sistema di coordinate round-earth.
tavolo Memorizza un set di risultati per l'elaborazione successiva.

Fatti interessanti!

  • Il tipo di dati CHAR è più veloce di VARCHAR durante il recupero dei dati.

Sommario:

  • Ogni colonna nelle tabelle definisce con il proprio tipo di dati durante la creazione della tabella.
  • Ci sono sei categorie principali e un'altra categoria miscellanea. Altre miscellanee hanno nove sottocategorie di tipi di dati disponibili.