ZAJĘCIA III
Transkrypt
ZAJĘCIA III
ZAJĘCIA III Zad. 1 Utwórz bazę danych wg załączonego schematu, określ klucze główne w poszczególnych tabelach oraz relacje między tabelami. Poszczególne pola powinny spełniać następujące warunki: a) ustalić maskę wprowadzania dla atrybutów kod pocztowy, data_zlozenia_zam b) dla każdego pola w poszczególnych tabelach ustalić wartość atrybutu Wymagane, c) ustalić regułę poprawności wraz z odpowiednim komunikatem o błędzie dla następujących pól: - ilosc: musi być większa od zera, tabela Zamowienie_Ksiazka, - cena: musi być większa od zera, tabela Ksiazka, - data_zlozenia_zam: nie może być późniejsza niż data dzisiejsza, tabela Zamowienie, - data_realizacji_zam: nie może być późniejsza niż data dzisiejsza, tabela Zamowienie, - tytul: powinien rozpoczynać się literą, tabela Ksiazka, - oprawa: może przyjmować wartości: miękka, twarda d) dla wybranych pól w tabelach określić wartości domyślne, e) określić format wyświetlania dla pól: - cena: walutowy, - tytul: dużymi literami, - imie: jeśli nie podano, to powinno wyświetlać się „Nieznane”, - ilosc: jeśli nie podano, to powinno wyświetlać się „Brak danych”, jeśli jest równa 0, to nie powinno się nic wyświetlać. f) dla pól tytuł, nazwisko (autora i klienta) ustalić atrybut Indeksowane, g) utworzyć indeks wielopolowy, w skład którego wchodzą pola tytuł oraz id_wydawcy. Zad. 2 Dodaj do poszczególnych tabel rekordy. POMOC Reguły poprawności: <>0 Należy wprowadzić wartość różną od zera. 0 Or >100 Wartość musi być równa 0 lub większa od 100. Like "K???" Wartość musi składać się z czterech znaków i zaczynać się do litery K. <#1/1/96# Należy wprowadzić datę sprzed roku 1996. >=#1/1/97# And <#1/1/98# Należy wprowadzić datę z roku 1997. StrComp(UCase([Nazwisko]), [Nazwisko],0) = 0 Dane w polu "Nazwisko" muszą zostać wprowadzone przy użyciu wielkich liter. Wprowadzanie wyrażenia sprawdzającego Reguły poprawności zapisuje się w postaci wyrażeń. np. (>=0,03 And <=0,2) Or 0 Można używać - funkcji (np. Date() ), - operatorów Like, In, Between...And... ? jeden znak na określonym miejscu * dowolny ciąg znaków # pojedyncza cyfra, [a-k] dowolny znak z zakresu, [!a-k] dowolny znak spoza zakresu Przykłady: Like “[a-z][a-z]#######” (dowód osobisty) Operator In - zawiera listę możliwych wartości dla pola, oddzielonych średnikami np. In(1;1,5;3) lub In(“Warszawa”;”Kraków”;”Gdańsk”) Operator Between... And... - podaje możliwy zakres dla wartości pola np. Between -5 and 5 lub Between #98-01-01# And #98-06-30# Reguła poprawności dla tabeli - ustawiana we właściwościach tabeli wówczas, gdy wartość jednego pola zależy od wartości innego (nie można tego zrobić z poziomu pola) np. [data_wyst]<=[data_sprzed]+7 (nazwy pól tabeli w nawiasach kwadratowych). Maska wprowadzania: Definicja maski wprowadzania może zawierać maksymalnie trzy sekcje rozdzielone średnikami; na przykład (999) 000-0000!;0;" ". Sekcja Znaczenie Pierwsza Sama maska wprowadzania. Druga Określa, czy mają być przechowywane znaki literałowe. 0 - przechowuj znaki wraz z wprowadzonymi wartościami 1 lub pusta - przechowuj tylko znaki wprowadzone w puste miejsca Trzecia Znak wyświetlany zamiast pustego miejsca w masce wprowadzania. Można użyć dowolnego znaku; Aby wyświetlana była spacja, należy wpisać " " (znak podwójnego cudzysłowu, spacja, znak podwójnego cudzysłowu). Jeśli sekcja ta pozostanie pusta, używany jest znak kreski poziomej ( _ ). 0 Cyfra (od 0 do 9, pozycja wymagana; znaki plus [+] i minus [-] nie są dozwolone). 9 Cyfra lub spacja (pozycja opcjonalna; znaki plus i minus nie są dozwolone). # Cyfra lub spacja (pozycja opcjonalna; puste miejsca konwertowane na spacje, znaki plus i minus dozwolone). L Litera (od A do Z, pozycja wymagana). ? Litera (od A do Z, pozycja opcjonalna). A Litera lub cyfra (pozycja wymagana). a Litera lub cyfra (pozycja opcjonalna). & Dowolny znak lub spacja (pozycja wymagana). C Dowolny znak lub spacja (pozycja opcjonalna). .,:;-/ Dziesiętny symbol zastępczy oraz separatory tysięcy, daty i godziny. (Faktycznie używany znak zależy od ustawień regionalnych określanych przez dwukrotne kliknięcie ikony "Ustawienia regionalne" w Panelu sterowania systemu Windows.) < Powoduje, że wszystkie następujące po nim znaki są konwertowane na małe znaki. > Powoduje, że wszystkie następujące po nim znaki są konwertowane na duże znaki. ! Powoduje, że znaki w masce wprowadzania są wyświetlane od strony prawej do lewej zamiast od lewej do prawej. Znaki wpisywane w masce wprowadzania zawsze wypełniają ją od strony lewej do prawej. Znaku wykrzyknika można użyć w dowolnym miejscu w masce wprowadzania. \ Powoduje, że wszystkie następujące po nim znaki są wyświetlane jako znaki literałowe. Używany do wyświetlania znaków przedstawionych w tej tabeli jako znaków literałowych. (na przykład, \A jest wyświetlane jako A). Hasło Ustawienie właściwości Maska wprowadzania na wartość Hasło powoduje utworzenie pola tekstowego dla hasła. Dowolny znak wpisany w tym polu jest przechowywany jako znak, ale wyświetlany jako gwiazdka (*). Formaty wyświetlania (własne) 1. Pola tekstowe Trzy pola oddzielone średnikami: 1) sposób wyświetlania, 2) co pojawi się, gdy pole zawiera łańcuch zerowy (należy włączyć atrybut Zerowa dł.), np.: @;”Nie podano” znaki formatowania: > wyświetlanie dużymi literami < wyświetlanie małymi literami @ reprezentuje tekst/znak (jeśli nie ma znaku - wyświetlana jest spacja) & reprezentuje tekst/znak (jeśli nie ma znaku - nic nie jest wyświetlane) \ wstawiany przed myślnikiem sygnalizuje, że następujący po nim pojedynczy znak nie jest znakiem kontrolnym i ma być wyświetlony Przykłady: &&@\-@@\-@@ (telefon) @@\-@@@ (kod pocztowy) \”&....&\” (pole w cudzysłowach, znaków & tyle, jaka dł. pola) “ul. “&.....& (pole z dopiskiem stałym) 2. Pola liczbowe Cztery pola oddzielone średnikami: 1) co pojawi się, gdy pole zawiera wartości dodatnie, 2) co pojawi się, gdy pole zawiera wartości ujemne, 3) co pojawi się, gdy pole zawiera zero, 4) co pojawi się, gdy pole zawiera null (pusto). znaki formatowania: 0 jedna cyfra (jeśli jej brak wyświetlane jest zero) # jedna cyfra (jeśli jej brak wyświetlana jest spacja) % format procentowy , (przecinek) separator części dziesiętnej (spacja) separator tysięcy np. 0,00;\-;;”Nie podano” Rozwiązania niektórych zagadnień Zad. 1 a) 00-000;;_ 00-00-0000;;_ c) dla daty dla tytułu dla oprawy <=Now() Like ”[a-z]*” in (”miekka”;”twarda”) e) dla tytułu dla imienia dla ilości >;; &;”Nie podano” ;;;”Nie podano”