8i/9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Misc | PL | SQL/SQL | RAC | Weblogic | linux <| p>

Home “artikelen” Misc ” hier

Dit is het achtste deel van een serie artikelen die de basis van SQL tonen. In dit artikel bekijken we enkele variaties op het INSERT statement.,

  • Setup
  • COMMIT and ROLLBACK
  • Basic INSERT
  • INSERT into View
  • INSERT … Selecteer
  • scalaire Subqueries

gerelateerde artikelen.

  • SQL voor Beginners (Deel 8): Het INSERT Statement
  • sql voor Beginners – volledige afspeellijst
  • Oracle SQL Articles – Getting Started
  • Multitable Inserts

Setup

U kunt al deze query ‘ s gratis online uitvoeren met behulp van SQL Fiddle.

De voorbeelden in dit artikel vereisen dat de volgende tabellen aanwezig zijn.,

deze tabellen zijn een variant van de EMP en DEPT tabellen uit het SCOTT schema. U zult veel voorbeelden van Oracle zien op het internet met behulp van de tabellen van het SCOTT schema. Je kunt de originele tabeldefinities vinden in de ” $oracle_home/rdbms/admin / utlsampl.SQL ” script.

in dit artikel hebben we ook de volgende kopie van de werknemers tabel nodig. Merk op dat we de kolommen EMPLOYEE_NAME en JOB verplicht hebben gesteld. De kolom EMPLOYEE_ID is impliciet verplicht, omdat het de primaire sleutel is.,

COMMIT en ROLLBACK

alle wijzigingen in Data Manipulation Language (DML) worden gedaan als onderdeel van een transactie. Ze zijn niet permanent totdat ze bevestigd zijn met behulp van de verklaring COMMIT. Eenmaal gecommit, de enige manier waarop je een wijziging kunt terugdraaien is door een nieuwe DML statement uit te geven om de gegevens te wijzigen. Meerdere afschriften kunnen worden gegroepeerd om één enkele transactie te vormen.

Data Definition Language (DDL) commando ‘ s voeren een impliciete commit uit, die ook alle uitstaande DML veranderingen in de huidige sessie bevestigt.,

Als u besluit dat u sommige niet-gecommitteerde wijzigingen niet wilt behouden, kunt u deze weggooien met behulp van het ROLLBACK statement. Veel van de voorbeelden in dit artikel geven na de test ROLLBACK verklaringen af om de gegevens terug te brengen naar de oorspronkelijke staat.

sommige gereedschappen en programmeertalen standaard automatisch vastleggen, dus geven ze automatisch eenCOMMIT statement uit na elke DML statement die ze verwerken. Laat je niet voor de gek houden door te denken dat dit standaard gedrag is. Dat is het niet.,

Basic INSERT

De eenvoudigste versie van de instructie INSERT geeft niet aan welke kolommen moeten worden ingevoegd. Het gaat ervan uit dat de waarden zijn opgegeven in de juiste kolomvolgorde en dat er geen kolomwaarden zijn weggelaten. Als gevolg hiervan is dit gevaarlijk in toepassingscode omdat het toevoegen van een kolom aan de tabel het statement zal breken.

het specificeren van een kolomlijst is veel veiliger omdat het statement niet zal breken als optionele kolommen aan de tabel worden toegevoegd.,

met een expliciete kolomlijst kunt u ook optionele kolommen uit het statement verwijderen en de posities van de kolommen in het statement verwisselen. In het volgende voorbeeld zijn de kolommen MANAGER_ID, Commissie en DEPARTMENT_ID verwijderd en is de kolom EMPLOYEE_ID verplaatst naar het einde van de kolomlijst en waardelijst.

onthoud dat het missen van verplichte kolommen niet is toegestaan, tenzij u standaardwaarden of triggers hebt die deze invullen. In het volgende voorbeeld wordt de kolom taak weggelaten, wat een verplichte kolom is in de tabel WERKNEMERS2.,

invoegen in weergaven

Het is mogelijk om in de basistabel in te voegen die geassocieerd is met een weergave. Er zijn een aantal beperkingen in verband met deze, maar ze zijn een beetje buiten het bereik voor een beginner niveau artikel. In het volgende voorbeeld maken we een eenvoudige weergave op de tabel EMPLOYEES2 en voegen we er vervolgens in in.

u zult het niet vaak zien, maar u kunt ook in inline views invoegen. Dit kan worden gebruikt om de kolomlijst voor het invoegen te controleren, in plaats van een expliciete kolomlijst te gebruiken.

invoegen …, Selecteer

Het is mogelijk om meerdere rijen aan te maken in een enkele INSERT statement met behulp van de INSERT ... SELECT syntaxis. Het volgende voorbeeld kopieert alle gegevens uit de tabel werknemers in de tabel WERKNEMERS2.

De kolomlijst in hetINSERT statement moet overeenkomen met deSELECT lijst in de query.

de normale regels zijn van toepassing op het query-gedeelte van het statement, zodat u de gegevens kunt filteren of kunt toevoegen aan andere tabellen om de gegevens te verzamelen.,

scalaire Subqueries

scalaire subqueries kunnen worden gebruikt om een waarde te genereren voor een INSERT statement. In het onderstaande voorbeeld wordt de SALARISKOLOM ingevuld door een scalaire subquery, die het maximale salaris van de werknemers tabel retourneert en er 1000 aan toevoegt.

voor meer informatie zie:

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *