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

Comando Oracle CREATE TABLE in PL/SQL con 10 esempi

In questo articolo parleremo di CREATE TABLE comando. Per essere più precisi, ci concentreremo su come creare una tabella in Oracle con una chiave primaria ed esterna, oltre a colonne non null e date, dare un'occhiata da vicino a come creare una nuova tabella sulla base di quella esistente , e altro ancora. Inoltre, esamineremo i vantaggi ei vantaggi dell'utilizzo di dbForge Studio per Oracle quando si lavora con le tabelle.

Contenuti

  • Sintassi dell'istruzione CREATE TABLE di Oracle
    • Esempio CREATE TABLE
  • CREA TABELLA con vincolo PRIMARY KEY
  • CREA TABELLA con CHIAVE ESTERA
  • CREA TABELLA con colonna NOT NULL
  • CREA TABELLA con una colonna data
  • Alternativa Oracle a SQL CREATE TABLE SE NON ESISTE
  • Crea una nuova tabella da un'altra tabella utilizzando CREATE TABLE AS SELECT
  • CREA TABELLA da SELECT in PL/SQL
  • Come creare e inserire dati in una tabella temporanea
  • CREA TABELLA in un batter d'occhio usando dbForge per Oracle
  • Conclusione

La creazione di tabelle in Oracle è uno dei modi per organizzare i dati, quindi è fondamentale imparare il più possibile su CREATE TABLE comando. Esistono diversi modi per creare una tabella in Oracle e li tratteremo ulteriormente in questa guida.

Si noti che è necessario disporre del privilegio di sistema CREATE TABLE per creare una nuova tabella. Se desideri creare una tabella nello schema di un altro utente, devi disporre del privilegio di sistema CREATE ANY TABLE. Nel caso tu sia il proprietario della tabella, devi disporre del privilegio di sistema UNLIMITED TABLESPACE o della quota per il tablespace che la tabella contiene.

Inoltre, per creare una tabella oggetti o una tabella relazionale che contenga una colonna del tipo di oggetto, è necessario disporre del privilegio oggetto ESECUZIONE o del privilegio di sistema ESECUZIONE DI QUALSIASI TIPO se si desidera avere accesso a tutti i tipi a cui fa riferimento la tabella.

Gli esempi in questo articolo si riferiscono alla versione Oracle 19c, ma i metodi sono gli stessi per tutte le versioni Oracle in uso (inclusi Oracle 10g, 11g, 12c, ecc.).

Sintassi dell'istruzione CREATE TABLE di Oracle

Cominciamo con le basi. Per creare una nuova tabella in un database Oracle, il CREATE TABLE può essere utilizzata la dichiarazione. Il CREATE TABLE la sintassi in Oracle è la seguente:

CREATE TABLE schema_name.table_name (
    column_1 data_type column_constraint,
    column_2 data_type column_constraint,
    ...
    table_constraint
 );

Diamo un'occhiata più da vicino alla sintassi fornita:

  1. schema_name.table_name :nomi della tabella e schema a cui appartiene la nuova tabella.
  2. column_1 e column_2 data_type column_constraints :segnaposto per i nomi delle colonne.
  3. data_type :NUMERO, VARCHAR, ecc.
  4. column_constraint :NOT NULL, chiave primaria, controllo, ecc.
  5. table_constraint :vincoli di tabella (chiave primaria, chiave esterna, controllo).

Troverai Oracle CREATE TABLE esempio di sintassi più avanti in questo articolo.

Nota :
Oltre a imparare a creare una tabella in Oracle, potresti anche voler approfondire le tue conoscenze su Dichiarazione Oracle ALTER TABLE .

Esempio CREATE TABLE

È sempre meglio imparare dalla pratica. Pertanto, diamo un'occhiata a Oracle CREATE TABLE esempio:

L'esempio seguente mostra come creare una tabella a tre colonne denominata dipendenti :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Colonna 1 si chiama employee_id e ha un tipo di dati numerico (lunghezza massima 10 cifre). Non può contenere valori nulli.
  • Colonna 2 si chiama nome_cliente e ha un tipo di dati varchar2 (lunghezza massima di 50 caratteri) e non può contenere anche valori nulli.
  • Colonna 3 si chiama città e ha un tipo di dati varchar2. A differenza delle due precedenti, questa colonna può contenere valori null.

CREA TABELLA con vincolo PRIMARY KEY

Ora vediamo come creare una tabella in Oracle con una chiave primaria. Per definire una chiave primaria per la tabella, puoi utilizzare la nostra tabella Dipendenti creata in precedenza , modificare il CREATE TABLE di Oracle SQL istruzione e definire l'employee_id come chiave primaria:

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50),
  CONSTRAINT employees_pk PRIMARY KEY (employee_id)
);

La PRIMARY KEY La clausola consente di specificare una colonna come chiave primaria. È possibile utilizzare la sintassi della chiave primaria per identificare ogni riga univoca nella tabella. A differenza di altri database, Oracle consente a una tabella di includere solo una chiave primaria e ogni campo della chiave primaria deve contenere valori diversi da NULL affinché la tabella sia considerata valida. Nell'esempio sopra, definiamo l'employee_id colonna come colonna chiave primaria .

CREA TABELLA con CHIAVE ESTERA

Diamo un'occhiata alla sintassi per Oracle CREATE TABLE dichiarazione FOREIGN chiave. Può essere definito sia a livello di colonna che a livello di tabella:

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> FOREIGN KEY (col1,col2) REFERENCES table(col1,col2)
)  tablespace <tablepace name>

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>;

CREATE TABLE dept
( dept_id number(10) NOT NULL,
dept_name varchar2(50) NOT NULL,
CONSTRAINT dept_pk PRIMARY KEY (dept_id)
);

CREATE TABLE emp
( emp_no number(10) NOT NULL,
emp_name varchar2(50) NOT NULL,
dept_id number(10),
salary number(6),
CONSTRAINT emp_pk PRIMARY KEY (emp_no),
CONSTRAINT dept_fk
FOREIGN KEY (dept_id)
REFERENCES dept(dept_id) );

In questa sintassi:

  • Colonna 1 è etichettato emp_no , ed è formattato come un numero, il che significa che non può includere alcun valore nullo.
  • Colonna 2 è intitolato emp_name , che è compilato come varchar2(50) e non può includere alcun valore null.
  • Colonna 3 si chiama dept_id e ha un tipo di dati numerico.
  • Colonna 4 si chiama salary ed è anche formattato come colonna numerica.
  • Vincolo della chiave primaria a livello di tabella emp_pk è definito sulla chiave (emp_no ).
  • Restrizioni della chiave esterna a livello di tabella dept_fk che fa riferimento alla tabella di reparto dept_id .

CREA TABELLA con colonna NOT NULL

Se vuoi specificare che la colonna non può essere vuota e deve contenere un valore, puoi definirla come NOT NULL. Trova la sintassi per CREATE TABLE comando con la colonna NOT NULL in Oracle di seguito:

CREATE TABLE employees_bdays
(
emp_name VARCHAR(30),
bday DATE
emp_id VARCHAR(15) NOT NULL
);

Come puoi vedere, emp_id implica l'inserimento di un valore per ogni riga di dati in quanto NON è NULL.

CREA TABELLA con una colonna data

Se devi creare una tabella con la colonna della data in Oracle, la seguente sintassi potrebbe tornare utile:

CREATE TABLE employees_bdays (
bday DATE
);

Per inserire in modo efficiente una data nella colonna, è necessario to_date funzione che accetta una stringa di caratteri contenente la data e un'altra stringa di caratteri che le istruisce su come interpretare la data ricevuta.

to_date('01 December 2021','DD Month YYYY')
to_date('01/12/2021','DD/MM/YYYY')

Alternativa Oracle a SQL CREATE TABLE SE NON ESISTE

Quegli utenti, che sono abituati a un SQL molto utile CREATE TABLE IF NOT EXISTS comando, potrebbe essere deluso in quanto non esiste una tale affermazione in Oracle. Ma se devi ancora determinare se una tabella esiste già prima di crearla in Oracle, troverai soluzioni alternative a questo problema di seguito.

Se ricevi un errore (ORA-00955:il nome è già utilizzato da un oggetto esistente) durante il tentativo di creare una tabella, può servire come indicatore che tale tabella è già presente.

Crea una nuova tabella da un'altra tabella usando CREATE TABLE AS SELECT

A volte, è necessario copiare i dati da una tabella e inserirli in un'altra. È abbastanza facile creare una tabella come un'altra tabella in Oracle, inoltre è molto utile. Risparmia tempo e fatica se vuoi creare una tabella con la stessa struttura. Semplifica anche il processo di test.

Per vedere come creare una tabella da un'altra tabella in Oracle, guarda lo script seguente:

CREATE TABLE table_name AS (
SELECT select_query
);

Viene anche chiamato CREATE TABLE AS SELECT (CTAS).

Puoi inserire il nome_tabella per la tua nuova tabella o usa il SELECT query per copiarlo. Inoltre, puoi inserire SELECT * FROM tabella_vecchia se è necessario copiare tutti i dati nella nuova tabella. Se devi limitare i valori da copiare, WHERE la clausola ti sarà utile.

CREA TABELLA da SELECT in PL/SQL

In Oracle, puoi anche creare una tabella da un'altra immettendo SELECT istruzione alla fine del CREATE TABLE dichiarazione. In questo caso, tutti i record della vecchia tabella verranno copiati in quella nuova. La sintassi di Oracle CREATE TABLE dal SELECT è il seguente:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Come puoi vedere, creazione di tabelle PL/SQL da SELECT il comando è molto utile. Nota che puoi anche creare una tabella temporanea da SELECT .

Come creare e inserire dati in una tabella temporanea

Le tabelle temporanee vengono utilizzate in Oracle per archiviare i dati che appartengono a una sessione oa una transazione.

La tabella temporanea ORACLE è un oggetto DDL con tutte le restrizioni.

Quindi, come creare una tabella temporanea in Oracle? È possibile utilizzare l'istruzione CREATE GLOBAL TEMPORARY TABLE per creare una tabella temporanea. Per definire se i dati nella tabella sono specifici della transazione (impostazione predefinita) o specifici della sessione, utilizzare la clausola ON COMMIT.

La sintassi per i dati specifici della transazione è la seguente:

CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         operation CHAR(20))
      ON COMMIT DELETE ROWS;

CREA TABELLA in un batter d'occhio usando dbForge per Oracle

Il tempo è sempre stato una delle risorse più preziose là fuori. Pertanto, potresti trovare utile l'utilizzo di un IDE appropriato in termini di risparmio di tempo. Una delle migliori soluzioni è dbForge Studio per Oracle. È uno strumento universale che può essere utile per lo sviluppo, l'amministrazione e la gestione dei database Oracle. Questo efficiente client GUI è ottimo per DBA, sviluppatori di database, ingegneri del software e analisti. dbForge Studio per Oracle consente la sincronizzazione dei dati tra diversi server Oracle e facilita l'automazione dei processi di sviluppo del database.

Alla prima apertura dell'IDE, vedrai le Proprietà di connessione al database finestra. Per aprirlo manualmente, scegli Database e fai clic su Nuova connessione .

Successivamente, compila i campi corrispondenti e premi Test connessione .

Se tutto è configurato correttamente, vedrai il messaggio di connessione riuscita sarà in qualche modo simile a questo:

Dopo esserti connesso al tuo server Oracle, scegli l'utente per cui desideri creare una nuova tabella. Il nostro recente post sul blog su come creare un nuovo utente in Oracle potrebbe tornare utile in questo passaggio.

Il primo passo verso la creazione di una nuova tabella consiste nel fare clic con il pulsante destro del mouse sullo schema richiesto. Seleziona Nuovo oggetto e fai clic sulla prima opzione:Tabella .

1. Nel Nome casella di testo dell'Editor tabelle , inserisci il nome di una tabella. Nell'esempio seguente, stiamo creando una tabella intitolata dipendenti .

2. Nella griglia sottostante, digita i nomi per le colonne future, scegli il tipo di dati e se devono essere NOT NULL.

3. Le proprietà della colonna verrà visualizzato sul lato destro di Editor tabelle .

4. Vedrai che tutte le azioni che esegui in Editor tabelle , si riflettono nella query SQL nella parte inferiore della finestra.

Una volta configurate le proprietà della tabella, fai clic su Applica modifiche e basta!

Conclusione

La creazione di tabelle è una delle attività più comuni quando si lavora con i database Oracle poiché aiuta a organizzare i dati. Nella nostra guida, abbiamo offerto una procedura dettagliata su come creare una tabella in Oracle utilizzando 10 modi diversi. È possibile utilizzare l'istruzione Oracle SQL CREATE TABLE ed eseguire la query manualmente oppure utilizzare un IDE appropriato per automatizzare il processo. In questo caso, dbForge Studio per Oracle è la scelta migliore.

Link utili

  • Crea un database in Oracle
  • Rinomina la tabella in Oracle
  • Formattatore PL/SQL