Andmebaasid I (ITI0206) (kevad 2022)

Küsimus

Erki Eessaar
Mida tähendab, et kirjutage INSERT lause nii, et see poleks tundlik veergude järjekorra muutmise suhtes?

Vastus: Halb:

  • INSERT INTO Isik VALUES ('39107070123', 'Mets');
    1. Kui tabelis Isik muutub veergude järjekord, siis tuleb seda lauset muuta.
    2. Vastasel juhul võib lisamine ebaõnnestuda, või mis veel hullem, lisamine õnnestub, kuid väärtused lähevad valedesse väljadesse.
    3. Lause ei kirjelda esitatud väärtuste tähendust.
Palju parem:
  • INSERT INTO Isik (isikukood, perenimi) VALUES ('39107070123', 'Mets');
    1. Kui tabelis Isik muutub veergude järjekord, siis ei tule seda lauset muuta.
Halb:
  • INSERT INTO Magamine_koopia SELECT * FROM Magamine;
    1. Lisaks eelnimetatud probleemidele ei näe koodi lugeja, millised veerud ja millises järjekorras alampäringu poolt tagastatakse.
Palju parem:
  • INSERT INTO Magamine_koopia (ase_id, algus, magaja_id, kestus, kommentaar)
    SELECT ase_id, algus, magaja_id, kestus, kommentaar
    FROM Magamine;
Hinda vastust:

Keskmine hinne: Pole veel hinnanguid!