1. INSERT
Nu ska vi lägga till några rader i tabellen animals som har följande utseende:
SQL> DESC animals
Name Null? Type
----------------- -------- -------------
ID NOT NULL NUMBER(5)
NAME VARCHAR2(10)
WEIGHT NUMBER(6)
BIRTH DATE
|
En vanlig INSERT-sats kan se ut såhär:
SQL> INSERT INTO animals (id,name,weight,birth)
2 VALUES (1,'fluffy',13,'23-JAN-00');
1 row created.
|
Direkt efter tabellnamnet "animals" kommer kolumnlistan som beskriver vilka kolumner som ska man ger ett värde på. På andra raden efter VALUES ges själva värdena. Som synes behöver man inte några fnuttar kring data av typen NUMBER.
2. INSERT utan kolumnlista
Man kan undvika att skriva kolumnnamnen, men då måste man skriva de olika värdena i samma ordning som kolumnerna listas när man listar tabellen med describe:
SQL> DESC animals
Name Null? Type
----------------- -------- -------------
ID NOT NULL NUMBER(5)
NAME VARCHAR2(10)
WEIGHT NUMBER(6)
BIRTH DATE
SQL> INSERT INTO animals
2 VALUES (2,'snaky',8,'12-AUG-97');
1 row created.
|
Väljer man denna metod måste alla kolumner finnas med i insert-satsen. Däremot måste bara de värden som är NOT NULL ha ett värde, se nedan:
SQL> INSERT INTO animals
2 VALUES (3,null,null,null);
1 row created.
SQL> SELECT * FROM animals;
ID NAME WEIGHT BIRTH
------ ---------- ------ ---------
1 fluffy 13 23-JAN-00
2 snaky 8 12-AUG-97
3
|
3. INSERT med SELECT
Vill man kopiera data från en tabell till en annan finns en enkel metod:
SQL> INSERT INTO animals
2 (SELECT * FROM animals_org);
|
I detta fall kopierar man all data från en tabell "ANIMALS_ORG" som har samma kolumner som "ANIMALS". Denna metod påminner om CREATE TABLE AS SELECT som beskrivs på sidan om
tabeller .
4. INSERT och DEFAULT
I normala fall om man vill att en kolumn ska få ett defaultvärde undviker man att specifiera den kolumnen i sin kolumnlista:
SQL> INSERT INTO animals (id, name, birth)
2 VALUES (4,'tuddy','12-AUG-97');
1 row created.
|
I exemplet ovan får tuddy ett defaultvärde på sin vikt. Om det inte finns något kommer kolumnen att innehålla null. Det andra sättet att tilldela defaultvärde är att helt enkelt skriva "default" där man vill att värdet ska in:
SQL> INSERT INTO animals (id, name, weight, birth)
2 VALUES (4,'tuddy',default, '12-AUG-97');
1 row created.
|