8.9. Język SQL Kwerenda wybierająca w języku SQL

Podobne dokumenty
Instrukcja CREATE TABLE

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Autor: Joanna Karwowska

Baza danych Uczniowie.mdb

Ref. 7 - Język SQL - polecenia DDL i DML

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Bazy danych - wykład wstępny

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

ACCESS ćwiczenia (zestaw 1)

5. Bazy danych Base Okno bazy danych

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Wykład III. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

MS Access 2010 instrukcja część 2. Ćwiczenie 3.

1. Zarządzanie informacją w programie Access

SQL (ang. Structured Query Language)

Podstawy Informatyki Wykład X

Język SQL. Rozdział 2. Proste zapytania

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

MsAccess ćwiczenie nr 3 Kwerendy wybierające cd oraz kwerendy funkcjonalne

Rozwiązanie. Uruchom program Access 2007.

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Bazy danych Access KWERENDY

Przestrzenne bazy danych Podstawy języka SQL

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

SQL - Structured Query Language. strukturalny język zapytań

Kwerendy (zapytania) wybierające

Podstawowe zapytania SELECT (na jednej tabeli)

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Obsługa pakietu biurowego OFFICE

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Autor: dr inż. Katarzyna Rudnik

Systemy GIS Tworzenie zapytań w bazach danych

Baza danych. Baza danych to:

CAL Access 2 zajęcia 5. Relacje Kwerendy Relacje w bazie danych. 1) Określenie relacji (sprzężeń) między tabelami

Bazy danych 7. SQL podstawy

Ćwiczenie zapytań języka bazy danych PostgreSQL

Kwerendy, czyli zapytania. Opracowała: I. Długoń

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

2017/2018 WGGiOS AGH. LibreOffice Base

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

5.5. Wybieranie informacji z bazy

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Wykład 5. SQL praca z tabelami 2

Bazy danych. dr inż. Arkadiusz Mirakowski

Tworzenie bazy danych na przykładzie Access

EXCEL TABELE PRZESTAWNE

Komputerowe systemy zarządzania. Część I: relacyjna baza danych

Wprowadzenie do baz danych

Egzamin zawodowy: Technik Informatyk 312[01] Oprogramowanie biurowe pytania i odpowiedzi

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Dr Michał Tanaś(

Zapytania do baz danych

Bazy danych. Polecenia SQL

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Bazy danych TERMINOLOGIA

Wprowadzenie do SQL Użycie kwerend i SQL

MS Access - bazy danych

Relacyjne bazy danych. Podstawy SQL

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Język SQL, zajęcia nr 1

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Bazy danych Access KWERENDY

Zwróćmy uwagę w jakiej lokalizacji i pod jaką nazwą zostanie zapisana baza (plik z rozszerzeniem *.accdb). Nazywamy

Bazy danych Kwerendy wybierające (operacje logiczne, zapytania, pola obliczeniowe)

1 Podstawy c++ w pigułce.

Zadania z SQLa (MS SQL Server)

Laboratorium Bazy danych SQL 2

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

WPROWADZENIE DO OBSŁUGI BAZ DANYCH MS ACCESS 2007(2010)

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

System imed24 Instrukcja Moduł Analizy i raporty

Współczesne systemy baz danych

Zapytania i wstawianie etykiet z bazy danych do rysunku

Technologia informacyjna

Baza danych. Program: Access 2007

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wykład 4. SQL praca z tabelami 1

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego.

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Bazy danych Karta pracy 1

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Bazy danych SQL Server 2005

Autor: Joanna Karwowska

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Technologie baz danych

Konspekt zajęć dotyczących kwerend

Wprowadzenie do baz danych

Transkrypt:

Rozdział 8 t Bazy danych program Access Program Access włączy wyłączoną zawartość, a baza danych zostanie ponownie otwarta jako w pełni funkcjonalna. W przeciwnym razie wyłączone składniki nie będą działać. Gdy pasek komunikatów jest niewidoczny, należy na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie zaznaczyć opcję Pasek komunikatów. W przypadku otwarcia bazy danych, która została utworzona we wcześniejszym formacie pliku (mdb lub mde) i nie jest podpisana ani zaufana, program Access domyślnie wyłącza każdą wykonywalną zawartość. 8.9. Język SQL Do konstruowania kwerend w programie Access można używać języków SQL (ang. Structured Query Language) lub QBE (ang. Query By Example). Język SQL jest zbliżony do języka formalnego. Gdy tworzymy kwerendę, korzystając z szablonu QBE, program Access w tle konstruuje odpowiadające jej wyrażenie w języku SQL. SQL formalnie jest podobny do języków programowania wysokiego poziomu, ale jest od nich wiele prostszy. Edycja poleceń w języku SQL wymaga przejścia do trybu SQL. Uruchomienie zdefiniowanej w tym języku kwerendy odbywa się tak jak uruchomienie innych kwerend zdefiniowanych za pomocą szablonu, a wynik wyświetlany jest w postaci arkusza danych. Dla kwerend tworzonych w języku SQL program Access tworzy w tle szablon QBE. 8.9.1. Kwerenda wybierająca w języku SQL Ogólna postać kwerendy wybierającej, dla której źródłem danych jest jedna tabela, ma postać: [PARAMETERS parametr_1 typ_danych [, parametr_2 typ_danych [,...]];] [ALL/DISTINCT/DISTINCTROW/TOP n [PERCENT]] {*/[nazwa_tabeli.]pole_1 [AS nazwa_1][, [nazwa_tabeli.]pole_2 [AS nazwa_2][,...]]} FROM Nazwa_tabeli [AS nowa_nazwa] [IN baza_danych] [WHERE wyrażenie] [GROUP BY 306

8.9. Język SQL lista_pól [HAVING wyrażenie]] [ORDER BY kryterium1 [, kryterium2 [,...]]]; Wyrażenie można zapisać w jednej linii, a jego strukturalność została wprowadzona dla zwiększenia przejrzystości zapisu. Wyrażenie musi kończyć się średnikiem. W wyrażeniu są stosowane następujące konwencje: słowa kluczowe pisane są wielkimi literami; argumenty wyrażenia pisane są małymi literami; w nawiasach kwadratowych umieszczone są opcjonalne elementy wyrażeń; pionowa kreska pełni funkcję słowa lub (wybór jednego elementu z listy); nawiasy klamrowe używane są, gdy jeden z elementów musi wystąpić w wyrażeniu. 8.9.2. Definiowanie kwerendy wybierającej Jedynie słowa kluczowe i FROM wraz z odpowiednimi argumentami muszą wystąpić w definicji kwerendy wybierającej. Argumentami dla słowa będą nazwy pól, a dla słowa FROM nazwa tabeli źródłowej kwerendy. Słowo występuje na początku każdego wyrażenia SQL, a zamiast nazwy pola można użyć wyrażenia operującego na wartościach tego pola. Uczeń.Imię, Uczeń.Nazwisko, Year(Date())-Year([Data urodzenia]) ; Wynikiem wykonania wyrażenia będzie arkusz danych z polami Imię i Nazwisko z tabeli Uczeń oraz polem obliczeniowym, w którym zostanie obliczony wiek każdego ucznia. Argumentem słowa może być gwiazdka (*), która oznacza wybór wszystkich pól tabeli źródłowej. Nazwy pól mogą być poprzedzone nazwą tabeli źródłowej i kropką. Jest to konieczne przy wyborze pól z kilku tabel źródłowych. Kolumny powstającego arkusza danych będą nazywały się tak samo jak pola tabeli źródłowej. Parametry instrukcji AS Parametr ten pozwala ustawić nazwę kolumny w arkuszu danych. Może służyć również do nadania nazwy tabeli. Imię, Nazwisko, Year(Date())-Year([Data urodzenia]) AS Wiek ; 307

Rozdział 8 t Bazy danych program Access WHERE Parametr ten stosujemy, gdy chcemy wyświetlić w kwerendzie tylko rekordy spełniające określony warunek. Po słowie WHERE musi wystąpić warunek w postaci wyrażenia. W arkuszu danych znajdą się tylko te rekordy, które spełniają warunek. Imię, Nazwisko, Year(Date())-Year([Data urodzenia]) AS Wiek WHERE [Miejscowość]= Toruń ; W arkuszu danych pojawią się tylko dane uczniów z Torunia. ORDER BY Parametr ten stosujemy, gdy chcemy uporządkować dane. Po słowach ORDER BY należy wpisać nazwę pola lub wyrażenie, według którego nastąpi porządkowanie danych. Dodatkowo można określić sposób porządkowania za pomocą słów: ASC rosnąco, DESC malejąco. Program Access domyślnie sortuje dane rosnąco, więc słowo ASC może zostać pominięte. Imię, Nazwisko, Year(Date())-Year([Data urodzenia]) AS Wiek ORDER BY Year(Date())-Year([Data urodzenia]) DESC, Nazwisko ; Wynikiem wykonania wyrażenia będzie arkusz danych zawierający listę wszystkich uczniów uporządkowaną malejąco według wieku. Nazwiska uczniów w tym samym wieku zostaną posortowane alfabetycznie. PARAMETERS Parametr ten stosujemy, gdy chcemy utworzyć kwerendę z parametrem. Słowo PARA- METERS umieszczamy na początku całego wyrażenia, jeszcze przed słowem. Po nim deklarujemy nazwy parametrów wraz z typem danych. Typy danych dla SQL zostały omówione w dalszej części rozdziału. PARAMETERS [Podaj nazwisko ucznia:] Text ; * WHERE Nazwisko = [Podaj nazwisko ucznia:] ; Uruchomienie kwerendy spowoduje wyświetlenie pola dialogowego z tekstem, który jest nazwą parametru. Po wprowadzeniu parametru, czyli nazwiska ucznia, zostanie wyświetlony arkusz danych zawierający dane ucznia o podanym nazwisku. Nazwisko jest parametrem kwerendy. 308

8.9. Język SQL Jeżeli chcemy wyświetlić dane jednego ucznia i uniknąć wyświetlania danych wszystkich uczniów noszących to samo nazwisko, należy zadeklarować drugi parametr, na przykład imię. PARAMETERS [Podaj nazwisko ucznia:] Text, [Podaj imię ucznia:] Text ; * WHERE Nazwisko = [Podaj nazwisko ucznia:] AND Imię= [Podaj imię ucznia:] ; ALL, DISTINCT, DISTINCTROW, TOP Są to predykaty używane do określenia, czy wyświetlane wartości mogą się powtórzyć i czy należy wyeliminować wiersze, w których wartości powtarzają się. ALL używany domyślnie. DISTINCT używany, gdy chcemy ograniczyć wystąpienia takich samych wartości w kolejnych rekordach. Odpowiada atrybutowi WARTOŚCI UNIKATOWE. DISTINCTROW używany wyłącznie w kwerendzie opartej na kilku tabelach. Eliminuje w zestawieniu identyczne rekordy. Odpowiada atrybutowi REKORDY UNIKATOWE. TOP n pozwala wybrać n pierwszych rekordów spełniających warunki określone w kwerendzie. Odpowiada atrybutowi NAJWYŻSZE WARTOŚCI. Liczbę wybranych rekordów można określać procentowo, używając predykatu TOP ze słowem PERCENT. Miejscowość WHERE [Miejscowość]<> Toruń ; Uruchomienie tej kwerendy spowoduje wyświetlenie informacji, z jakich miejscowości, poza Toruniem, pochodzą uczniowie. Nazwa miejscowości pojawi się na liście tyle razy, ilu uczniów jest z danej miejscowości. Aby ograniczyć się do pojedynczych wystąpień nazw miejscowości, należy dodać predykat DISTINCT. DISTINCT Miejscowość WHERE [Miejscowość]<> Toruń ; 309

Rozdział 8 t Bazy danych program Access Uruchomienie kolejnej kwerendy spowoduje wyświetlenie danych trzech najstarszych uczniów: TOP 3 * ORDER BY [Data urodzenia] ; GROUP BY HAVING Polecenie to służy do grupowania wybranych w kwerendzie rekordów według identycznych wartości pól, których nazwy zostały wymienione w tym poleceniu. W tym przypadku można w wyrażeniu używać funkcji agregujących. Miejscowość, Count(Nazwisko) AS [Ilość uczniów] GROUP BY Miejscowość ORDER BY Miejscowość ; Wynikiem wykonania wyrażenia będzie pogrupowanie uczniów według wartości pola Miejscowość. W każdej grupie liczone będą rekordy i wyświetlony zostanie rezultat obliczeń. Aby wyeliminować rekordy po podziale na grupy, należy dodatkowo zastosować warunek HAVING. PARAMETERS [Z jakiej miejscowości:] Text ; Miejscowość, Count(Nazwisko) AS [Ilość uczniów] GROUP BY Miejscowość HAVING Miejscowość = [Z jakiej miejscowości:]; Gdy kwerenda zawiera polecenie GROUP BY, wymagane jest użycie każdego z pól wymienionych w wyrażeniu jako kryterium grupowania lub jako argumentu funkcji agregującej. IN Słowo to może wystąpić po słowie FROM i służy do określenia, z jakiej bazy danych pochodzi tabela. Argumentem słowa IN może być ścieżka dostępu do pliku bazy danych. 310

8.9.3. Typy danych w języku SQL w aparacie bazy danych programu Microsoft Access W tabeli 8.6 zostały przedstawione typy danych stosowane w języku SQL. 8.9. Język SQL Tabela 8.6. Typy danych w SQL w aparacie bazy danych programu Microsoft Access Typ danych Rozmiar Synonimy Opis BINARY 1 bajt na znak VARBINARY BIT 1 bajt BOOLEAN, LOGICAL1 BYTE 1 bajt INTEGER1, TINYINT Można przechowywać dowolny rodzaj danych. Sposób prezentacji danych zależy od sposobu ich umieszczania w polu. Wartości typu logicznego. Liczba całkowita od 0 do 255. COURRENCY 8 bajtów MONEY Liczba całkowita mieszcząca się na 8 bajtach. DATETIME 8 bajtów DATE, TIME, TI- MESTAMP Wartość daty lub godziny dla lat od 100 do 9999. SINGLE 4 bajty REAL Liczby zmiennoprzecinkowe pojedynczej precyzji. DOUBLE 8 bajtów FLOAT, NUMBER, NUMERIC Liczby zmiennoprzecinkowe podwójnej precyzji. SHORT 2 bajty SMALLINT Liczba całkowita mieszcząca się na 2 bajtach. LONG 4 bajty INTEGER, INT Liczba całkowita długa mieszcząca się na 4 bajtach. TEXT 1 bajt na znak CHAR, CHARACTER, STRING Tekst zawierający od 0 do 255 znaków. 8.9.4. Definiowanie połączenia między tabelami Podczas definiowania kwerendy w wyrażeniu FROM można używać więcej niż jednej tabeli. Aby dane z tabel zostały prawidłowo powiązane, należy zdefiniować połączenia między tabelami. Ponieważ kwerendy oparte na kilku tabelach różnią się od tych, które oparte są na jednej tylko sposobem określenia źródła danych, zmiany ogólnej postaci kwerendy dotyczą jedynie wyrażenia FROM. FROM Tabela1 { INNER/LEFT/RIGHT } JOIN ( tabela2 { INNER/LEFT/RIGHT } JOIN ( tabela3 311

Rozdział 8 t Bazy danych program Access [ { INNER/LEFT/RIGHT } JOIN [(] tabelax [ { INNER/LEFT/RIGHT } JOIN ) ] ON tabela3.pole3 = tabelax.polex) ] ON tabela2.pole2 = tabela3.pole3) ON tabela1.pole1 = tabela2.pole2 ; W wyrażeniu uwzględniono możliwość powiązania i wykorzystania w kwerendzie wielu tabel źródłowych. Oprócz określenia tabel źródłowych, wyrażenie musi zawierać też nazwy odpowiadających sobie pól z każdej tabeli. Oto postać wyrażenia dla dwóch tabel źródłowych: FROM Tabela1 { INNER/LEFT/RIGHT } JOIN tabela2 ON tabela1.pole1 = tabela2.pole2 ; Przed słowem kluczowym JOIN (połączenie) występuje określenie rodzaju połączenia: INNER JOIN połączenie zawężające, LEFT JOIN lewe połączenie rozszerzające, RIGHT JOIN prawe połączenie rozszerzające. [Uczeń].[Imię], [Uczeń].[Nazwisko], [Klasa].[Nazwa klasy] INNER JOIN [Klasa] ON [Uczeń].[Nr klasy] = [Klasa].[Nr klasy] ORDER BY [Uczeń].[Nazwisko] ; Wynikiem wykonania kwerendy będzie arkusz danych zawierający listę wszystkich uczniów wraz z nazwą klasy, do której chodzą; lista będzie uporządkowana alfabetycznie według nazwisk. Przykład 8.33 Przeanalizuj obecności uczniów na fakultetach z języka polskiego. Dane na temat opuszczonych godzin na fakultetach są zapisz w nowej tabeli Nieobecności zawierającej pola: Lp (numer ucznia) i Godziny (liczba godzin opuszczonych przez ucznia). Zestawienie powinno zawierać listę nazwisk wszystkich uczniów wraz z łączną liczbą godzin nieobecności. Muszą pojawić się też nazwiska uczniów, którzy uczestniczyli we wszystkich zajęciach. W kwerendzie zdefiniuj połączenie między tabelami Uczeń i Nieobecności oraz pogrupuj informacje dotyczące jednego ucznia. 312

8.10. Projektowanie bazy danych [Uczeń].[Nazwisko], Sum([Nieobecności]. [Godziny]) AS [Ilość opuszczonych godzin] FROM [Uczeń] LEFT JOIN [Nieobecności] ON [Uczeń].[Lp] = [Nieobecności]. [Lp] GROUP BY [Uczeń]. [Nazwisko] ORDER BY Sum([Nieobecności]. [Godziny]) DESC, [Uczeń]. [Nazwisko] ; Ponieważ zostało zdefiniowane połączenie rozszerzające lewe, z tabeli Uczeń zostaną wybrani wszyscy uczniowie. To, czy należy zastosować połączenie rozszerzające lewe, czy prawe, zależy od kolejności zapisywania nazw tabel w definiowanym połączeniu. 8.10. Projektowanie bazy danych W bazie danych przechowujemy informacje o świecie rzeczywistym, ale tylko niektóre informacje ze świata rzeczywistego umieszcza się w bazie danych. Wybór właściwych wycinków rzeczywistości i dotyczących ich danych jest bardzo istotny dla prawidłowego działania bazy. Aby ten wybór był właściwy, należy wskazać informacje, które powinny być przechowywane w bazie danych, oraz określić ich strukturę. 8.10.1. Podstawowe pojęcia Z punktu widzenia relacyjnej bazy danych świat rzeczywisty widzimy i analizujemy jako zestaw encji i związków zachodzących między nimi. Encja DEFINICJA Encją jest każdy przedmiot, zjawisko, stan lub pojęcie, czyli każdy obiekt, który potrafimy odróżnić od innych obiektów (taki jak na przykład osoba, samochód, książka, stan pogody). Encje podobne do siebie (opisywane za pomocą podobnych parametrów) grupujemy w zbiory encji. Projektując bazę danych, należy precyzyjnie zdefiniować encje i określić parametry, przy użyciu których będą opisywane. Atrybut Encje mają określone cechy wynikające z ich natury. Cechy te nazywamy atrybutami. Zestaw atrybutów, które określamy dla encji, zależy od potrzeb bazy danych. 313