Ecco una rottura dei fattori chiave:
* Dichiarazione del tipo di dati: Il determinante primario è il `data_type` scelto durante la creazione della tabella (usando` Crea tabella`) o modifica (usando `alter table`). Per esempio:
`` `sql
Crea dipendenti da tavolo (
numero dipendente_id (6), - numero con precisione 6
first_name varchar2 (20),-stringa di caratteri a lunghezza variabile fino a 20 caratteri
last_name varchar2 (25) vincolo nn_last_name non null,-stringa di caratteri a lunghezza variabile, non null
Email varchar2 (25),
Hire_Date Date, - Data e ora
Numero salariale (8,2), - Numero con precisione 8, 2 posti decimali
...
);
`` `
In questo esempio, `Employee_id` può contenere solo numeri,` First_name` e `last_name` possono contenere stringhe di caratteri a lunghezza variabile,` hear_date` può contenere date e `stipendio` può contenere numeri con luoghi decimali.
* Tipi di dati integrati di Oracle: Oracle fornisce un ricco set di tipi di dati integrati che soddisfano varie esigenze di archiviazione dei dati. Alcuni dei più comuni includono:
* Tipi di dati dei caratteri:
* `Varchar2 (dimensione)`:stringa di caratteri a lunghezza variabile (tipo di carattere consigliato di Oracle). `Size` specifica la lunghezza massima in byte o caratteri (a seconda del set di caratteri del database). Utilizzare questo per i dati di testo generali.
* `Nvarchar2 (dimensione)`:stringa di caratteri nazionali a lunghezza variabile. Utilizzato per la memorizzazione dei dati Unicode. `Size` specifica la lunghezza massima nei caratteri.
* `Char (dimensione)`:stringa di caratteri a lunghezza fissa. Pad con spazi per la specifica `size`. Meno comunemente usato di `varchar2`.
* `Nchar (dimensione)`:stringa di carattere nazionale a lunghezza fissa.
* `Clob`:personaggio grande oggetto. Per la memorizzazione di grandi quantità di dati di testo (fino a 4 GB). Memorizza i dati effettivi separatamente, utilizzando un localizzatore nella tabella.
* `Nclob`:personaggio nazionale grande oggetto. Clob per i dati Unicode.
* Tipi di dati numerici:
* `Numero (precisione, scala)`:tipo di dati numerici per scopi generali. `Precision` è il numero totale di cifre e` Scale` è il numero di cifre a destra del punto decimale.
* `Numero`:i valori predefiniti sono massimi di precisione e scala.
* `Binary_float`:numero mobile a 32 bit.
* `Binary_double`:numero mobile a 64 bit.
* Tipi di dati di data e ora:
* `Date`:Informazioni sulla data e ora dei negozi.
* `Timestamp`:archivia la data e l'ora con secondi frazionari. Esistono varianti per il supporto del fuso orario (ad es. TimeStamp `con fuso orario ',` timestamp con fuso orario locale`).
* `Interval Anno a mese`:memorizza un periodo di tempo in anni e mesi.
* `Interval Day to Second`:memorizza un periodo di tempo in giorni, ore, minuti e secondi.
* Tipi di dati binari:
* `Blob`:oggetto grande binario. Per la memorizzazione di grandi quantità di dati binari (fino a 4 GB), come immagini, audio o video. Memorizza i dati effettivi separatamente, utilizzando un localizzatore nella tabella.
* `Bfile`:file binario. Memorizza un puntatore a un file binario memorizzato * all'esterno * del database (sul file system del sistema operativo). Il database memorizza solo la posizione del file, non il contenuto del file stesso.
* Tipi di dati rowid:
* `Rowid`:una pseudo-colonna contenente l'indirizzo di una riga in una tabella. È unico all'interno del database e consente l'accesso più rapido a una determinata riga.
* `Urowid`:un ID riga universale, che può rappresentare Rowids di tabelle organizzate indicizzate.
* Tipo di dati XML:
* `Xmltype`:per la memorizzazione dei dati XML. Oracle fornisce metodi per interrogare e manipolare XML memorizzato in questo tipo di dati.
* Tipo di dati JSON:
* `JSON`:per la memorizzazione dei dati JSON. Disponibile nelle versioni successive di Oracle.
* Precisione e scala (per numero): Quando si utilizzano il tipo di dati `Number`, i parametri` Precision` e `Scale` sono cruciali.
* `Precision`:specifica il numero totale di cifre (inclusi sia prima che dopo il punto decimale).
* `Scale`:specifica il numero di cifre a destra del punto decimale.
Ad esempio, `numero (7,2)` consente di archiviare i numeri con un massimo di 7 cifre, con 2 di quelle cifre che sono dopo il punto decimale. I valori validi sarebbero 12345,67, 123,45 o 0,01. I valori non validi sarebbero 123456.7 o 1.234567.
* Set di caratteri del database: Il set di caratteri del database influenza l'archiviazione dei tipi di dati dei caratteri (in particolare `varchar2` e` char`). Determina la lunghezza massima di una colonna `varchar2` in termini di *byte *o *caratteri *. Nelle versioni precedenti, `varchar2 (dimensione)` è stato interpretato come byte. Versioni più recenti di Oracle, con il parametro di inizializzazione `max_string_size =esteso`, consentire` varchar2 (dimensione) `di essere interpretati come caratteri. L'uso di set di caratteri Unicode (come AL32UTF8) consente di archiviare caratteri da più lingue.
* Vincoli: Mentre i vincoli non * definiscono * il tipo di dati, possono limitare ulteriormente i valori consentiti in una colonna. Per esempio:
* `Non null`:assicura che una colonna non possa contenere valori nulli.
* `Univoco`:garantisce che tutti i valori in una colonna (o set di colonne) siano univoci.
* `Key primario`:identifica una colonna (o un set di colonne) come identificatore univoco per ogni riga nella tabella.
* `Key Foreign`:stabilisce una relazione tra due tabelle, garantendo che esistano valori nella colonna di chiave estera nella colonna o / i della chiave primaria di riferimento.
* `Check`:consente di definire una regola personalizzata che i valori in una colonna devono soddisfare. Ad esempio:`controllo (stipendio> 0)` per garantire che gli stipendi siano sempre positivi.
* Conversione del tipo di dati implicito: Oracle può talvolta convertire implicitamente i tipi di dati durante confronti o assegnazioni. Ad esempio, Oracle potrebbe convertire implicitamente una stringa di caratteri in un numero se la si confronta con una colonna numerica. Tuttavia, è generalmente le migliori pratiche utilizzare le funzioni di conversione del tipo di dati esplicite (come `to_number`,` to_char`, `to_date`) per evitare comportamenti imprevisti e garantire l'integrità dei dati.
In sintesi, il tipo di dati dichiarato per una colonna è il meccanismo di controllo fondamentale che regola il tipo di dati che è possibile archiviare all'interno di quella colonna in un database Oracle. Comprendere i tipi di dati di Oracle e le loro proprietà è essenziale per la progettazione di schemi di database efficienti e affidabili.
software © www.354353.com