8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Misc | PL/SQL | SQL | RAC | WebLogic | Linux

Home “Articoli” Misc ” Qui

Questa è l’ottava parte di una serie di articoli che mostrano le nozioni di base di SQL. In questo articolo diamo un’occhiata ad alcune delle variazioni sull’istruzioneINSERT.,

  • Setup
  • COMMIT e ROLLBACK
  • INSERT base
  • INSERISCI in vista
  • INSERISCI … SELEZIONA
  • Subquerie scalari

Articoli correlati.

  • SQL per Principianti (Parte 8) : L’Istruzione INSERT
  • SQL per Principianti – Playlist Completa
  • Oracle SQL Articoli – guida Introduttiva
  • Multitavolo Inserti

Installazione

È possibile eseguire tutte queste query online gratuitamente tramite SQL Violino.

Gli esempi in questo articolo richiedono la presenza delle seguenti tabelle.,

Queste tabelle sono una variante delle tabelle EMP e DEPT dello schema SCOTT. Vedrai molti esempi Oracle su Internet usando le tabelle dello schema SCOTT. Puoi trovare le definizioni della tabella originale in “OR ORACLE_HOME/rdbms/admin / utlsampl.script sql”.

In questo articolo, avremo anche bisogno della seguente copia della tabella DIPENDENTI. Si noti che abbiamo reso obbligatorie le colonne EMPLOYEE_NAME e JOB. La colonna EMPLOYEE_ID è implicitamente obbligatoria, in quanto è la chiave primaria.,

COMMIT e ROLLBACK

Tutte le modifiche del linguaggio di manipolazione dei dati (DML) vengono eseguite come parte di una transazione. Non sono permanenti finché non vengono confermati utilizzando l’istruzioneCOMMIT. Una volta eseguito il commit, l’unico modo per annullare una modifica è emettere una nuova istruzione DML per modificare i dati. Diverse istruzioni possono essere raggruppate insieme per formare una singola transazione.

I comandi DDL (Data Definition Language) eseguono un commit implicito, che conferma anche tutte le modifiche DML in sospeso nella sessione corrente.,

Se decidi di non voler mantenere alcune modifiche non committed, puoi eliminarle usando l’istruzione ROLLBACK. Molti degli esempi in questo articolo emetterannoROLLBACK istruzioni dopo il test, per ripristinare i dati allo stato originale.

Alcuni strumenti e linguaggi di programmazione sono predefiniti per il commit automatico, quindi emettono automaticamente un’istruzione COMMIT dopo ogni istruzione DML che elaborano. Non lasciarti ingannare dal pensare che questo sia un comportamento predefinito. Non lo è.,

Basic INSERT

La versione più semplice dell’istruzione INSERT non specifica le colonne da inserire. Presuppone che i valori siano specificati nell’ordine corretto delle colonne e che non siano stati omessi valori di colonna. Di conseguenza, questo è pericoloso nel codice dell’applicazione in quanto l’aggiunta di una colonna alla tabella interromperà l’istruzione.

Specificare un elenco di colonne è molto più sicuro in quanto l’istruzione non si interromperà se vengono aggiunte colonne opzionali alla tabella.,

Un elenco di colonne esplicito consente inoltre di rimuovere le colonne opzionali dall’istruzione e scambiare le posizioni delle colonne nell’istruzione. Nell’esempio seguente le colonne MANAGER_ID, COMMISSION e DEPARTMENT_ID sono state rimosse e la colonna EMPLOYEE_ID è stata spostata alla fine dell’elenco delle colonne e dell’elenco dei valori.

Ricorda, la mancanza di colonne obbligatorie non è consentita, a meno che non si disponga di valori predefiniti di colonna o trigger che li popolano. Nell’esempio seguente viene omessa la colonna LAVORO, che è una colonna obbligatoria nella tabella EMPLOYEES2.,

INSERISCI nelle viste

È possibile inserire nella tabella di base associata a una vista. Ci sono alcune restrizioni associate a questo, ma sono un po ‘ fuori portata per un articolo di livello principiante. Nell’esempio seguente, creiamo una vista semplice sulla tabella EMPLOYEES2, quindi inseriamo in essa.

Non lo vedrai molto spesso, ma puoi anche inserirlo in viste in linea. Questo può essere usato per controllare l’elenco di colonne per l’inserimento, piuttosto che usare un elenco di colonne esplicito.

INSERIRE …, SELEZIONARE

È possibile creare più righe in una singola istruzioneINSERTutilizzando la sintassiINSERT ... SELECT. L’esempio seguente copia tutti i dati dalla tabella EMPLOYEES nella tabella EMPLOYEES2.

L’elenco delle colonne nell’istruzione INSERT deve corrispondere all’elenco SELECT nella query.

Le regole normali si applicano per la porzione di query dell’istruzione, in modo da poter filtrare i dati o unirsi ad altre tabelle per raccogliere i dati.,

Subqueries Scalari

Le subqueries scalari possono essere utilizzate per generare un valore per un’istruzioneINSERT. Nell’esempio seguente, la colonna STIPENDIO è popolata da una sottoquery scalare, che restituisce il salario massimo dalla tabella DIPENDENTI e ne aggiunge 1000.

Per ulteriori informazioni vedere: