Oracle
 sql >> Database >  >> RDS >> Oracle

Come modificare la tabella aggiungi la colonna Oracle

Come modificare la tabella e aggiungere la colonna nel database di Oracle

  • Aggiungi una nuova colonna utilizzando ALTER TABLE ADD COLUMN dichiarazione in Oracle
  • La tabella deve essere contenuta nel tuo schema Per modificare una tabella, oppure devi disporre del privilegio di oggetto  ALTER per la tabella o del privilegio di sistema ALTER ANY TABLE.
  • Se una vista, vista materializzata, trigger,  indice basato su funzione, vincolo di controllo, funzione, procedura del pacchetto dipende da una tabella di base, l'alterazione della tabella di base o delle sue colonne può influenzare l'oggetto dipendente Ad esempio gli oggetti PLSQL diventano non valido  se l'oggetto tabella dipendente viene modificato e devi renderlo nuovamente valido

Possiamo aggiungere una nuova colonna alla definizione della tabella usando il comando alter table add 

ALTER TABLE tech_master ADD (name  varchar2(9));
Table Altered
  • Prima di 11g, se viene aggiunta una nuova colonna a una tabella, la colonna è inizialmente NULL a meno che tu non specifichi la clausola DEFAULT . . Quando si specifica un valore predefinito, il database aggiorna immediatamente ogni riga con il valore predefinito. Si noti che ciò può richiedere del tempo e che durante l'aggiornamento è presente un blocco DML esclusivo sul tavolo.
  • Per alcuni tipi di tabelle (ad esempio, tabelle senza colonne LOB), se si specifica sia un vincolo NOT NULL che un valore predefinito, il database può ottimizzare l'operazione di aggiunta delle colonne e ridurre notevolmente il tempo di permanenza della tabella bloccato per DML. Lo stesso vale per l'aggiunta di colonne non nulle con valore predefinito
  • Oracle ha introdotto la funzione di aggiunta rapida di colonne in 11g, quindi quando aggiungiamo una colonna non nulla con valore predefinito o una colonna nulla con valore predefinito, Oracle aggiunge immediatamente la colonna e non aggiorna ogni riga con il valore predefinito. S
  • o incorre in alcuna penalità per la generazione di operazioni ripetute e annullate. Quando un utente seleziona la colonna per un record esistente, Oracle ottiene il fatto sul valore predefinito dal dizionario dei dati e lo restituisce all'utente.

Non puoi specificare dove deve apparire la colonna. La colonna appena aggiunta diventa l'ultima colonna

 Allo stesso modo possiamo aggiungere più colonne alla tabella

ALTER TABLE table_name
ADD (col1 column datatype [default  expr],
col2 column datatype [default  expr],
...
coln column datatype [default  expr]);

Example
ALTER TABLE customer_master
ADD (location_name varchar2(100),
last_login date);

Le convenzioni di denominazione delle colonne  sono le stesse del caso dell'istruzione Crea tabella

  • Il nome che scegli per una colonna deve seguire queste regole standard:
  • Il nome deve iniziare con una lettera A-Z o a-z
  • può contenere numeri e trattini bassi
  • Potrebbe essere MAIUSCOLA o minuscola
  • Può avere una lunghezza massima di 30 caratteri
  • Impossibile utilizzare lo stesso nome di un altro oggetto esistente nel tuo schema
  • Non deve essere un server Oracle e una parola riservata SQL

I tipi di dati sono di nuovo gli stessi dell'istruzione create table

Personaggio -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à lo spazio per i dati in entrata e se i dati sono inferiori alla dimensione massima, verrà riempito di spazio a destra
-Il tipo di dati VARCHAR2 è una variabile -length stringa alfanumerica, che ha una lunghezza massima in byte. Può memorizzare fino a 4000 byte.
Numero -NUMBER
-Il tipo di dati NUMBER memorizza il numero con precisione e scala.
-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 NUMBER (6, 2), l'intervallo di valori può essere memorizzato da –9999,99 a 9999.99. Oracle arrotonda i numeri in virgola mobile.
Data e ora –DATE, TIMESTAMP (con fuso orario o fuso orario locale), INTERVALLO ANNO AL MESE &INTERVALLO GIORNO AL SECONDO.
-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
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 va da 8 TB a 128 TB.
Lungo Dati di caratteri a lunghezza variabile fino a 2 G
riga Un sistema numerico di base 64 che rappresenta l'indirizzo univoco della riga nella tabella

Esempio

Prima di aggiungere la colonna

Desc emp

Modifica colonna aggiungi tabella

alter table emp add(ext varchar2(10));

Dopo aver aggiunto la colonna

Desc emp

Ora sto eliminando quella colonna

alter table emp drop column ext;

Spero che ti piaccia l'articolo su Come modificare la tabella e aggiungere una colonna in Oracle

Articoli correlati
oracle create table syntax
Alter Table in Oracle
alter table move
Istruzione DROP TABLE ORACLE
check Oracle table size
ora-20005:le statistiche degli oggetti sono bloccato