PODSTAWY BAZ DANYCH

Podstawy baz danych 06

Baza

DVD Rental Service

source

Transaction

BEGIN;
UPDATE accounts SET balance = balance - 100.00
    WHERE name = 'Alice';
SAVEPOINT my_savepoint;
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Bob';
-- oops ... forget that and use Wally's account
ROLLBACK TO my_savepoint;
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Wally';
COMMIT;

Ćwiczenia

  • Zlicz i pokaż imiona aktorów, które wystepują minimum 2 razy, zaczynaja sie od litery ‘C’ bądz imie jest dluższe niż 6 znaków. Wynik posortuj wg ilości malejąco. Przykladowy output powyżej.
"counter","first name"
"4","Penelope"
"3","Cameron"
"3","Christian"
"3","Cuba"
"2","Cate"
"2","Chris"
"2","Christophe
"2","Humphrey"
"2","Scarlett"
  • Dlaczego to zapytanie jest wolne?
select *
from actor
inner join film_actor using(actor_id)
cross join film
  • Pokaz imie nazwisko aktora, ktory zagral w min. 20 filmach w roku 2002, 2004, 2005, zlicz filmy oraz pokaz nazwy tych filmow posortowane rosnaco jako tekst, oddzielone od siebie przecinkami.
"first_name","last_name","number_of_movies","movies"
"Gina","Degeneres","21","Bed Highball, Calendar Gunfight, Chariots Conspiracy, Clueless Bucket, Coldblooded Darling, Coneheads Smoochy, Excitement Eve, Gandhi Kwai, Goodfellas Salute, Hall Cassidy, Hyde Doctor, License Weekend, Louisiana Harry, Metal Armageddon, Midnight Westward, Movie Shakespeare, Mummy Creatures, Seven Swarm, Storm Happiness, Sugar Wonka, Telegraph Voyage"
"Olympia","Pfeiffer","21","Badman Dawn, Chitty Lock, Color Philadelphia, Contact Anonymous, Deep Crusade, Firehouse Vietnam, Fugitive Maguire, Hanky October, Ice Crossing, Idols Snatchers, Intolerable Intentions, Mars Roman, Maude Mod, Murder Antitrust, None Spiking, Santa Paris, Sense Greek, Storm Happiness, Sweet Brotherhood, Tourist Pelican, Wait Cider"
  • Zastap ostatnie 3 znaki z nazwiska aktora tekstem ‘-XYZ ‘(bez edycji w bazie), wypisz nazwiska rosnaco
"replace"
"Akr-XYZ"
"Akr-XYZ"
"Akr-XYZ"
"Al-XYZ"
"Al-XYZ"
"Al-XYZ"
"Asta-XYZ"
"Bac-XYZ"
"Bai-XYZ"
"Bai-XYZ"
"B-XYZ"
"B-XYZ"
"Barrym-XYZ"
"Basin-XYZ"
"Ben-XYZ"
"Ben-XYZ"
"Ber-XYZ"
"Berg-XYZ"
  • Zlicz i pokaz ile jest filmow w kazdym jezyku
UPDATE film SET language_id = FLOOR(random() * 5 + 1)
  • Rozklad filmow per jezyk w 2004
"name","lang_dist"
"English             ","18.52%"
"Japanese            ","19.44%"
"French              ","21.30%"
"Mandarin            ","13.89%"
"Italian             ","26.85%"
  • Transakcje:
    • przeczytac dokumentacje
    • uruchomic przyklady na instniejacej bazie danych
    • zmodyfikowac dane nie zapisujacy transakcji, w tym samym czasie sprawdzic (w innym oknie) edytowane dane