📁
Forum per Webmaster
SQL

Identificatori e tipi di dati

Il linguaggio SQL utilizza i caratteri alfabetici, le cifre decimali, gli operatori aritmetici e di confronto ( - I * ) più altri caratteri che assumono particolari significati nella sintassi delle istruzioni e che verranno descritti nel seguito. Gli identificatori (nomi di tabelle e di attributi) sono costituiti da sequenze di caratteri con lunghezza massima uguale a 18 caratteri: devono iniziare con una lettera e possono anche contenere il carattere _. Quando è necessario identificare il nome di un attributo della tabella si deve usare la notazione NomeTabella.NomeAttributo (separati dal punto).

Nella  dichiarazione  della struttura di una tabella occorre specificare il tipo dei dati scelto per gli attributi. I tipi standard del linguaggio SQL sono:

CHARACTER(n)
Stringa di lunghezza n
n da 1 a 15000
DATE
Data nella forma MM/GG/AA
TIME
Ora  nella forma HH:MM
INTEGER(p)
Numero intero con precisione p
p da i a 45
SMALLINT
Numero intero con precisione 5 da -32768 a 32767
INTEGER
Numero intero con precisione 10 da -2.147.483.648 a 2.147.483.647
DECIMAL(p,s)
Numero decimale con precisione p e s cifre decimali
p da i a 45 ed 5 da 0 a p
REAL
Numero reale con mantissa di precisione 7 valore 0 oppure valore
assoluto da 1E-38 a 1E+38
FLOAT
Numero reale con mantissa di precisione 15 valore 0 oppure valore
assoluto da 1E-38 a 1E+38
FLOAT(p)
Numero reale con mantissa di precisione p
p da 1 a 45

Per i dati numerici la precisione p indica il numero massimo di cifre che il numero può contenere, esclusi il segno e il punto decimale. Per i numeri decimali il valore s indica il numero di cifre che seguono il punto decimale.

I dati numerici floating point (numeri approssimati) sono memorizzati in forma esponenziale; la precisione riguarda solo le cifre della mantissa. La parola NUMERIC può essere usata al posto di DECIMAL. La parola CHARACTER è equivalente a CHARACTER(1), e può essere abbreviata con CHAR. DECIMAL è equivalente a DECIMAL(15,0). Altre abbreviazioni sono:

  • CHAR(n) invece di CHARACTER(n);
  • INT(p) invece di INTEGER(p);
  • DEC(p,s) invece di DECIMAL(p,s).

Occorre osservare che alcune versioni di SQL in specifici ambienti DBMS differiscono dallo standard nell'indicazione dei tipi di dati.

Le stesse considerazioni valgono anche per le successive istruzioni del linguaggio: in diverse versioni del linguaggio SQL ci possono essere varianti nella sintassi e nei termini utilizzati. Per risolvere questi problemi è opportuno sempre controllare gli esempi pre-sentati nei manuali per l'utente o nell'help in linea del linguaggio per basi di dati.

Le costanti stringa sono delimitate dai caratteri ' o ". Il delimitatore standard è l'apice'. Nelle colonne della tabella gli attributi che hanno un valore non disponibile o non definito assumono il valore Null. Il valore Null non è mai uguale a nessun altro valore: è diverso dal valore zero per i dati numerici e dalla stringa vuota (YY) per i dati alfanumerici. Negli ordinamenti il valore Null compare all'inizio delle sequenze crescenti e alla fine delle sequenze decrescenti.

Le costanti numeriche possono avere o non avere il segno oppure -. Nei numeri decimali la parte intera è separata dalle cifre decimali attraverso il punto. I numeri in floating point sono rappresentati in forma esponenziale, per esempio -1 .2E 7. Nelle operazioni di confronto i numeri sono controllati in accordo con il loro valore algebrico, mentre le stringhe sono confrontate carattere per carattere a partire da sinistra secondo il codice ASCII. Nelle scrittura delle condizioni possono essere usati gli operatori NOT, AND e OR. Tutti i risultati di confronti numerici o stringa che riguardano attributi con valore Null sono considerati sconosciuti, perché Null non è uguale, maggiore o minore di nessun altro valore. Il linguaggio SQL può solo controllare la presenza o l'assenza di Null in una colonna.

 

Argomenti nella stessa categoria