Z A P Y T A N I A ( KWERENDY) Zapytania sluza do: wyświetlania tylko niektórych rekordów na podstawie zadanych kryteriów (patrz typy kryteriów i wieloznaczniki) wyświetlania tylko niektórych pól tworzenia nowych pól (obliczeniowych) łączenia danych z wielu tabel tworzenia podsumowan zmiany układu wyświetlanych danych a także służą do: tworzenia nowych tabel aktualizowania tabel dodawania rekordów w tabelach kasowania rekordów w tabelach 1. STOSOWANIE KRYTERIÓW W ZAPYTANIACH I FILTRACH Politechnika Łódzka Wydział Organizacji i zarządzania Systemy Informacyjne Przedsiębiorstw. © 1996-2002 J. Królikowski A. Typy kryteriów Wartość (np. 167 Brak wartości (np. Zakres (np. "Kowalski" , Is Null <2 , #98-03-12# ) Between 18 And 62 ) , ) >="K" Wieloznaczniki (np. Like "Kow*" Zestaw wartości (np. In(1;2;4) Negacja warunku (np. Tak , Not "Kowalski" , <#60-01-01# , Like "*sk?" Złożenie warunków: iloczyn logiczny (np. , Like "99-03-??" ) ) ) Wyrażenie z wykorzystaniem funkcji wbudowanych ( np. Złożenie warunków: suma logiczna (np. , <0 Or >100 =Date() ) ) >= #99-01-01# And <= #99-12-31# ) B. Wieloznaczniki wykorzystywane w polu kryteriów (tylko dla typów tekst i data/godzina): Wielozn. Opis Kryteria: wpisy spełniające * Podobnie jak w systemie DOS zastępuje dowolny ciąg znaków Like "al*" Like "*at" Like "a*n" Like "*o*o*" ? Zastępuje pojedynczy znak Like "s?k" # zastępuje pojedynczą cyfrę Like "1#3" [] zastępuje pojedynczy znak z listy znaków w Like "s[may]k" nawiasach kwadratowych Like "s[b-z]k" Użycie wieloznacznika musi być zapowiedziane operatorem LIKE. - Al, Ala, alkaprim, sala - postulat, pat, mat, mata - Anin, Anna - Co nieco, zoo, sok, 2000 - sok, sęk, sak, smok - 123,133, 193, 1c3 - sak, syk, smak - sęk, sok, syk, sak 2. STOSOWANIE KOLUMN WYLICZENIOWYCH W ZAPYTANIACH Zapytania umożliwiają wykonywanie obliczeń na danych liczbowych, datach i danych tekstowych pochodzących z jednego lub z wielu pól. Na przykład, stosując zapytania, można pomnożyć wartości pola przez pewną liczbę, znaleźć liczbę dni pomiędzy dwiema datami z dwóch różnych pól, połączyć kilka wartości w polu tekstowym. Aby wykonywać własne obliczenia w zapytaniach należy utworzyć nowe pole bezpośrednio w siatce projektu zapytania. Aby utworzyć pole obliczeniowe, trzeba wprowadzić wyrażenie do pustej komórki w wierszu Pole w siatce projektu zapytania. Przykładowo : Pierwsza część wpisu (przed dwukropkiem) to nowa etykieta kolumny wyliczeniowej. Po dwukropku znajduje się wyrażenie definiujące jakie działanie na być przeprowadzone aby uzyskać wartość kolumny wyliczeniowej. Wyrażenie może składać się z wielu działań, na przykład Suma([StanMagazynu]+[IlośćZamówiona]). Dla pola obliczeniowego można również określić kryteria wpływające na wynik obliczeń. Przykłady stosowania kolumn wyliczeniowych: a) Pole: Suma: [wyr1]+[wyr2] b) Pole: Iloczyn: [wyr1]*[wyr2] c) Pole: WartośćBrutto: [cena]+[cena]*0.22 d) Pole: Iledni: [DataWypłaty] - [DataWpłaty] – 1 e) Pole: I&N: [imię] & " " & [nazwisko] f) Pole: Status: IIf([ocena]>2;"zdany";"niezdany") 3. JĘZYK SQL Języka SQL (ang. Structured Query Language) można używać do wykonywania zapytań (kwerend) w relacyjnych bazach danych, aktualizacji tych baz i zarządzania nimi. Gdy tworzy się kwerendę w widoku "Projekt" kwerendy, budowane są odpowiednie instrukcje SQL. Instrukcję SQL można potem obejrzeć lub edytować w widoku "SQL". Po dokonaniu zmian w kwerendzie w widoku "SQL", w widoku "Projekt" kwerenda ta może być wyświetlana w inny sposób niż przedtem. Czasami użytkownik musi sam tworzyć instrukcje SQL, ponieważ siatka projektu nie działa w pewnych typach kwerend, na przykład w kwerendach przekazujących, definiujących dane oraz składających. Aby utworzyć takie kwerendy należy wpisywać instrukcje SQL bezpośrednio w widoku "SQL". Niektóre instrukcje i klauzule języka SQL SELECT (instrukcja) - Powoduje pobranie przez aparat bazy danych Microsoft Jet z bazy danych informacji w postaci zbioru rekordów. FROM (klauzula) - Określa tabele lub kwerendy zawierające pola podane na liście instrukcji SELECT. Minimalna postać składni instrukcji SELECT jest następująca: SELECT pola FROM tabela WHERE (klauzula) - Określa te rekordy z tabel wymienionych w klauzuli FROM, których dotyczy instrukcja SELECT ORDER BY (klauzula) -Sortuje rekordy będące wynikiem kwerendy rosnąco lub malejąco według wartości określonego pola lub pól. GROUP BY (klauzula) - Scala w jeden rekord rekordy o identycznych wartościach wskazanych na liście pól. HAVING - Określa, które ze zgrupowanych rekordów pokazuje instrukcja SELECT z klauzulą GROUP BY. Po zgrupowaniu rekordów przez klauzulę GROUP BY klauzula HAVING wyświetla te rekordy spośród zgrupowanych, które spełniają warunki wymienione w klauzuli HAVING. Niektóre operacje języka SQL INNER JOIN - Łączy (scala) rekordy z dwóch tabel, jeśli wspólne pole zawiera odpowiadające sobie wartości. LEFT JOIN, RIGHT JOIN - Użyte w dowolnej klauzuli FROM, łączą (scalają) rekordy z tabel źródłowych. Operacja LEFT JOIN służy do tworzenia sprzężenia rozszerzonego lewego. Sprzężenia rozszerzone lewe włączają wszystkie rekordy z pierwszej (lewej) z dwóch tabel, nawet jeśli w rekordach z drugiej (prawej) tabeli nie istnieją odpowiadające im wartości. Operacja RIGHT JOIN analogicznie Niektóre predykaty języka SQL SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]] FROM tabela Instrukcja SELECT z tymi predykatami zawiera następujące elementy: ALL Predykat przyjmowany domyślnie, jeśli jawnie nie podano żadnego innego, aparat bazy danych Microsoft Jet wybiera wszystkie rekordy spełniające kryteria podane w instrukcji SQL. DISTINCT Pomijane są te rekordy, które zawierają powtarzające się wartości we wszystkich wybieranych polach. Aby pojawić się w wyniku kwerendy, wartości każdego z pól wymienionych w instrukcji SELECT muszą być niepowtarzalne. DISTINCTROW Pomija powtarzające się dane na podstawie wartości całych rekordów, a nie jedynie wybranych pól. TOP n [PERCENT] Zwraca tylko te rekordy, które mieszczą się (od góry lub od dołu) w podanym zakresie rekordów uporządkowanych klauzulą ORDER BY.