Identificatori e tipi di dati in linguaggio SQL
Il linguaggio SQL utilizza i caratteri alfabetici, le cifre decimali, gli operatori aritmetici e di confronto (+ -/ * = < >) più altri caratteri che assumono particolari significati nella
sintassi delle istruzioni. 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 underscore "_".
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 con 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 con p da l 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 da 1 a 45 ed s da 0 a p con p e s cifre decimali |
| REAL | Numero reale con mantissa valore 0 oppure valore di precisione 7 assoluto da 1E -38 a 1E +38 |
| FLOAT | Numero reale con mantissa valore 0 oppure valore di precisione 15 assoluto da 1E -38 a 1E +38 |
| FLOAT(p) | Numero reale con mantissa p da l a 45 di precisione p |
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 ricordare 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 presentati nei manuali per l'utente o nell'help in linea del linguaggio per basi di dati.
Le costanti stringa sono delimitate dai caratteri ' (apice singolo) o " (doppio apice). Il delimitatore standard è l'apice singolo '.
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 ( "" ) per i dati alfanumerici. Negli ordinamenti il valore Null compare all’inizio delle sequenze crescenti e alla fine delle sequenze decrescenti
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.
Pagine correlate:
edutecnica