DB4 – Innsetting, oppdatering og sletting
Sentrale konsepter
CRUD
INSERT/UPDATE/DELETE
Vedlikehold data sikkert med tydelige SQL-operasjoner.
Trygghet
Transaksjoner
Bruk COMMIT/ROLLBACK for å unngå utilsiktede endringer.
Drift
Skript
Lag kjørbare SQL-skript som kan bygge databasen på nytt.
Læringsmål
- Kunne bruke SQL for å sette inn nye rader, slette eksisterende rader og oppdatere eksisterende rader i tabeller.
- Kunne lage SQL-skript som oppretter databaser med eksempeldata.
- Kunne bruke phpMyAdmin for å generere SQL-skript.
- Kunne bruke SQL for å skrive ytre likekoblinger og egenkoblinger.
- Kunne kjøre SQL-spørringer fra MySQL Workbench.
Tips: Test alltid med
SELECT før/etter UPDATE/DELETE. Under arbeid
kan du bruke transaksjoner: START TRANSACTION; … COMMIT; (eller ROLLBACK;).
Testprotokoll: Skriv ned hva du forventer før du kjører SQL-en. Kjør deretter en
SELECT som sjekker om forventningen stemmer. Dette er samme tankegang som automatisk testing i kode:
forventning, handling, verifisering.
-- Forventning: Antall kunder skal øke med 1
SELECT COUNT(*) AS antall_kunder_for FROM Kunde;
INSERT INTO Kunde (Fornavn, Etternavn, Mobil)
VALUES ('Test', 'Testesen', '99999999');
SELECT COUNT(*) AS antall_kunder_etter FROM Kunde;
Oppgaver
Vi jobber videre med databasen for sykkelutleie. (Evt. start fra skriptet sykkelutleie.sql.)
A. Registrere data med SQL
Skriv SQL-kommandoer for å:
- Øke prisen på alle sykkelmodeller med 10 kroner.
- Registrere en ny kunde.
- Registrere et nytt utleieforhold for denne kunden. La
TidInninneholde et nullmerke. - Registrere innlevering for det nye utleieforholdet.
- Slette både det nye utleieforholdet og den nye kunden.
Velg eksempeldata selv.
B. Lage SQL-skript
Bruk eksport-mulighetene i phpMyAdmin for å lage et SQL-skript (med både CREATE TABLE og
INSERT) som kan brukes til å bygge opp databasen.
- Bruk knappen Eksporter i menylinjen øverst for å starte eksport.
- Test skriptet ved å slette alle tabellene fra databasen (
DROP TABLE), og deretter kjøre skriptet. - Sørg for at skriptet kan kjøres flere ganger ved å legge til
DROP TABLE-kommandoer i starten. - På grunn av fremmednøkler bør tabeller slettes i omvendt rekkefølge av hvordan de opprettes.
Se DB4 – løsningsforslag
Tilgjengelig etter passord.