#SQL - Praktyczny kurs SQL online z @napotem - czas start!

in #pl-programowanie5 years ago (edited)

Postanowiłam stworzyć praktyczny kurs SQL na steemicie! Zarówno mi to wyjdzie na dobre (pora ruszyć szare komórki na urlopie macierzyńskim) jak i może Wam. Może znajdą się tutaj osoby, które chciałyby się nauczyć SQL lub po prostu go sobie odświeżyć?

***

Poniżej wrzucam schemat bazy danych, na której będzie opierał się cały kurs. Niebawem wrzucę linka, gdzie będziecie mogli pobrać bazę wraz z danymi.

Screen Shot 2019-01-28 at 8.00.42 PM.png

***

SELECT jedna tabela bez filtracji

Przykład:
Z tabeli pracownicy (Employees) wyświetl wszystkie informacje o pracownikach.

SELECT * FROM Employees

Ćwiczenia:

  1. Z tabeli produkty (products) wyświetl informacje o nazwie i cenie produktu.
  2. Z tabeli klienci wyświetl (customers) nazwę klienta i dane adresowe (ulica, miasto, kod pocztowy).
  3. Z tabeli zamówienia (orders) wyświetlić dane o numerze zamówienia, dacie zamówienia, dacie planowanego dostarczenia, oraz rzeczywistej dacie dostarczenia.
  4. Z tabeli dostawcy (suppliers) wyświetlić dane o adresie strony internetowej danego dostawcy oraz wszystkie informacje z tej tabeli (w tej kolejności).

DISTINCT

Przykład:
Z tablicy przydziałów terytoriów pracownikom proszę wyświetlić wszystkie dane.

SELECT * FROM EmployeeTerritories

Zmienić poprzednie zapytanie tak, by wyświetlić listę numerów pracowników, którzy mają przypisine terytorium tak, by każdy występował tylko raz na liście.

SELECT DISTINCT EmployeeID FROM EmployeeTerritories

Sprawdzić odpowiednim zapytaniem w tabeli pracowników, czy lista wyświetlonych numerów ID wyczerpuje listę pracowników.

SELECT EmployeeID FROM Employees

Ćwiczenia:

  1. Na potrzeby działu kadr do ustalenia listy solenizantów (imieniny) proszę znaleźć wszystkie imiona pracowników w firmie (każde niech występuje tylko raz).
  2. Proszę wyszukać listę miast, w których firma ma klientów.
  3. Z tabeli zamówienia proszę wyszukać niepowtarzające się informacje o tym, jacy klienci zamawiają do jakich miast.

AS

Przykład:

Wyświetlić nazwiska pracowników w kolumnie o nazwie Nazwisko oraz imiona pracowników w kolumnie o nazwie Imie.

SELECT LastName AS Nazwisko, FirstName AS Imię FROM Employees

Ćwiczenia:

  1. wyświetlić pełną informacje o kategoriach, zmieniając nazwy kolumn na polskie, •spolszczyć w zapytaniu nazwy kolumn dowolnej tabeli.

ORDER BY

Przykład:

Wyświetlić imiona i nazwiska oraz daty urodzenia pracowników posortowane od najstarszego do najmłodszego.

SELECT FirstName, LastName, BirthDate FROM Employees ORDER BY Birthdate ASC

Ćwiczenia:

  1. wyświetl listę nazw produktów wraz z cenami, posortowaną według ceny począwszy od produktów najdroższych,
  2. wyświetl listę nazw firm klientów w kolejności alfabetycznej,
  3. wyświetl pełną listę terytoriów przypisanych do każdego pracownika. Numery ID pracownika uporządkuj w kolejności malejącej, a numery ID terytoriów każdego pracownika uporządkuj
    w kolejności rosnącej,
  4. wyświetl listę dat urodzeń pracowników, uporządkowaną wg stażu pracy, począwszy od najkrócej pracujących,
  5. wyświetl listę numerów ID produktu, ich cen oraz ilości na magazynie, posortowaną wg ilości towaru na magazynie (w przypadku tych samych ilości należy porządkować towary wg malejącej ceny).

Obliczenia

Przykład:
Wyświetl informację o tym, ile wynosi wartość podatku VAT (22%) dla każdego produktu. Podstawą obliczenia jest cena jednostkowa. Należy dołączyć informacje o nazwie produktu i ilości na magazynie.

SELECT ProductName, UnitPrice * 0.22, UnitsInStock FROM Products

Ćwiczenia:

  1. wyświetl nazwy oraz wartość zmagazynowanych produktów,
  2. wyświetl nazwy oraz ilość niezamówionych produktów, posortowane wg tej wartości rosnąco, (komentarz: wartości ujemne należy interpretować jako braki na magazynie)
  3. wyświetl nazwy oraz bilans danego towaru, tzn. ilość niezamówionych produktów pomnożona przez cenę jednostkową.

***

To wszystko na początek. W kolejnym odcinku internetowego kursu SQL wrzucę odpowiedzi do zapytań.

Miłego wieczoru steemit!