kategória | ||||||||||
|
||||||||||
|
||
INSERT INTO tábnév [(on1,on2,.)]
VALUES (e1,e2,e3,.) | szelekciós utasítás;
UPDATE tábnév SET on1=e1,on2=e2,..
WHERE keresési felt. | szelekciós utasítás;
DELETE FROM tábnév
[WHERE keresési felt. | szelekciós utasítás};
Csak teljes sor törlése.
Ha nincs WHERE vagy szelekciós, akkor minden sort töröl.
feladatok
Képzeljük el, hogy egy könyvesboltot vezetünk. Készítsünk egy olyan adatbázist, amelyben nyilvántarthatjuk a készleten lévő könyveket, a rendeléseket, és az eladásokat.
Hozzuk létre a következő táblákat.
Vigyünk fel néhány szállítót a szallito táblába.
Rendeljünk könyveket.
A rendelés megérkezésekor, állítsuk be a teljesítés dátumát az adott napi dátumra, és aktualizáljuk a készletet, ahol az egységárat a beszerzési ártól (rendeles tábla egysegar mezője) állítsuk nagyobbra.
Az egyes könyvek eladásakor aktualizáljuk a készletet (darab mező), és bővítsük az eladás táblát.
Kérdezzük le, hogy milyen könyvekből kell új rendelést feladni (pl. darab<2).
Megoldások
CREATE
TABLE szallito (szall_azon CHAR(3) NOT NULL PRIMARY KEY,
szall_nev CHAR(20) CHECK (szall_nev=UPPER(szall_nev)),
cim CHAR(30) CHECK (cim=UPPER(cim)) );
CREATE TABLE rendeles (rend_szam CHAR(4) NOT NULL PRIMARY KEY,
ISBN CHAR(6) NOT NULL, rend_dat DATE DEFAULT SYSDATE NOT NULL,
szall_azon NOT NULL REFERENCES szallito,
telj_dat DATE,
egysegar NUMBER (4) NOT NULL,
mennyiseg NUMBER (4));
CREATE TABLE keszlet (ISBN CHAR(6) NOT NULL, besz_dat DATE DEFAULT SYSDATE NOT
NULL,
PRIMARY KEY(ISBN, besz_dat),
cim CHAR(20) NOT NULL CHECK (cim=UPPER(cim)),
szerzo CHAR(25) CHECK (szerzo=UPPER(szerzo),
egysegar NUMBER(4) NOT NULL,
darab NUMBER(4) NOT NULL);
CREATE TABLE eladas (ISBN CHAR(6) NOT NULL, egysegar NUMBER(4) NOT NULL,
besz_dat DATE DEFAULT SYSDATE NOT NULL);
INSERT INTO szallito VALUES ('001','FOSPED','BUDAPEST');
INSERT INTO rendeles VALUES ('0001', '100001',SYSDATE,'001',NULL,1300,10);
UPDATE rendeles SET telj_dat=SYSDATE
WHERE rend_szam='0001';
Találat: 1297