IN2090-ukesoppgaver: Uke 10

Ytre joins og mengdeoperatorer i SQL

Filmdatabasen

Bruk filmdatabasen for å løse følgende oppgaver.

Oppgave 1

Finn ut hvor mange produksjoner (altså alt som forekommer I filmparticipation-tabellen) hver person med etternavn 'Abbott' har deltatt i (husk å få med de som har deltatt i 0 filmer). (243 rader)

Oppgave 2

Finn tittel på alle Western-filmer laget etter 2007 som ikke har en rating. (14 rader)

Løs oppgaven på ved å bruke:

  1. NOT IN
  2. LEFT OUTER JOIN
  3. EXCEPT
  4. NOT EXISTS

Oppgave 3

Finn antall filmer som enten er komedier, eller som Jim Carrey har spilt i. (1 rad)

Oppgave 4

Finn tittel på alle filmer som som Jim Carrey har spilt i, men som ikke er komedier. (62 rader)

Northwind

Bruk Northwind-databasen for å løse følgende oppgaver.

Oppgave 5

Finn navnet på alle firmaer (Customers og Suppliers) som kommer fra Norge eller Sverige. (6 rader)

Oppgave 6

Bruk EXISTS for å finne navnet på alle kunder som har kjøpt Pavlova. (31 rader)

Oppgave 7

Finn ut hvor mange kunder som befinner seg i samme land som hver leverandør (Supplier). Resultatet skal være to kolonner, en med leverandørnavnet, og en kolonne med antall kunder fra samme land. Sorter resultatet etter antall kunder I synkende rekkefølge. (29 rader)

Bonusoppgave

Oppgaven under er hentet fra boken Database Systems - The Complete Book, Second Edition (Garcia-Molina, Ullman, Widom).

Let a and b be integer-valued attributes that may be NULL in some tuples. For each of the following conditions (as may appear in a WHERE clause), describe exactly the set of (a, b) tuples that satisfy the condition, including the case where a and/or b is NULL.

  1. a < 50 OR a >= 50
  2. a = 0 OR b = 10
  3. a = 20 AND b = 10
  4. a = b
  5. a > b