Powtórzenie wiadomości

1. Wypisz: region, ilość pracowników, uwzględnij tylko te regiony, gdzie ilość pracowników jest większa niż 5. Posortuj malejąco wg ilości pracowników.

1-1

SELECT R.name AS nazwaRegionu, COUNT(E.id) AS iloscPracownikow
FROM emp E JOIN dept D ON D.id = E.dept_id
RIGHT JOIN region R on R.id = D.region_id
GROUP BY R.name
HAVING COUNT(*) > 5
ORDER BY COUNT(E.id) DESC;

 

2. Wypisz: tytuł zawodowy, ilość pracowników, średnie wynagrodzenie, uwzględnić tylko tych, których średnie wynagrodzenie jest większe niż $700. Dane posortować wg tych tytułów zawodowych.

1-2

SELECT E.title as tytulZawodowy, COUNT(*) AS iloscPracownikow, AVG(salary) as srednieWynagrodzenie
FROM emp E
GROUP BY E.title
HAVING AVG(salary) > 700
ORDER BY title;

 

3. Wyświetlić imię i nazwisko pracownika (konkatenacją), imię i nazwisko jego managera. Zastosuj aliasy. Posortuj wg nazwisk i imion pracowników. Uwzględnić także tych pracowników, którzy nie mają managera.

1-3

SELECT CONCAT(Ez.first_name, ' ', Ez.last_name) AS pracownik, CONCAT(Ew.first_name, ' ', Ew.last_name) AS manager
FROM emp Ez LEFT JOIN emp Ew ON Ez.manager_id=Ew.id
ORDER BY Ez.last_name, Ez.first_name;

 

4. Pobierz z bazy danych: imię i nazwisko przedstawiciela handlowego, kraj i ilość klientów w tym kraju. Posortuj wg nazwiska i imienia pracownika oraz ilości klientów w danym państwie.

SELECT CONCAT(E.id, ' ', E.first_name, ' ', E.last_name) AS przedstawicielHandlowy, C.country AS kraj, COUNT(C.id) AS iloscKlientow
FROM emp E RIGHT JOIN customer C ON E.id = C.sales_rep_id
GROUP BY E.id, C.country
ORDER BY E.last_name, E.first_name, COUNT(C.id) DESC;

1-45. Zwiększyć o 5% cenę produktu, którego sprzedaż była największa.

 

Język SQL DCL na przykładzie DBMS MySQL-ćwiczenia praktyczne. Użytkownicy i ich uprawnienia.

Przebieg ćwiczeń:

Zad. 1
Zalogować się do serwera MySQL na użytkownika root i uaktywnić systemową bazę danych ‘mysql’. Sprawdzić w systemowych tabelach jakie uprawnienia mają użytkownicy tego serwera na poziomie globalnym, na poziomie baz danych i na poziomie tabel.

Zad. 2
Utworzyć nowego użytkownika o nazwie tibg1u1, który będzie się logował z dowolnego komputera przy pomocy hasła THM*2014 i nadać mu uprawnienia do przeglądania danych w tabelach product i inventory oraz uprawnienia do wstawiania nowych rekordów do tabeli product. Sprawdzić nadane uprawnienia, następnie zalogować się na użytkownika i sprawdzić czy nadane uprawnienia prawidłowo funkcjonują.

Zad. 3
Ponownie zalogować się na użytkownika root i zmienić hasło poprzednio utworzonego użytkownika na THM*2016 i odebrać mu uprawnienie do wstawiania nowych rekordów do tabeli product.

Zad. 4
Ponownie zalogować się na użytkownika przy użyciu nowego hasła i sprawdzić czy uprawnienie insert zostało odebrane. Należy pamiętać o przeładowaniu uprawnień po każdej zmianie.

Tworzenie funkcji w SQL na przykładzie MySQL - ćwiczenia praktyczne

Funkcje różnią się od procedur tym, że nie muszą być wskazywane parametry wejścia oraz wyjścia (funkcje bezparametrowe). Ponadto funkcja zwraca jakiś typ danych z dostępnych w SQL.

Ogólna postać funkcji

CREATE FUNCTION nazwa_f(parametry) RETURNS typ
BEGIN
    -- polecenia
    RETURN wynik
END

Czytaj dalej