Quando crei una tabella Oracle, devi specificare un tipo di dati per ogni colonna, che è associato a un formato di archiviazione specifico, vincoli e un intervallo di valori valido. La conoscenza dei tipi di dati è necessaria prima di creare la tabella. Qui in questo articolo, vedremo importanti tipi di dati Oracle che utilizzerai in PLSQL, SQL abbastanza spesso mentre lavori con il database Oracle
Oracle fornisce le seguenti categorie di tipi di dati integrati:
Tipi di dati dei caratteri
Tipi di dati numerici
DATA Tipo di dati
Tipi di dati LOB
Tipi di dati RAW e LONG RAW
Tipi di dati ROWID e UROWID
Tipo di dati del carattere
-CHAR, NCHAR, VARCHAR2 e NVARCHAR2.
Il tipo di dati CHAR è una stringa alfanumerica di lunghezza fissa che ha una lunghezza massima in byte.
-Quando si crea un tipo di dati CHAR, il database conserverà spazio per i dati in entrata e se i dati sono inferiori alla dimensione massima, verrà riempito di spazio a destra
Ad esempio, se si dichiara una variabile/colonna di tipo dati CHAR (5), saranno necessari sempre 5 byte indipendentemente dal fatto che si stiano memorizzando 1 carattere o 5 caratteri in questa variabile o colonna. E in questo esempio, poiché abbiamo dichiarato questa variabile/colonna come CHAR(5), possiamo memorizzare un massimo di 5 caratteri in questa colonna.
-Il tipo di dati VARCHAR2 è una stringa alfanumerica di lunghezza variabile, che ha una lunghezza massima in byte. Può memorizzare fino a 4000 byte.
VARCHAR2 è un tipo di dati di lunghezza variabile. Ad esempio, se si dichiara una variabile/colonna di tipo di dati VARCHAR 2(10), ci vorrà un numero di byte uguale al numero di caratteri archiviati in questa colonna. Quindi, in questa variabile/colonna, se stai memorizzando un solo carattere, ci vorrà solo un byte e se stiamo memorizzando 10 caratteri, ci vorranno 10 byte. E in questo esempio, poiché abbiamo dichiarato questa variabile/colonna come VARCHAR2 (10), quindi possiamo memorizzare un massimo di 10 caratteri in questa colonna. Lo spazio utilizzato dipenderebbe dai valori nella colonna e non ci saranno sprechi di spazio.
Inoltre vorrei sottolineare qui una cosa che quando diamo VARCHAR2(10) qui è 10 è il numero dei byte non il carattere. Il numero di caratteri e byte è simile quando sono coinvolti caratteri ASCII, ma l'equazione viene modificata, iniziamo a usare caratteri diversi da ASCII
The length semantics of character datatypes can be measured in bytes or characters. Byte semantics treat strings as a sequence of bytes. This is the default for character datatypes. Character semantics treat strings as a sequence of characters. A character is technically a codepoint of the database character set. So VARCHAR (10 Byte) has length measured in byte. VARCHAR (10 CHAR) has length measured in character. The default for VARCHAR is based on NLS_LENGTH_SEMANTICS parameter set in the database. By default this is set to Byte,so when we use VARCHAR(10) , it uses length measured in byte
-Il tipo di dati VARCHAR è sinonimo del tipo di dati VARCHAR2. Per evitare possibili cambiamenti nel comportamento, usa sempre il tipo di dati VARCHAR2 per memorizzare stringhe di caratteri di lunghezza variabile.
-NCHAR e NVARCHAR2 sono tipi di dati Unicode che memorizzano dati di caratteri Unicode. Il set di caratteri dei tipi di dati NCHAR e NVARCHAR2 può essere solo AL16UTF16 o UTF8 ed è specificato al momento della creazione del database come set di caratteri nazionale. AL16UTF16 e UTF8 sono entrambi codifica Unicode.
Example create table test ( First_name char(6), Last_name varchar2(10));
Tipo di dati numerico
-NUMERO o NUMERO(p,s)
-Il tipo di dati NUMBER(p,s) memorizza il numero con precisione e scala.
– Il tipo di dati NUMBER memorizza fino a 38 cifre di precisione
-I tipi di dati numerici memorizzano numeri interi negativi e positivi numeri a virgola fissa e numeri a virgola mobile
-Quando una colonna è definita come NUMERO (6, 2), l'intervallo di valori può essere memorizzato da –9999,99 a 9999,99. Quindi abbiamo la cifra totale come 6 e 4 cifre prima del decimale e 2 cifre dopo il decimale Oracle arrotonda i numeri in virgola mobile.
Example create table test ( First_name char(6), Last_name varchar2(10) age number; Salary number(10,2) );
Data e ora
–DATE, TIMESTAMP (con fuso orario o fuso orario locale),
-Il tipo di dati DATE viene utilizzato per memorizzare informazioni su data e ora.
-Questo tipo di dati ha una serie di funzioni specifiche per manipolare, formattare e visualizzare i suoi dati.
-Il tipo di dati DATE contiene una memoria di sette byte e contiene informazioni su secolo, anno, mese, giorno, ore, minuti e secondi.-Il parametro NLS_DATE_FORMAT può essere modificato per controllare la visualizzazione dei dati. La funzione SYSDATE restituisce la data corrente
–Il database Oracle fornisce anche il tipo di dati DATE con fuso orario
TIMESTAMP CON FUSO ORARIO
TIMESTAMP CON FUSO ORARIO LOCALE
Example create table test ( First_name char(6), Last_name varchar2(10) age number, Salary number(10,2), start_date date );
Oggetti di grandi dimensioni
-BLOB(oggetto binario grande) , CLOB(oggetto grande carattere) , NCLOB &BFILE
-Le colonne di questi tipi di dati possono archiviare dati non strutturati inclusi testo, immagini, video e dati spaziali. -Il tipo di dati CLOB può memorizzare fino a otto terabyte di dati di caratteri utilizzando il set di caratteri del database CHAR.
-Il tipo di dati BLOB viene utilizzato per archiviare oggetti binari di grandi dimensioni non strutturati come quelli associati a dati di immagini e video in cui i dati sono semplicemente un flusso di valori "bit".
-Il valore del tipo di dati BFILE funziona come un localizzatore di file o un puntatore a un file nel file system del server. La dimensione massima del file supportata è compresa tra 8 TB e 128 TB.
Lungo
Dati caratteri a lunghezza variabile fino a 2 G
riga
Un sistema numerico di base 64 che rappresenta l'indirizzo univoco della riga nella tabella
Spero che questo contenuto ti piaccia sui tipi di dati Oracle
Articoli correlati
Indici Oracle
Domande su Oracle Interview
Date Functions in Oracle
Istruzione INSERT in Oracle
Istruzione di aggiornamento in Oracle
Come controllare tutti i vincoli su una tabella in Oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832