Bazy Danych - poniedziałek, 15.00 - 18.00 - zadania zestaw 03.

SELECT STATEMENT, INSERT STATEMENT, DELETE STATEMENT, UPDATE STATEMENT CD.
CREATE TABLE

Stwórz zapytania SQL które (w nawiasach nazwy tabel):

  1. Policzy ilu jest klientów w każdym z miast

  2. Wybierze te miasta w których jest więcej niż jeden klient

  3. Policzy ilość produktów w każdym zamówieniu

  4. Policzy koszt produktów w każdym zamówieniu

  5. Wybierze tych pracowników którzy mieszkają w mieście w którym nie ma żadnego klienta

  6. pogrupuje klientów (Customers) według kraju i miasta, oraz wypisze ile jest klientów z tego kraju i miasta a jednocześnie przy każdym kraju i mieście wypisze sumaryczną liczbę klientów z państwa.

  7. Wypisze klientów i jednocześnie obok kazdego z nich w kolumnie CustomersCOunt liczbę wszystkich klientów (hint: uzyj zapytania zwracającego jedną wartość w częsci SELECT klauzuli)

  8. wypisze te produkty które są droższe od średniej ceny produktów (hint: uzyj zapytania zwracającego jedną wartość w częsci WHERE klauzuli)

  9. * wypisze te produkty które są droższe od średniej ceny produktów w danej kategorii

  10. * wypisze te miasta w których jest najwięcej klientów (Customers). Jesli jest więcej takich miast niech wypisze wszystkie takie. DLa testu w Northwindzie zmienić miasto "Oulu" na "Mexico D. F.".

Stwórz zapytania SQL które (w nawiasach nazwy tabel):

  1. Zmienią datę realizacji wszystkich zamówien jeszcze nie zrealizowanych na teraz

  2. Zmienią datę realizacji wszystkich zamówien na teraz

  3. dla każdego klienta z berlina stworzą nowe zamówienie (bez produktów)

Stwórz schemat bazy danych który zawiera następujące tabele:

  1. Employees (id, name, surname, birthDate department, boss). Id jest kluczem, boss jest kluczem referencyjnym i oznacza kto jest szefem danej osoby. Jeśli osoba nie ma szefa to jest tam NULL. Department jest kluczem obcym do tabeli Departments.

  2. Salary (employeeId, amount). EmployeeId jest kluczem obcym do tabeli Employees, amount powinno byc objęte klauzulą check > 0

  3. Departments (id, name, head, description). Name nie może być puste, id jest kluczem, head jest kluczem obcym do tabeli Employees, description może być puste ale nie null.

  4. Projects (id, name, startDate, deadline, budget). Name nie może być puste, id jest kluczem, startDate i deadline musi być wypełnione, budget nie może być < 0.

  5. Assignments(employeeId, projectId). Relacja wiele-do-wielu między projektami a pracownikami.

Zmień schemat bazy aby

  1. Kolumny name, surname i birthDate nie mogły się powtarzać. Tzn nie może być dwóch ludzi o imieniu Robert Szczelina i dacie urodzenia 1986-07-27.

  2. Klucz główny w Assignements na obu kolumnach.