Podstawowe Zapytania SELECT

download Podstawowe Zapytania SELECT

of 43

description

Kusadasdasd - ads Podstawowe Zapytania SELECT

Transcript of Podstawowe Zapytania SELECT

  • Podstawowe zapytania SELECT(na jednej tabeli)

  • Struktura polecenia SELECT

    SELECT opisuje nazwy kolumn, wyraenia arytmetyczne, funkcjeFROM nazwy tabel lub widokwWHERE warunek (wybieranie wierszy)GROUP BY nazwy kolumnHAVING warunek (grupowanie wybieranych wierszy)ORDER BY nazwy kolumn lub pozycje kolumnKade polecenie SELECT musi posiada klauzule SELECT oraz FROM. Pozostae klauzule s opcjonalne.

  • Wykona nastpujce zapytanie dla tabeli PRACOWNICY pobierajce wszystkie atrybuty:

    SELECT * FROM PRACOWNICY;

  • Wykona proste zapytanie pobierajce wszystkie atrybuty na pozostaych tabelach bazy:

    tabele - KLIENCI, MIEJSCA, SAMOCHODY, WYPOZYCZENIA

  • Wykona zapytanie z selekcj atrybutw na jednej tabeli:

    SELECT IMIE, NAZWISKO, DZIAL FROM PRACOWNICY;

  • Wykona zapytanie wybierajce z klauzul sortowania rosnco (wykorzystanie operatora ASC):

    SELECT IMIE, NAZWISKOFROM PRACOWNICYORDER BY NAZWISKO ASC;

  • Wykona zapytanie wybierajce z klauzul sortowania malejco (wykorzystanie operatora DESC):

    SELECT IMIE, NAZWISKOFROM PRACOWNICYORDER BY NAZWISKO DESC;

  • Wykona zapytanie wybierajce z klauzul sortowania dla wikszej iloci atrybutw (wykorzystanie operatora ORDER BY):

    SELECT IMIE, NAZWISKO, DZIALFROM PRACOWNICYORDER BY STANOWISKO ASC, NAZWISKO ASC;

  • Wykona zapytanie wybierajce z klauzul sortowania dla wikszej iloci atrybutw (wykorzystanie operatora ORDER BY) atrybuty wskazujemy poprzez ich numer w tabeli oraz ich nazwie:

    SELECT IMIE, NAZWISKO, DZIALFROM PRACOWNICYORDER BY 3 ASC, 2 ASC, DZIAL ASC;

  • Wybieranie wierszy nie powtarzajcych si, czyli z eliminacjduplikatw we wszystkich kolumnach wyspecyfikowanych w wyraeniu SELECT (sowo kluczowe DISTINCT):

    SELECT DISTINCT STANOWISKOFROM PRACOWNICY;

    Tylko jedno sowo kluczowe DISTINCT moe zosta uyte w caym zapytaniu SELECT.

  • Zapytania z selekcja okrelonych wierszy na jednej tabeli za pomoc warunku wyspecyfikowanego w klauzuliWHERE:

    SELECT IMIE, NAZWISKO, STANOWISKO, DZIALFROM PRACOWNICYWHERE STANOWISKO = 'SPRZEDAWCA';

    Wartoci typu znakowego, daty lub czasu musz by otoczone znakami apostrofu. Mae i wielkie litery s rozrniane.

  • Wartoci kolumn numerycznych w zapytaniach z selekcjokrelonych wierszy nie s otaczane znakami apostrofu:

    SELECT NR_KLIENTA, NR_SAMOCHODU, NR_PRACOW_WYP, CENA_JEDNFROM WYPOZYCZENIAWHERE CENA_JEDN >= 100;

  • Operatory relacji (porzdku) uywane w warunku klauzuli WHERE. Przykad warunku z operatorem rwny:

    SELECT NR_KLIENTA, NR_SAMOCHODU, NR_PRACOW_WYP, CENA_JEDNFROM WYPOZYCZENIAWHERE CENA_JEDN = 100;

    Zmodyfikowa i wykona zapytanie aby zawierao operatory relacji (nie rwna), > (wiksza ni), >= (wiksza lub rwna), < (mniejsza),

  • Operator AND uywany w klauzuli WHERE w warunku wyboru wierszy:

    SELECT IMIE, NAZWISKO, STANOWISKO, DZIALFROM PRACOWNICYWHERE STANOWISKO = 'SPRZEDAWCA'AND DZIAL = 'OBSLUGA KLIENTA';

  • Operator OR uywany w klauzuli WHERE w warunku wyboru wierszy:

    SELECT IMIE, NAZWISKO, STANOWISKO, DZIALFROM PRACOWNICYWHERE STANOWISKO = 'SPRZEDAWCA'OR DZIAL = 'OBSLUGA KLIENTA';

  • Operator OR uywany w klauzuli WHERE w warunku wyboru wierszy. Wyszukane bd okrelone warunkiemkrotki, a nastpnie wyszukane krotki bd uporzdkowane wedug dziau, a nastpnie bardziej szczegowo, rwnie wedug nazwiska:

    SELECT IMIE, NAZWISKO, STANOWISKO, DZIALFROM PRACOWNICYWHERE STANOWISKO = 'KIEROWNIK'AND DZIAL = 'OBSLUGA KLIENTA'OR DZIAL = 'TECHNICZNY'ORDER BY DZIAL, NAZWISKO;

  • Operator OR uywany w klauzuli WHERE w warunku wyboru wierszy. W warunku zoonym zastosowano nawiasy w celu wskazania kolejnoci sprawdzania poszczeglnych warunkw tego warunku zoonego:

    SELECT IMIE, NAZWISKO, STANOWISKO, DZIALFROM PRACOWNICYWHERE STANOWISKO = 'KIEROWNIK'AND (DZIAL = 'OBSLUGA KLIENTA'OR DZIAL = 'TECHNICZNY')ORDER BY DZIAL, NAZWISKO;

    Wyniki tego zapytania rni si od wynikw w zadaniu powyej.

  • Predykat IN uywany jest w klauzuli WHERE w warunku wyboru wierszy. Pozwala porwnywa wartociokrelonego atrybutu (cilej pola tabeli) do wartoci z ich zbioru okrelonego w predykacie IN, oraz zalicza do zbioru wynikowego krotek tylko te krotki, ktre ten predykat speniaj. Wartoci typu znakowego, daty i czasu musz by otoczone apostrofem.W poniszym zapytaniu predykat suy do wyszukania okrelonych nim krotek dotyczcych sprzedawcy i kierownika:

    SELECT IMIE, NAZWISKO, STANOWISKO, DZIALFROM PRACOWNICYWHERE STANOWISKO IN ('SPRZEDAWCA', 'KIEROWNIK');

  • Wartoci w predykacie IN mog by typu numerycznego, znakowego, typu daty lub czasu:

    SELECT MARKA, TYP, ROK_PROD, POJ_SILNIKAFROM SAMOCHODYWHERE POJ_SILNIKA IN (1400, 1600);

  • Predykat BETWEEN uywany jest w klauzuli WHERE w warunku wyboru wierszy. Pozwala okrela, czy warto danego atrybutu (pola wiersza tabeli) zawiera si midzy dwoma wskazanymi wartociami tego atrybutu. Do zbioru wynikowego krotek zalicza si tylko te krotki, ktre ten predykat speniaj:

    SELECT MARKA, TYP, ROK_PROD, POJ_SILNIKAFROM SAMOCHODYWHERE POJ_SILNIKA BETWEEN 1100 AND 1800;

  • Wybieranie wartoci NULL. Suy do wybierania z tabeli wierszy (krotek), w ktrych jedno z pl zawiera warto pust NULL. Polega to na uyciu predykatu IS NULL.W poniszym przykadzie wybieramy wszystkich klientw, ktrzy nie posiadaj karty kredytowej. Jako wynik zostan zwrcone wiersze z danymi o klientach, ktrzy w polu NR_KARTY_KREDYT nie posiadaj adnego wpisu:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NR_KARTY_KREDYT IS NULL;

  • Moliwe jest wybieranie wszystkich klientw posiadajcych kartkredytow. Wtedy w klauzuli WHERE dla sprawdzenia wartoci w polu NR_KARTY_KREDYT uywamy rwnie predykatu NULL, lecz z zaprzeczeniem, ktry zapisujemy IS NOT NULL:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NR_KARTY_KREDYT IS NOT NULL;

  • Wyszukiwanie czciowe predykat LIKE. Czsto zachodzi konieczno wyszukania na przykad nazwisk klientw, ktrych nazwiska zaczynajsiod konkretnej litery. Predykat LIKE umoliwia to:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO LIKE 'K%';

  • Inny przykad uycia predykatu LIKE. Zapytanie zwracajce wiersze z danymi o klientach, ktrych nazwiska kocz si na SKI:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO LIKE '%SKI';

  • Inny przykad uycia predykatu LIKE. Zapytanie wyszukujce klientw, ktrzy w swoim nazwisku posiadaj litery K oraz A w takim wanie porzdku:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO LIKE '%K%A%';

  • W zapytaniach z predykatem LIKE mona stosowa zaprzeczenie NOT oraz operatory AND i OR:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO NOT LIKE 'K%';

  • W zapytaniach z predykatem LIKE mona stosowa zaprzeczenie NOT oraz operatory AND i OR.Nastpujce zapytanie wyszuka wszystkich klientw, ktrych nazwiska nie zaczynaj si na liter K oraz D:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO NOT LIKE 'K%' ANDNAZWISKO NOT LIKE 'D%';

    Znak % zastpuje dowolny cig znakw.

  • Moliwe jest wyszukanie klientw, ktrych nazwiska zawierajdrug liter O. Znak _ zastpuje dowolnypojedynczy znak:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO LIKE '_O%';

  • Wyszukujemy klientw o nazwiskach, w ktrych trzecia litera jest C:

    SELECT IMIE, NAZWISKO, ULICA, MIASTOFROM KLIENCIWHERE NAZWISKO LIKE '__C%';

  • Utworzy zapytanie dla tabeli SAMOCHODY wybierajce atrybuty MARKA, TYP, PRZEBIEG:

  • Utworzy zapytanie dla tabeli MIEJSCA wybierajce atrybuty ULICA, NUMER, KOD, MIASTO, TELEFON:

  • Utwrz zapytanie wybierajce na tabeli SAMOCHODY wybierajce atrybut MARKA bez powtrze:

  • Utwrz zapytanie na tabeli SAMOCHODY wybierajc atrybuty MARKA, TYP, PRZEBIEG wywietl tylko te samochody ktre skoloru (KOLOR) NIEBIESKI:

  • Utwrz zapytanie na tabeli KLIENCI wybierajc atrybuty IMIE, NAZWISKO, NR_TELEFONU wywietl tylko tych klientw dla ktrych warto atrybutu MIASTO jest rwne WARSZAWA (wywietlamy klientw z Warszawy):

  • Utwrz zapytanie na tabeli PRACOWNICY pobierz nastpujce atrybuty: IMIE, NAZWISKO, DZIAL, STANOWISKO wywietl tylko tych pracownikw dla ktrych warto pensji jest wiksza od 1500:

  • Utwrz zapytanie na tabeli SAMOCHODY wywietl nastpujce atrybuty: MARKA, TYP, ROK_PROD, PRZEBIEG wywietl tylko te samochody ktrych marka to: FORD i typ to ESCORT:

  • Utwrz zapytanie na tabeli SAMOCHODY wywietl nastpujce atrybuty: MARKA, TYP, ROK_PROD, PRZEBIEG wywietl tylko te samochody ktrych marka to: FORD lub typ (TYP) to SEICENTO:

  • Utwrz zapytanie na tabeli SAMOCHODY wybierajc nastpujce atrybuty: MARKA, TYP, KOLOR, POJ_SILNIKA, PRZEBIEG wywietl tylko te samochody ktrych marka to MERCEDES typu (TYP) 190D i kolor to biay (BIALY) lub marka (MARKA) to FIAT i kolor to biay (BIALY) :

  • Utwrz zapytanie na tabeli SAMOCHODY wybierajce wszystkie atrybuty tabeli wywietl tylko te krotki dla ktrych marka to FIAT lub FORD i kolor to (KOLOR) to BIALY:

  • Utwrz zapytanie na tabeli SAMOCHODY wywietl nastpujce atrybuty: MARKA, TYP, ROK_PROD, KOLOR wywietl tylko te samochody dla ktrych przebieg (PRZEBIEG) mieci si w przedziale :

  • Utwrz zapytanie na tabeli SAMOCHODY wywietl wszystkie atrybuty tej tabeli wywietl tylko te samochody ktrych pierwsza litera marki (MARKA) to F, zmodyfikuj zapytanie w taki sposb aby wywietlone marki nie powtarzay si:

  • Utwrz zapytanie na tabeli SAMOCHODY wywietl wszystkie atrybuty tej tabeli, wywietl tylko te samochody ktrych druga litera marki (MARKA) to O, zmodyfikuj zapytanie w taki sposb aby wywietlone marki nie powtarzay si: