DML - Data Manipulation Language
- Nem adnak vissza eredményt
- Csak az adatbázis tartalmát változtatják meg
- Módosító utasítások
INSERTDELETEUPDATE
Beszúrás - INSERT
- Mantra:
INSERT INTO <reláció> VALUES (<attribútum lista>); - Alap esetben a tábla def sorrendje szerinte kell megadni az értékeket
- Opcionálisan a reláció után megadhatóak az attribútumokat
- Így módosítható a sorrend
- Vagy ha nincs minden érték, akkor így vagy
NULLvagy alapértelmezett értékkel helyettesíthető
- Lekérdezés eredményét is beszúrhatjuk
INSERT INTO <reláció> (<alkérdés>);szintaxissal
Beszúrás nyers adatokkal - Példa
Beszúrás alkérdéssel - Példa
A
Látogat(alkesz, kocsma)tábla használatávaé adjuk hozzá aSzesztestvérek(név)táblához Susy szesztestvéreitElőadás alapján:
- Szesztestvérek azok az alkeszek, akik legalább egy közös kocsmát látogatnak
INSERT INTO Szesztestvérek
(SELECT l2.alkesz
FROM Látogat l1, Látogat l2
WHERE l1.alkesz = 'Susy'
AND l2.alkesz <> 'Susy'
AND l1.kocsma = l2.kocsma
);
Törlés - DELETE
- Mantra:
DELETE FROM <reláció> WHERE <feltétel>;
Törlés szemantikája:
Először kiválasztja a
WHEREfeltételnek eleget tevő sorokat, és utána minden előfordulást törölTehát ha egy törlés kihatással is lenne egy másik sor feltételére (mondjuk párosítással), mivel a kiértékelés történik meg előbb, mindkettőre teljesülni fog a feltétel, és így mindkettő törlésre kerül.
Törlés - Példa
Töröljük azokat a söröket a
Sörök(név, gyártó)táblából, amikhez létezik olyan sör, mit ugyanaz a cég gyártott
DELETE FROM Sörök s
WHERE EXISTS (
SELECT név
FROM Sörök
WHERE gyártó = s.gyártó
AND név <> s.név
);
Módosítás - UPDATE
- Mantra:
UPDATE <reláció> SET <attribútumok értékadással> WHERE <feltétel> - Az adott feltételnek eleget tevő sorokon a megadott értékadások hajtódnak végre