• [ Pobierz caÅ‚ość w formacie PDF ]

    nieco inny charakter niż warunek na nazwę klasy: pierwszy jest zapisem relacji, drugi - rodzajem filtru.
    ·ð W zapisie relacji w kwerendzie kolejność też nie jest istotna (równie dobrze może być Klasy.Id =
    Uczniowie.Klasa_Id).
    Słowo o kwalifikacji nazw: Użyliśmy zapisu z nazwą tabeli (Uczniowie.Klasa_Id i Klasy.Id). Zapis kwerendy
    musi być przede wszystkim jednoznaczny. Opcja FROM określa tabele mające brać udział w kwerendzie. Jeśli
    chce się użyć jakiegokolwiek pola, które w obydwu tabelach ma tę samą nazwę, trzeba go kwalifikować czyli
    zapisywać w postaci Tabela.Pole. Takim polem jest Id, które występuje w obydwu tabelach. Jeśli nazwa pola
    jest unikalna, tj. występuje tylko w jednej tabeli (np. Klasa_Id, Nazwa, Nazwisko), możemy podawać tylko ją
    (dodatkowe kwalifikowanie takiej nazwy nie jest błędem). Poprawne zatem byłoby podanie w WHERE warunku
    Klasa_Id = Klasy.Id, ale już nie Klasa_Id = Id, bo nie wiadomo o jaki Id chodzi (kolumna o takiej nazwie jest
    w obydwu tabelach wystepujących w kwerendzie). Można postępować różnie: kwalifikować nazwą tabeli
    wszystkie kolumny, zwłaszcza gdy w kwerendzie jest wykorzystywana więcej niż jedna tabela, albo przeciwnie:
    kwalifikować tylko to, co kwalifikowania wymaga. Przyjmiemy zasadę pośrednią - używając w kwerendzie
    dwóch tabel będziemy kwalifikować warunki podawane w WHERE, a gdzie indziej (np. po SELECT) tylko
    wtedy gdy jest to niezbędne. W myśl tej zasady w kwerendzie przykładowej wyżej, w WHERE, napisaliśmy -
    dla spójności - Klasy.Nazwa, chociaż wystarczyłaby Nazwa. W sytuacjach zupełnie oczywistych, np. przy polu
    'Data_urodzenia', i w dodatku przy długich kwerendach, będziemy robić odstępstwa od tej zasady i nie
    kwalifikować nazwy pola nazwą tabeli.
    Wyżej w kwerendzie użyto tylko dwóch tabel W realnych komercyjnych bazach danych jedna
    kwerenda może obejmować więcej tabel połączonych relacjami, np. klientów, produktów, usług serwisowych,
    ofert (te same produkty mogą być sprzedawane w różnych ofertach, z różnymi rodzajami serwisu, w różnych
    okresach: promocyjnym, normalnym, wyprzedaży itp.), sprzedawców, serwisantów, kontaktów z klientem etc.
    Zadania:
    Wypisz imiona i nazwiska wszystkich uczniów klas poziomu 1 (uporządkowanie alfabetycznie).
    Wypis listę poziomów klas z liczbą uczniów w każdym poziomie.
    1. [s17b] & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    2. [s17b] & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    O modyfikowaniu struktury tabel:
    Używamy teraz tabeli Uczniowie o zwiększonej liczbie rekordów i o zmienionej strukturze. Dodawanie nowych
    rekordów do tabeli to rzecz naturalna. Ale czy można zmieniać strukturę tabeli zawierającej już jakieś rekordy?
    Można, zwłaszcza dodawać nową kolumnę (polecenie SQL - ALTER TABLE (będzie o nim mowa w jednym z
    następnych tematów)). Owszem, nie jest to operacja częsta, ale bywa że konieczna. Na ogół wprowadzenie do
    tabeli nowej kolumny nie psuje nic (poza sprawami związanymi z rozmiarem tabeli). Można również usunąć
    kolumnę z tabeli, ale trzeba mieć świadomość, że wszelkie kwerendy, w których nazwa tej kolumny występuje,
    staną się błędne (nie mówiąc o tym, że zawartość kolumny może przepaść). Natomiast zmiana typu kolumny
    (zwłaszcza jeśli zawartość kolumny ma zostać zachowana, ale w nowym formacie) może nie dać się już
    zrealizować prostymi środkami. Zazwyczaj trzeba przechować zawartość modyfikowanej kolumny, usunąć ją,
    wstawić nową i wpisać przechowane zawartości w nowym formacie.
    Strona 28 z 44
    Relacje - gospodarz klasy
    Gospodarz klasy może być z założenia tylko jeden. Załóżmy, ze wybraliśmy go z uczniów danej klasy.
    Jak go oznaczyć? Mogliśmy w tabeli Uczniowie wprowadzić dodatkowe pole 'Gospodarz', mogące przybierać
    tylko dwie wartości: 0 lub 1. Dla rekordu ucznia pełniącego funkcje gospodarza miałoby ono wartość 1, dla
    pozostałych uczniów w klasie (niegospodarzy) - 0 (to, której klasy uczeń jest gospodarzem, wynikałoby z jego
    pola Klasa_Id). Ale byłoby to nienaturalne i faktycznie oznaczałoby redundancję: na 30 osób w klasie tylko
    jedna miałaby w tym polu wartość 1, a reszta, z założenia - 0. Informacja o gospodarzu klasy dotyczy faktycznie
    tylko jednego ucznia i związana jest ściśle z klasą. Zrobiliśmy zatem inaczej: wprowadziliśmy pole określające
    gospodarza do tabeli Klasy. Nazywa się ono Uczeń_Id i zawiera identyfikator ucznia, który został wybrany na
    gospodarza swojej klasy (Rys.)
    Co ważne: to jest też relacja między tabelami
    Uczniowie, a Klasy, ale nieco inna od poprzedniej. Tu
    jednemu rekordowi z tabeli Klasy odpowiada jeden
    rekord w tabeli Uczniowie (klasa nie może mieć dwóch
    gospodarzy, ani żaden uczeń nie może być
    gospodarzem w więcej niż jednej klasie). Mówimy
    zatem, że jest to relacja jeden-do-jeden.
    Relacja 1-1 występuje względnie rzadko.
    Najczęściej stosuje się ją po to, by nie trzymać w
    jednym rekordzie zbyt wielu informacji (nasz sposób
    jej użycia nie jest typowy). Przykład: w tabeli Osoby
    trzymane sÄ… dane podstawowe np. klienta (imiÄ™,
    nazwisko, data urodzenia, wykształcenie), a w tabeli
    Adresy jego dane adresowe: tel. zwykły, komórkowy,
    prywatny i służbowy, adres prywatny, adres służbowy,
    adres do korespondencji, godziny kontaktów etc. Obie
    tabele Å‚Ä…czy relacja 1-1 - jednemu rekordowi w
    Rys. Klasy-Uczniowie - Zaznaczone obydwie relacje
    Osobach odpowiada dokładnie jeden rekord w
    (czarna linia - relacja 'gospodarza').
    Adresach (ściślej: zero rekordów lub jeden rekord) i
    odwrotnie (więcej o relacji jeden-do-jednego znajdziesz w słowniku).
    Zadanie: Napisz kwerendÄ™ listujÄ…cÄ… nazwy klas i imiona i nazwiska ich gospodarzy.
    [s17b] & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & .
    Joins [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zambezia2013.opx.pl