1 / 7

SQL DML stavki, ki spremenijo stanje PB

SQL DML stavki, ki spremenijo stanje PB. INSERT Dodajanje novih vrstic tabele UPDATE Spreminjanje vrednosti atributov v obstoječih vrsticah tabele DELETE Brisanje vrstic tabele

badrani
Download Presentation

SQL DML stavki, ki spremenijo stanje PB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL DML stavki, ki spremenijo stanje PB • INSERT • Dodajanje novih vrstic tabele • UPDATE • Spreminjanje vrednosti atributov v obstoječih vrsticah tabele • DELETE • Brisanje vrstic tabele • Skupna značilnost: stavki se uspešno izvedejo le, če bo tudi novo stanje PB legalno (če ne pride do kršitev integritetnih omejitev)

  2. 1. INSERT • V tabelo doda 1 ali več vrstic • Uporaba: • Dodajanje novih zapisov INSERT INTO ime_tabele (atr1,atr2,…) VALUES (vr1,vr2,…); • Prepisovanje vsebine ene tabele v drugo INSERT INTO tabela1 (atr1,atr2,…) SELECT (atr1,atr2,…) FROM tabela2; • V tabelo Dijak dodajte zapis “20030”,”Kovač”,”Mojca”,”G4A” INSERT INTO Dijak (DijakID,Priimek,Ime,Razred) VALUES (“20030”,”Kovač”,”Mojca”,”G4A”); • Vsebino tabele Dijak za dijake razreda G2A prepišite v tabelo G2A INSERT INTO G2A (DijakID,Priimek,Ime,Razred,Rojen) SELECT (DijakID,Priimek,Ime,Razred,Rojen) FROM Dijak WHERE Dijak.Razred=‘G2A’; • Insert ne uspe, če: • pride do podvajanja PK, • niso navedeni vsi zahtevani atributi, • se tip atributa in vrednost ne ujemata, • vpisujemo vrednost tujega ključa, ki v starševski tabeli ne obstaja, • vrednost atributa že obstaja, atribut pa je opredeljen kot razločevalen (unique) • …

  3. 2. DELETE • Iz tabele izbriše eno ali več vrstic • Uporaba: • Brisanje vseh vrstic tabele DELETE FROM ime_tabele; -Pogojno brisanje vrstic tabele DELETE FROM ime_tabele WHERE pogoj; -Opomba: pogoj se lahko nanaša tudi na vrednosti atributov neke druge tabele, v tem primeru sledi gnezdeni stavek SELECT • Primeri • Stavek, ki izbriše vse vrstice tabele Obiskuje: • DELETE FROM Obiskuje; • Stavek, ki izbriše podatke o dijakih iz razreda G2A: • DELETE FROM Dijak WHERE Dijak.Razred=“G2A”; • Stavek, ki izbriše podatke o obiskih krožka PHP • DELETE FROM Obisk WHERE Obisk.KrozekID IN (SELECT Krozek.KrozekID WHERE Krozek.ImeKrozka=“PHP”); • Delete ne uspe, če: • Brišemo zapis starševske tabele in hkrati obstaja zapis v tabeli otrok, tip referncialne integritete pa je nastavljen na ‘prohibit’

  4. 3. UPDATE • Posodobi vrednost enega ali več atributov tabele • Uporaba: • Posodabljanje vrednosti atributa v vseh vrsticah tabele UPDATE ime_tabele SET ime_atributa = nova_vrednost, …; -Pogojno posodabljanje vrednosti atributa tabele UPDATE ime_tabele SET ime_atributa = nova_vrednost, …WHERE pogoj; -Opomba: pogoj se lahko nanaša tudi na vrednosti atributov neke druge tabele, v tem primeru sledi gnezdeni stavek SELECT • Primeri • Stavek, ki priimke dijakov prestavi v velike črke: • UPDATE Dijak SET Dijak.Priimek=UPPER(Dijak.Priimek);

  5. 3. UPDATE (nad.) • Update ne uspe, če: • pride do podvajanja PK, • vrednost neopcijkih atributov nastavljamo na NULL, • se tip atributa in vrednost ne ujemata, • vpisujemo vrednost tujega ključa, ki v starševski tabeli ne obstaja, • vrednost atributa že obstaja, atribut pa je opredeljen kot razločevalen (unique) • Posodabljamo zapis starševske tabele in hkrati obstaja zapis v tabeli otrok, tip referncialne integritete pa je nastavljen na ‘prohibit’ • Prihaja do kršitve katerekoli druge integritetne omejitve (CHECH, IN, ….)

  6. Naloge (sladoledi) Podane so relacije: obiskuje, prodaja in najraje. Sh(obiskuje)=Obiskuje(Otrok:A10,Slaščičarna:A20) Sh(prodaja)=Prodaja(Slaščičarna:A20,Sladoled:A20) Sh(najraje)=Najraje(Otrok:A10,Sladoled:A20) Podatki v relacijah so:

  7. Vprašanja: Napišite stavek SQL /izraz rel.alg., ki vrne: • imena otrok, ki zahajajo v slaščičarno Zmajček; • s katerim sladoledom lahko postrežejo v slaščičarni Slon; • s katerim sladoledom se lahko posladka Jana; • imena otrok, ki obiskujejo slaščičarni Zmajček in Slon (obe) • imena otrok, ki zahajajo samo v slaščičarno Zmajček; • v katerih slaščičarnah prodajajo Juretov najljubši sladoled; • imena otrok, ki obiskujejo le slaščičarno Slon; • v katero slaščičarno zahajajo vsi otroci; • v kateri slaščičarni ponujajo vse sladolede; • kateri otrok zahaja v vse slaščičarne; • kateri otrok ne hodi v slaščičarno Slon; • katere sladolede ne strežejo pri Slonu; Napišite answer tabelo, ki jo vrnejo naslednji stavki SQL: • SELECT Obiskuje.Otrok FROM Obiskuje; • SELECT COUNT(*) FROM Prodaja; • SELECT MAX(Prodaja.Slascicarna) FROM Prodaja,Obiskuje WHERE Prodaja. Slascicarna=Obiskuje.Slascicarna; • SELECT Najraje.Otrok FROM Najraje LEFT OUTER JOIN Obiskuje ON (Najraje.Otrok=Obiskuje.Otrok); • SELECT COUNT(Obiskuje.Slascicarna), Obiskuje.Otrok FROM Obiskuje GROUP BY Obiskuje.Otrok; • SELECT * FROM Obiskuje, Prodaja WHERE Obiskuje.Slascicarna=Prodaja.Slascicarna AND Prodaja.Sladoled = ‘čokolada’ AND Prodaja.Sladoled = ‘jagoda’;

More Related