170 likes | 351 Views
BAZY DANYCH. Język SQL – polecenie Select. Mariusz Zając IV FK. BAZA ADRESÓW PRACOWNIKÓW. SQL – polecenie SELECT.
E N D
BAZY DANYCH Język SQL – polecenie Select Mariusz Zając IV FK
BAZA ADRESÓW PRACOWNIKÓW SQL – polecenie SELECT
Teraz powiedzmy, że chcesz obejrzeć adres każdego pracownika. Użyj polecenia SELECT w następujący sposób: SELECT Imie, Nazwisko, Adres, Miasto, Stan FROM TabelaAdresowPracownikow; SQL – polecenie SELECT
Ogólna forma polecenia SELECT, odczytująca wszystkie wiersze w tabeli to: SELECT NazwaKolumny, NazwaKolumny, ... FROM NazwaTabeli;Aby odczytać wszystkie kolumny z tabeli bez wpisywania ich nazw, wykorzystaj: SELECT * FROM NazwaTabeli; SQL – polecenie SELECT
TABLICA STATYSTYK PRACOWNIKÓW SQL – polecenie SELECT
= równy <> / != nierówny < mniejszy < większy <= mniejszy lub równy >= większy lub równy Operatory relacyjne SQL – polecenie SELECT
Gdybyś chciał zobaczyć NumerIDPracownika osób zarabiających ponad 50000$, użyj tego: SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja >= 50000; Klauzula WHERE SQL – polecenie SELECT Gdybyś chciał zobaczyć NumerIDPracownika wszystkich Kierowników, użyj tego: SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Stanowisko = 'Kierownik';
SELECT NumerIDPracownika FROM TablicaStatystykPraconikow WHERE Pensja > 40000 AND Stanowisko = 'Personel'; SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja < 40000 OR Zyski < 10000; SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Stanowisko = 'Kierownik' AND Pensja > 60000 OR Zyski > 12000; Klauzula WHERE SQL – polecenie SELECT
Gdy chcesz otrzymać listę kierowników i personelu: SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Stanowisko IN ('Kierownik', 'Personel'); albo wylistować tych zarabiających więcej lub dokładnie 30000$, ale maksymalnie 50000$, użyj: SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja BETWEEN 30000 AND 50000; INoraz BETWEEN SQL – polecenie SELECT
Spójrz na tabelę TabelaAdresowPracownikow i powiedzmy, że chciałbyś zobaczyć wszystkie osoby, których nazwiska zaczynają się na "L"; spróbuj: SELECT NumerIDPracownika FROM TabelaAdresowPracownikow WHERE Nazwisko LIKE 'L%'; ‘%L’ nazwiska kończące się na ‘L’ ‘%L%’ nazwisk, które zawierają ‘L’ LIKE SQL – polecenie SELECT
SQL – polecenie SELECT ZAMÓWIENIA ANTYKI POSIADACZE ANTYKÓW
Powiedzmy, że chcesz wylistować ID i imiona tylko tych osób, które sprzedały antyk. Oczywiści chcesz mieć listę, w której każda osoba jest przedstawiona tylko raz -- nie interesuje cię ile antyków dana osoba sprzedała, tylko sam fakt sprzedania: SELECT DISTINCT IDSprzedajacego, NazwiskoPosiadacza, ImiePosiadacza FROM Antyki, PosiadaczeAntykow WHERE IDSprzedajacego = IDPosiadacza ORDER BY NazwiskoPosiadacza, ImiePosiadacza, IDPosiadacza; Klauzula ORDER BY sortuje nam listę według nazwiska, następnie imienia,a na koniec według ID Posiadacza. DISTINCT oraz ORDER BY SQL – polecenie SELECT
Chcemy zobaczyć najdroższą Rzecz kupioną przez każdego z posiadaczy. Musimy powiedzieć SQL-owi, by zgrupował nabytki każdego posiadacza i pokazał nam największą cenę: SELECT IDPosiadacza, MAX(Cena) FROM Antyki GROUP BY IDKupujacego; A teraz załóżmy, że chcemy zobaczyć tylko największe ceny nabytków jeśli cena przekraca $1000, więc użyjemy klauzuli HAVING: SELECT IDKupujacego, MAX(Cena) FROM Antyki GROUP BY IDKupujacego HAVING Cena > 1000; GROUP BYoraz HAVING SQL – polecenie SELECT
Spójrzmy na poniższe zaptanie, które drukuje nazwiska tych posiadaczy, którzy wystosowali jakieś zamówienie, wraz z tym zamówieniem, ale tylko dla tych zamówień, które moga być dokonane (tzn. gdy istnieje kupiec, który posiada zamawianą rzecz): SELECT Posiad.NazwiskoPosiadacza Nazwisko, Zam.ZadanyPrzemiot Zamawiany przedmiot FROM Zamowienia Zam, PosiadaczeAntykow Posiad WHERE Zam.IDPosiadacza = Posiad.IDPosiadacza AND Zam.ZadanyPrzedmiot IN (SELECT Rzecz FROM Antyki); ALIASY SQL – polecenie SELECT
ALIASY SQL – polecenie SELECT To nam daje:
Funkcje agregacyjne SQL – polecenie SELECT • SUM () zwraca sumę wartości z wierszy spełniających zapytanie dla kolumny numerycznej. • AVG () zwraca średnią dla danej kolumny. • MAX () zwraca największą wartość w danej kolumnie. • MIN () zwraca najmniejszą wartość w danej kolumnie. • COUNT(*) zwraca liczbę określającą ilość wierszy spełniających warunki.
SQL – polecenie SELECT Funkcje agregacyjne Mając w pamięci tabele z początku tego dokumentu, spójrzmy na trzy przykłady: SELECT SUM(Pensja), AVG(Pensja) FROM TablicaStatystykPracownikow; To zapytanie pokazuje sumę wszystkich pensji w tabeli i średnią pensję wyliczoną ze wszystkich wpisów w tabeli. SELECT MIN(Zyski) FROM TablicaStatystykPracownikow WHERE Stanowisko = 'Kierownik'; To zapytanie pokazuje najmniejszą wartość kolumny "Zyski" wśród pracowników, którzy są kierownikami. Wartość ta to 12500. SELECT COUNT(*) FROM TablicaStatystykPracownikow WHERE Stanowisko = 'Personel'; To zapytanie pokazuje, ilu pracownikow ma status personelu (3).