lun 06 febbraio 2012

Tipi di dati ORACLE

Posted by Modify On luglio - 8 - 2010

Tipi di dati ORACLE
Tipi di dati ORACLE

Le tabelle sono oggetti logici che consentono la memorizzazione di dati secondo un preciso schema deciso dall’utente che le ha progettate. Ogni tabella è formata da una o più colonne, una per ciascuna caratteristica dell’oggetto (entità) che si vuole rappresentare.

Prendiamo come esempio una tabella “Anagrafica del personale”. Sarà formata da diversi campi, tra cui nome, cognome, data di nascita, salario e altre informazioni. I campi sono rappresentati dalle colonne della tabella. Ogni colonna quindi contiene un dato particolare e se ne può specificare il tipo (“tipo di dato” o “datatype”).

CHAR (n)

Rappresenta sequenze alfanumeriche (lettere e numeri), ed è a lunghezza fissa, specificata mediante il valore racchiuso fra le parentesi (n). Questo valore è compreso tra 1 e 2000 caratteri.

Lunghezza fissa significa che inserendo un numero di caratteri inferiore a “n”, i caratteri non utilizzati vengono sostituiti da altrettanti spazi. Supponiamo di definire una colonna del tipo:

Cognome CHAR (10);

e di inserirvi un’informazione di cinque lettere, ad esempio ‘Rossi’. Oracle inserirà la stringa ‘Rossi’ nella colonna specificata (Cognome) e aggiungerà altri cinque spazi alla fine della parola per raggiungere la lunghezza definita (10).

Se non specifichiamo alcun valore n allora Oracle, per default, considera la lunghezza massima di un solo carattere. Pertanto le dichiarazioni:

Cognome CHAR (1);
Cognome CHAR;

sono equivalenti. Se eccediamo la lunghezza specificata, Oracle solleva un errore.

VARCHAR2 (n)

A differenza del precedente, questo tipo alfanumerico è a lunghezza variabile e può memorizzare fino a 4000 caratteri.

Il vantaggio che introduce è essenzialmente uno, il risparmio di spazio. Infatti VARCHAR2 non inserisce gli spazi mancanti se la lunghezza del dato immesso è inferiore a quella specificata. Non esiste, inoltre, un valore di default per questo tipo di dati, pertanto Oracle solleverà un errore se non sarà specificato il valore di n.

Se definiamo il campo Cognome come

Cognome VARCHAR2 (30);

ed inseriamo la stringa ‘Parisi’, questa occuperà esattamente sei caratteri.

NUMBER (p, s)

Consente la memorizzazione di valori numerici interi, positivi e negativi, dei numeri a virgola fissa e di quelli a virgola mobile. I parametri p e s, anch’essi numerici, indicano rispettivamente la precisione e la scala. La precisione può avere un valore da 1 a 38, mentre la scala un valore da -84 a 127. Se omettiamo questi valori, Oracle considera il massimo valore per entrambi. Per conoscere i limiti di memorizzazione per questo datatype ricorriamo alle seguenti regole:

  1. la scala indica le cifre dopo la virgola, ovvero quelle decimali;
  2. il numero di cifre intere (prima della virgola) è dato dalla sottrazione di p-s.

Queste regole però non valgono sempre, ad esempio quando il valore della scala è negativo oppure maggiore del valore della precisione. In casi come questi è opportuno consultare la documentazione di Oracle.

[ad code=2 align=left]

Facciamo un esempio. Creando una tabella definiamo un campo come NUMBER (6, 2). I numeri memorizzabili in questo campo avranno al massimo due cifre decimali e quattro cifre intere (6-2). Pertanto l’intervallo di valori sarà da -9.999,99 a 9.999,99.

Altro esempio. Definiamo un campo come NUMBER (5, 3). I numeri avranno al massimo tre cifre decimali e due cifre intere (5-3). Pertanto l’intervallo andrà da -99,999 a 99,999.

Un numero con cifre decimali superiori al valore della scala sarebbe automaticamente arrotondato secondo il valore della scala. Se invece si eccede il valore di precisione Oracle solleva un errore. Ad esempio, se definiamo il campo

Salario NUMBER (3, 1);

ed vi inseriamo 124,7 l’operazione non sarebbe eseguita e Oracle segnalerebbe l’errore (3-1 = 2 cifre intere al massimo).

DATE

È usato per memorizzare date e orari. Un campo di questo tipo può contenere le seguenti informazioni:

  • secolo
  • anno
  • mese
  • giorno
  • ora
  • minuti
  • secondi

Oracle fornisce svariate e utilissime funzioni per operare e trasformare questo tipo di dati. Il default di memorizzazione è GG-MES-AA ovvero due cifre per il giorno, tre lettere per il mese e due cifre per l’anno. La data 31-dic-75 ne è un esempio.

Se inseriamo una data senza specificare l’orario, questo viene aggiunto da Oracle con valore 00:00:00.

Quando lavoriamo con il tipo DATE possiamo fare riferimento alla funzione SYSDATE che riporta la data e l’ora attuale del sistema, quindi del server Oracle.

[ad code=6 align=left]

Articoli che potrebbero interessarti:

  1. DML – Data Manipulation Language DDL – Data Definition Language I comandi facenti parte del DDL permettono di creare, modificare...
  2. DDL – Data Definition Language DDL – Data Definition Language I comandi facenti parte del DDL permettono di creare, modificare...
  3. Comandi di Amministrazione Set transaction Usato per assegnare alla transazione corrente alcune delle seguenti caratteristiche: READ ONLY READ...
  4. Sintassi SQL Operatori aritmetici * moltiplicazione / divisione + addizione - sottrazione Operatori logici NOT capovolge il...
  5. Alcuni semplici esempi di statement SQL Creazione di una tabella create table anagrafica( numero_fax char(12)); cod_anagrafica decimal(5) NOT NULL, cognome char(18),...
  6. View e indici Le view e gli indici sono oggetti abbastanza diversi tra di loro; le view esistono...
  7. Oracle – Query di Update con Join Oracle - Query di Update con Join...

Leave a Reply

L’80° anniversario della Nascita di Francois Truffaut nel logo google di oggi

E’ per celebrare il regista francese  François Truffaut il Doodle di oggi. Ricorre infatti l’anniversario della sua nascita avvenuta il [...]

Creare un modulo in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. I moduli sono tasselli importantissimi nella creazione di un sito web Joomla e [...]

Rendimenti Adsense in Calo nel 2012

Il primo mese di questo nuovo anno è ormai terminato ed è tempo dei primi bilanci. La crisi economico/finanziaria  che [...]

Stili, override e layout alternativi in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. L’articolo ”Stili, override e layout alternativi in Joomla 1.7″  è una guida alla personalizzazione del [...]