Pobieranie danych z pojedynczych tabel. Wprowadzenie

Wielkość: px
Rozpocząć pokaz od strony:

Download "Pobieranie danych z pojedynczych tabel. Wprowadzenie"

Transkrypt

1 1. Utwórz bazę o nazwie test 2. Zaimportuj strukturę i dane z pliku baza_test.txt 3. Powyższy zbiór poleceo SQL utworzony w bazie tablice i wpiszę ich zawartości wg poniżeszego schematu: Pobieranie danych z pojedynczych tabel W tym odcinku po raz pierwszy spojrzymy na tabele jako na zbiory danych, poznamy język SQL i nauczymy się odczytywać, wybierać i sortować dane zapisane w pojedynczych tabelach. Wprowadzenie Podstawowe obiekty relacyjnych baz danych tabele i główny język programowania tych baz SQL wymagają krótkiego przedstawienia. Tabele jako zbiory danych

2 Podstawową cechą relacyjnych baz danych jest to, że przechowywane informacje są dostępne jako zbiór dwuwymiarowych tabel. Czyli niezależnie od tego, w jakiej postaci (z reguły jest to postać binarna) serwer baz danych przechowuje na dysku i w pamięci dane, użytkownicy widzą je w postaci tabelarycznej. Każda tabela musi mieć unikatową w skali schematu (w przypadku MySQL-a schemat i baza są tym samym) nazwę. Nazwę obiektu bazodanowego można poprzedzić nazwą schematu, w którym ten obiekt się znajduje, tak więc pełną nazwą tabeli customer będzie test.customer. Każda tabela składa się z kolumn i wierszy. Poszczególne kolumny muszą mieć określoną nazwę, a w każdej z nich można przechowywać dane określonego typu. Na przykład, w kolumnie fname tabeli customer można zapisać do 32 znaków, w kolumnie title przechowywane są ciągi znaków o długości dokładnie 4 znaków jeżeli tytuł jakiegoś klienta jest krótszy, zostanie uzupełniony spacjami. Natomiast poszczególne wiersze zawierają dane opisujące dany obiekt. Na przykład, jeden wiersz tabeli customer przechowuje imię, nazwisko, tytuł, adres, numer telefonu i identyfikator klienta. Tabele w relacyjnej bazie danych mają następujące właściwości: Nazwa kolumn musi być unikatowa w skali tabeli próba utworzenia tabeli z kilkoma tak samo nazywającymi się kolumnami zakończy się błędem. Kolejność wierszy jest nieokreślona i nieistotna to, że informacje o kliencie Jenny Stones znajdują się w pierwszym, a nie, na przykład, trzecim wierszu, nie ma żadnego znaczenia. Kolejność kolumn jest nieokreślona, ale ma wpływ na sposób prezentowania danych gdyby dane o numerze telefonu znajdowały się w pierwszej, a nie ostatniej kolumnie, dalej byłyby to te same dane, ale zapytania mogłyby uwzględnić zmienioną kolejność kolumn. Wiersze w tabeli muszą być różne na przykład, gdybyśmy chcieli wprowadzić drugi raz informację o tym samym kliencie, musielibyśmy dodać kolejny wiersz. W matematycznym modelu relacyjnych baz danych przyjmuje się, że dwa identyczne elementy zbioru są tak naprawdę jednym elementem, natomiast w tabeli identyczne dane przechowywane są w różnych wierszach. Pobieranie danych Informacje przechowywane w bazach danych mogą zostać pobrane za pomocą instrukcji języka SQL SELECT. Instrukcja SELECT (zapytanie) określa, jakie dane mają zostać zwrócone w wyniku jej wykonania, natomiast to, w jaki sposób instrukcja zostanie wykonana, zależy od serwera baz danych. Język SQL jest językiem strukturalnym, a nie proceduralnym. W tym języku nie określamy sposobu wykonania zadania (tak jak np. w C), ale jego wynik (a właściwie wymagane do

3 jego otrzymania operacje na pewnych strukturach zbiorach). Z założenia instrukcje języka SQL przypominają potoczny język angielski. Na przykład, żeby odczytać nazwę i cenę produktu, nie napiszemy programu za pomocą jakiegoś algorytmu wyszukiwania znajdującego odpowiednie informacje, ale po prostu powiemy: Odczytaj nazwę i cenę produktu o podanym identyfikatorze. Instrukcja SELECT służy do pobierania danych z bazy. Instrukcja musi zawierać (z wyjątkiem polecenia SELECT odwołującego się wyłącznie do stałych, zmiennych lub wyrażeń arytmetycznych) co najmniej jedną klauzulę: za pomocą polecenia SELECT określamy interesujące nas kolumny (dokonujemy operacji selekcji pionowej, projekcji), za pomocą klauzuli FROM wskazujemy tabelę, z której pobieramy dane. Z reguły ogranicza się również, za pomocą klauzuli WHERE, liczbę zwracanych wierszy do rekordów spełniających określone kryteria (operacja selekcji poziomej, selekcji). Odczytujemy wszystkie dane z tabeli Najprostszy przykład użycia instrukcji SELECT to odczytanie całej zawartości wskazanej tabeli. W SQL-u możemy posługiwać się kilkoma znakami specjalnymi, jednym z nich jest * oznaczająca wszystko. Czyli żeby odczytać wszystko z tabeli customer, należy wykonać instrukcję: SELECT * FROM customer; albo: SELECT * FROM test.customer; Wszystkie instrukcje SQL należy wykonywać w wyniku łączenia się jako administrator testowej bazy za pomocą programu MySQL Query Browser albo tekstowego programu mysql. W drugim przypadku po połączeniu z serwerem trzeba określić bazę danych przez wpisanie USE test;. Kolejność kolumn wyniku zawsze odpowiada kolejności kolumn tabeli. Natomiast nie

4 należy zakładać, że ponowne wykonanie tej samej instrukcji zwróci wiersze w tej samej kolejności. Porządkowanie danych Instrukcja SELECT zwraca wiersze w tej kolejności, w jakiej dane są przechowywane w tabeli. Z reguły jest to kolejność, w jakiej były dopisywane następne wiersze z danymi. Do zmiany kolejności, w jakiej zwracane będą wyniki zapytania służy klauzula ORDER BY. ORDER BY (uporządkuj według) jest opcjonalnym składnikiem instrukcji SELECT. Jeżeli jednak ta klauzula wystąpi, musi być ostatnią. Kolejność klauzul instrukcji SELECT nie jest dowolna. Obowiązkowym parametrem klauzuli ORDER BY jest wyrażenie lub nazwa kolumny, według wartości których należy posortować dane wynikowe. Wykonanie poniższej instrukcji spowoduje wyświetlenie opisów towarów i cen ich zakupu uszeregowanych według cen zakupu (listing 3.14). Listing Posortowana lista towarów SELECT description, cost_price FROM item ORDER BY cost_price; +-- description cost_price +-- SQL Server 2005 NULL Carrier Bag 0.01 Toothbrush 0.75 Linux CD 1.99 Tissues 2.11 Roman Coin 2.34 Rubik Cube 7.45 Picture Frame 7.54 Fan Small 9.23 Fan Large Wood Puzzle Speakers Domyślnie dane szeregowane są w porządku rosnącym, czyli od wartości najmniejszych do największych w przypadku danych liczbowych, od najwcześniejszych do najpóźniejszych w przypadku dat oraz w porządku alfabetycznym w przypadku ciągów znakowych. Aby odwrócić kolejność sortowania, należy bezpośrednio po nazwie kolumny użyć słowa kluczowego DESC (ang. Descending) (listing 3.15). Listing Lista towarów posortowana od najdroższego do najtańszego SELECT description, cost_price FROM item ORDER BY cost_price DESC; +-- description cost_price

5 +-- Speakers Wood Puzzle Fan Large Fan Small 9.23 Picture Frame 7.54 Rubik Cube 7.45 Roman Coin 2.34 Tissues 2.11 Linux CD 1.99 Toothbrush 0.75 Carrier Bag 0.01 SQL Server 2005 NULL +-- Poszczególne klauzule instrukcji SELECT są od siebie niezależne. To znaczy, że w klauzuli ORDER BY możemy użyć wyrażenia lub nazwy kolumny, która nie występuje w klauzuli SELECT (listing 3.16). Listing Lista nazw towarów posortowana według cen ich zakupu SELECT description FROM item ORDER BY cost_price; description SQL Server 2005 Carrier Bag Toothbrush Linux CD Tissues Roman Coin Rubik Cube Picture Frame Fan Small Fan Large Wood Puzzle Speakers Oczywiście możemy sortować dane według więcej niż jednego kryterium. Instrukcja z listingu 3.17 zawiera alfabetycznie uporządkowaną listę adresów klientów najpierw dane sortowane są według nazw miast, a następnie według nazw ulic. Listing Jeżeli kilku klientów mieszka w tym samym mieście, o ich kolejności na liście zadecyduje nazwa i numer ulicy SELECT town, addressline FROM customer ORDER BY town, addressline; -+ town addressline -+ Bingham 34 Holly Way Bingham 34 Holly Way Bingham 54 Vale Rise

6 Hightown 27 Rowan Avenue Histon 36 Queen Street Lowtown 52 The Willows Milltown 4 The Square Nicetown 4 The Street Nicetown 5 Pasture Lane Oahenham 7 Shady Lane Oxbridge 73 Margeritta Way Tibsville 86 Dysart Street Welltown 2 Beamer Street Winersby 42 Thached way Yuleville The Barn -+ Wybieranie wierszy Instrukcje SELECT w tej postaci, której używaliśmy do tej pory, zwracały wszystkie wiersze z danej tabeli. Do ograniczenia (wybrania) wierszy w wyniku należy użyć klauzuli WHERE. Ta klauzula odpowiada teoriomnogościowemu operatorowi selekcji, czyli wybierania wierszy. Operacja ta najczęściej polega na wyborze, na podstawie pewnych kryteriów, grupy wierszy z tabeli. Serwer baz danych dla każdego wiersza sprawdzi, czy spełnia on kryteria wyboru, i jeżeli tak zostanie on dodany do wyniku zapytania. Klauzula WHERE, o ile została użyta, musi wystąpić bezpośrednio po klauzuli FROM. Kryterium wyboru może zostać sformułowane za pomocą typowych operatorów porównania lub operatorów charakterystycznych dla języka SQL. Typowe operatory porównania Operatory logiczne porównują, czy dany warunek jest spełniony, czyli czy w wyniku porównania argumentów otrzymamy wartość logiczną True (Prawda). Na przykład, wszystkie poniższe warunki są prawdziwe: 1<4, 2=2, 5>=5, 'mama'='mama' itd. Zwróćmy uwagę, że ciągi znaków muszą być umieszczone wewnątrz apostrofów. Domyślnie MySQL przy porównywaniu ciągów znaków nie rozróżnia wielkich i małych liter (listing 3.18). Listing Wynikiem porównania wyrazów kot i KOT jest wartość prawda SELECT 'kot' = 'KOT'; 'kot' = 'KOT' 1 Na przykład, aby wybrać tylko te towary, których cena zakupu nie przekracza 5 zł, należy wykonać instrukcję z listingu Listing Prosty test logiczny wybierający towary o określonej cenie zakupu SELECT * FROM item WHERE cost_price <=5; -+ item_id description cost_price sell_price -+ 3 Linux CD

7 4 Tissues Toothbrush Roman Coin Carrier Bag Zwróć uwagę, że w wyniku nie znalazł się towar o nieokreślonej nazwie. Pamiętaj że wartość Null ma specjalne znaczenie i nie można jej sensownie używać z operatorami mniejszy czy równy. Aby ograniczyć liczbę informacji o interesujących nas towarach (towarach kupionych za nie więcej niż 5 zł) do ich nazwy i obu cen (zakupu i sprzedaży), należy połączyć w jednej instrukcji operacje projekcji i selekcji. Dodatkowo, wykorzystując klauzulę ORDER BY, możemy posortować wynik zapytania w kolejności od towarów kupionych najtaniej do kupionych najdrożej. Zmodyfikowane polecenie SELECT powinno wyglądać następująco (listing 3.20). Listing Przykład wykorzystania poznanych do tej pory wiadomości o instrukcji SELECT SELECT description, cost_price, sell_price FROM item WHERE cost_price <=5 ORDER BY cost_price; +-+ description cost_price sell_price +-+ Carrier Bag Toothbrush Linux CD Tissues Roman Coin Język SQL pozwala również na użycie nazw kolumn po obu stronach operatora porównania. Na przykład, aby wyświetlić informacje o tych towarach, które sprzedajemy poniżej ceny zakupu, napiszemy (listing 3.21). Listing Porównanie danych odczytanych z tabeli. Serwer baz danych sprawdzi ten warunek dla każdego wiersza tabeli SELECT * FROM item WHERE cost_price > sell_price; -+ item_id description cost_price sell_price Carrier Bag Dopuszcza również tworzenie bardziej skomplikowanych, wykorzystujących operatory AND (logiczne i, koniunkcja), OR (logiczne lub, alternatywa) oraz NOT (logiczne nie, negacja), warunków logicznych. Wynik operacji porównania obliczany jest na podstawie tabel

8 prawdziwości danego operatora. Tabele prawdziwości dla operatorów NOT, AND i OR przedstawione są na rysunku 3.1. Wartość 1 odpowiada prawdzie, 0 fałszowi. Rysunek 3.1. Tabele prawdziwości operatorów logicznych Listing 3.22 pokazuje przykład użycia złożonego warunku logicznego w wyniku zapytania znajdą się tylko te zamówienia, które zostały złożone przed końcem czerwca 2000 roku przez klienta o identyfikatorze 8. Listing Koniunkcja ogranicza wiersze wyniku SELECT * FROM orderinfo WHERE customer_id=8 AND date_placed <' '; orderinfo_id customer_id date_placed date_shipped shipping Specjalne znaczenie wśród operatorów logicznych ma operator negacji. W przeciwieństwie do pozostałych operatorów logicznych, jest operatorem jednoargumentowym, to znaczy, że do obliczenia wyniku wystarczy podać jeden argument. Jak wynika z tabeli prawdziwości, wynik operacji NOT a jest prawdą wtedy i tylko wtedy, gdy argument a był fałszywy. Operator negacji służy do zaprzeczania warunkom podanym w klauzuli WHERE (listing 3.23). Listing Zapytanie zwracające informacje o mężczyznach spoza Lowtown SELECT title, fname, lname, town FROM customer WHERE title = 'Mr' AND town!='lowtown'; +- title fname lname town +- Mr Adrian Matthew Yuleville Mr Simon Cozens Oahenham Mr Neil Matthew Nicetown Mr Richard Stones Bingham Mr Mike Howard Tibsville Mr Dave Jones Bingham Mr Richard Neill Winersby Mr Bill Neill Welltown Mr David Hudson Milltown +-

9 Oczywiście, w klauzuli WHERE, tak jak w klauzulach SELECT czy ORDER BY, możemy używać wyrażeń. W efekcie możemy łatwo wybrać na przykład informacje o tych towarach, które sprzedajemy z ponad 50% marżą (listing 3.24). Listing Przykład wykorzystania wyrażenia w klauzuli WHERE SELECT * FROM item WHERE sell_price>=1.5*cost_price; -+ item_id description cost_price sell_price -+ 2 Rubik Cube Tissues Fan Small Toothbrush Pobieranie danych z wielu tabel W tym odcinku nauczymy się odczytywać dane zapisane w różnych tabelach, poznamy różnice pomiędzy złączeniem wewnętrznym a złączeniami zewnętrznymi i dowiemy się, jak przeprowadzać na tabelach operacje na zbiorach, znane z lekcji matematyki. Wprowadzenie Cechą charakterystyczną relacyjnych baz danych jest przechowywanie informacji podzielonych między wiele tabel. W wielu wypadkach, w trakcie wyszukiwania informacji w bazie danych, okazuje się, że potrzebne dane przechowywane są w kilku tabelach. Aby sensownie połączyć w jednym zapytaniu dane z wielu tabel, wymagane jest ich złączenie (ang. Join). O złączeniu tabel możemy myśleć jako o następującej operacji (w rzeczywistości serwery baz danych optymalizują łączenie tabel): Pierwszym etapem jest obliczenie wyniku iloczynu kartezjańskiego łączonych tabel kombinacji wszystkich wierszy z pierwszej tabeli z wszystkimi wierszami z drugiej tabeli. Jeśli każda tabela zawiera tylko jeden wiersz, to wynik iloczynu kartezjańskiego też będzie miał jeden wiersz. W przypadku tabel o 5 wierszach, wynik iloczynu kartezjańskiego wynosi 25 wierszy. Iloczyn kartezjański trzech tabel o, odpowiednio, 30, 100 i 10 wierszach daje w wyniku tabelę z wierszy. Ten ogromny zbiór stanowi podstawę dla dalszego wykonywania zapytania. Przede wszystkim usuwane są z niego wiersze niespełniające warunku złączenia. Dzięki temu pozbywamy się ogromnej liczby powtórzonych i bezsensownych kombinacji danych. Kolejny krok polega na wykonaniu ograniczeń wynikających z klauzul WHERE i HAVING. Wszystkie wiersze, które nie spełniają określonych w nich warunków są odrzucane. Końcowym etapem jest wybranie z tabeli kolumn zawartych w klauzuli SELECT i wykonanie odpowiedniej projekcji. Z reguły łączy się tabele na podstawie wartości wspólnego atrybutu, na przykład wartości pary klucz podstawowy-klucz obcy. W takim przypadku musimy użyć jednoznacznego identyfikatora obiektu (kolumny). Ponieważ nazwy kolumn zawierających klucz podstawowy

10 i obcy najczęściej są takie same, musimy poprzedzać nazwy kolumn nazwami tabel. Możemy poprawić czytelność zapytania, stosując aliasy dla nazw tabel. Łącząc tabele, stosujemy się do następujących wskazówek: 1. Staramy się łączyć tabele za pomocą kolumn przechowujących parę kluczy podstawowy-obcy. 2. Do złączenia używamy całych kluczy podstawowych tabel. Jeżeli dla jakiejś tabeli zdefiniowano złożony (składający się z kilku atrybutów) klucz podstawowy, łącząc taką tabelę, odwołujemy się do całego klucza; 3. Łączymy obiekty za pomocą kolumn tego samego typu. 4. Poprzedzamy nazwy kolumn aliasem nazwy obiektu źródłowego, nawet jeżeli ich nazwy są unikatowe w ten sposób poprawimy czytelność zapytania. 5. Ograniczamy liczbę łączonych obiektów do niezbędnego minimum. Złączenie naturalne Wynikiem złączenia naturalnego jest zbiór wierszy łączonych tabel, dla których wartości kolumn określonych jako warunek złączenia są takie same. Ponieważ w relacyjnych bazach danych informacje są podzielone pomiędzy tabele zawierające dane o obiektach jednego typu, złączenie naturalne jest najczęściej wykorzystywanym (i domyślnym) złączeniem obiektów. W przykładowej bazie danych informacje o klientach, zamówieniach, towarach i stanach magazynowych przechowywane są w powiązanych ze sobą tabelach. Dlatego, żeby odczytać na przykład daty składania przez poszczególnych klientów zamówień, musimy odwołać się do dwóch tabel nazwę klienta odczytamy z tabeli customer, a datę złożenia zamówienia z tabeli orderinfo. Przy czym z reguły nie chodzi nam o uzyskanie poniższego wyniku (listing 4.1). Listing 4.1. Odwołując się do wielu tabel, powinniśmy określić warunek złączenia, inaczej wynik będzie zawierał wszystkie kombinacje wierszy wymienionych tabel (iloczyn kartezjański). W tym przypadku tabela customer liczy 16, a tabela orderinfo 5 wierszy SELECT lname, date_placed FROM customer, orderinfo; -+ lname date_placed -+ Stones Stones Stones Stones Stones Stones Stones Stones Stones Stones Matthew Wolski rows in set

11 Poprawnie napisana instrukcja powinna zwrócić nam tylko daty zamówień złożonych przez danego klienta. Żeby to osiągnąć, musimy określić warunek złączenia, czyli poinformować serwer baz danych, co łączy zapisane w obu tabelach dane. W tym przypadku jest to identyfikator klienta zwróć uwagę, że kolumna customer_id występuje w obu tabelach, czyli na podstawie tego identyfikatora jesteśmy w stanie sensownie połączyć informacje o klientach z informacjami o zamówieniach (listing 4.2). Listing 4.2. Poprawne zapytanie zwracające nazwiska klientów i daty złożenia przez nich zamówień SELECT lname, date_placed FROM customer INNER JOIN orderinfo ON customer.customer_id = orderinfo.customer_id; -+ lname date_placed -+ Matthew Stones Hudson Hendy Stones Złączenie naturalne pozwoli nam również odczytać kody poszczególnych towarów. Jednak tym razem użyjemy nieco innej składni zamiast dość rozwlekłej klauzuli ON, skorzystamy z jej bardziej zwięzłego odpowiednika klauzuli USING (listing 4.3). Listing 4.3. Złączenie naturalne za pomocą klauzuli USING SELECT description, barcode_ean FROM barcode INNER JOIN item USING (item_id); + description barcode_ean + Wood Puzzle Rubik Cube Linux CD Linux CD Tissues Picture Frame Fan Small Fan Large Toothbrush Toothbrush Toothbrush Roman Coin Speakers Speakers

12 Klauzule ON i USING są różnymi sposobami na podanie warunku złączenia, czyli wskazania wspólnych kolumn łączonych tabel. Złączenia zewnętrzne Złączenie naturalne eliminuje z wyniku niepasujące (niespełniające warunku złączenia) wiersze. To dobrze, bo w innym przypadku otrzymalibyśmy zawierający mnóstwo powtórzeń i niepotrzebnych danych iloczyn kartezjański. Ale z drugiej strony, ten sam warunek złączenia usunął z wyniku rekordy niemające odpowiedników w łączonej tabeli. Czyli wynik poniższej instrukcji wcale nie musi zawierać danych wszystkich naszych klientów (listing 4.6). Listing 4.6. W wyniku złączenia naturalnego nie znajdziemy nazwisk klientów, którzy nie złożyli przynajmniej jednego zamówienia SELECT lname, date_placed FROM customer INNER JOIN orderinfo ON customer.customer_id = orderinfo.customer_id; -+ lname date_placed -+ Matthew Stones Hudson Hendy Stones Czasami chcielibyśmy uzyskać komplet danych z jednej tabeli, nawet jeżeli nie są one powiązane z danymi w innych tabelach. Umożliwia nam to złączenie zewnętrzne. Wynikiem lewo- lub prawostronnego złączenia zewnętrznego jest zbiór wierszy łączonych tabel, dla których wartości kolumn określonych jako warunek złączenia są takie same; zbiór ten uzupełniony jest pozostałymi wierszami z lewej lub prawej łączonej tabeli. Nieistniejące wartości reprezentowane są w wyniku złączenia przez wartość NULL (listing 4.7). Listing 4.7. Kompletna, ale zawierająca powtórzenia lista nazwisk klientów i dat złożenia przez nich zamówień SELECT lname, date_placed FROM customer LEFT OUTER JOIN orderinfo ON customer.customer_id = orderinfo.customer_id; -+ lname date_placed -+ Stones Stones Matthew Matthew Cozens Matthew Stones Stones

13 Stones Hickman Howard Jones Neill Hendy Neill Hudson Wolski -+ Złączenia zewnętrzne wykorzystywane są do wyświetlania kompletnych informacji o wszystkich obiektach danego typu, nawet jeżeli nie istnieją powiązane z nimi obiekty innego typu. Wykorzystując wiadomości z poprzedniego odcinka kursu, możemy uporządkować tę listę (listing 4.8). Listing 4.8. Finalna wersja instrukcji zwracającej nazwiska wszystkich klientów i daty składania przez nich zamówień SELECT DISTINCT lname, date_placed FROM customer LEFT JOIN orderinfo USING (customer_id) ORDER BY lname; -+ lname date_placed -+ Cozens Hendy Hickman Howard Hudson Jones Matthew Matthew Neill Stones Stones Stones Wolski -+ Złączenie krzyżowe Wynikiem złączenia krzyżowego jest iloczyn kartezjański łączonych obiektów. W przeciwieństwie do innych typów złączeń, w tym wypadku łączone tabele nie muszą mieć wspólnych kolumn. Złączenia tego typu są rzadko stosowane w znormalizowanych bazach danych i służą raczej do generowania danych testowych niż do wybierania danych (listing 4.9). Listing 4.9. Wynikiem złączenia krzyżowego jest iloczyn kartezjański SELECT * FROM barcode CROSS JOIN stock; -+

14 barcode_ean item_id item_id quantity rows in set (0.00 sec) Złączenie nierównościowe Powiązania tabel wykorzystujące dowolny, inny niż równość, operator nazywane są nierównościowymi (ang. Non-equi join). Tego typu złączenia z reguły są używane przy łączeniu tabeli z nią samą albo jako dodatkowe złączenie, obok złączenia równościowego. Samodzielne złączenie nierównościowe zwraca mało intuicyjne wyniki (listing 4.10). Listing Przykład złączenia nierównościowego SELECT lname, date_placed FROM customer INNER JOIN orderinfo ON customer.customer_id > orderinfo.customer_id WHERE date_placed BETWEEN '2000=03-01' AND ' '; -+ lname date_placed -+ Matthew Cozens Matthew Stones Stones Hickman Howard Jones Neill Hendy Neill Hudson Wolski Zwróć uwagę na warunek w klauzuli WHERE. Żeby wybrać zamówienia z marca 2000 roku, należało określić przedział czasu Złączenie tabeli z nią samą Złączenie tabeli z nią samą stosujemy, kiedy chcemy wybrać rekordy z tabeli na podstawie wspólnych wartości atrybutów rekordów tej samej tabeli.

15 Złączenie tabeli z nią samą jest jedną z technik języka SQL, odpowiadającą użyciu zmiennych w proceduralnych językach programowania. Przy łączeniu w ten sposób, należy pamiętać o następujących zasadach: 1. Trzeba utworzyć różne aliasy dla łączonej tabeli i w ramach zapytania konsekwentnie odwoływać się do aliasów, a nie do nazwy tabeli. 2. Każdy rekord, w którym wartości atrybutu złączenia będą sobie równe, zostanie dodany do wyniku złączenia, co spowoduje powstanie duplikatów rekordów. Złączenia tabeli z samą sobą są często wykorzystywane do rekurencyjnego odczytania danych, na przykład informacji o podwładnych (podwładny osoby X może być przełożonym osoby Y, która z kolei może być przełożonym osoby Z). W testowej bazie danych nie ma zapisanych takich zależności. Przykład z listingu jest czysto szkoleniowy. Listing Złączenie tabeli z nią samą. Zwróć uwagę na liczbę powtórzonych wierszy SELECT l.customer_id, r.customer_id, l.lname, r.lname FROM customer l INNER JOIN customer r ON l.customer_id = r.customer_id; customer_id customer_id lname lname Stones Stones 2 2 Stones Stones 3 3 Matthew Matthew 4 4 Matthew Matthew 5 5 Cozens Cozens 6 6 Matthew Matthew 7 7 Stones Stones 8 8 Stones Stones 9 9 Hickman Hickman Howard Howard Jones Jones Neill Neill Hendy Hendy Neill Neill Hudson Hudson Wolski Wolski Jak wyeliminować te powtórzenia? Na pewno nie pomoże w tym słowo kluczowe DISTINCT przecież każdy wiersz zawiera niepowtarzalną kombinację danych. Rozwiązanie polega na dodaniu niesymetrycznego warunku (np. WHERE l.lname > r.lname), ale MySQL przy łączeniu tabeli z nią samą nie rozróżnia kolumn pochodzących z lewostronnie i prawostronnie złączonej tabeli, traktując je (niezgodnie ze standardem języka) jako te same. W efekcie dodanie takiego warunku wyeliminuje wszystkie wiersze. Złączenie wyników (operator UNION) Skoro tabele są specjalnymi zbiorami, to, tak jak zbiory, można je dodawać, odejmować i wyznaczać ich część wspólną. W wersji 5. MySQL obsługuje tylko jeden operator teoriomnogościowy sumę.

16 Do zsumowania wierszy z dowolnej liczby tabel służy operator UNION. Załóżmy, że A i B są zbiorami wtedy suma zbiorów A i B składa się z elementów obu zbiorów: AEB={x: xîa lub xîb} (rysunek 4.1). Rysunek 4.1. Na sumę dwóch tabel składają się wszystkie wiersze jednej tabeli i wszystkie wiersze drugiej tabeli Za pomocą operatora UNION możemy dodać wyniki poszczególnych zapytań (czyli zwiększyć liczbę wierszy wyniku. Złączenia JOIN zwiększały liczbę kolumn, złączenie UNION zwiększa liczbę wierszy). Łączone wyniki muszą składać się z takiej samej liczby kolumn, a poszczególne kolumny muszą być tego samego typu, poza tym konieczne jest, aby występowały one w tej samej kolejności w obu wynikach (listing 4.12). Listing Złączenie wyników dwóch prostych zapytań SELECT fname FROM customer UNION SELECT description FROM item; fname Jenny Andrew Alex Adrian Simon Neil Richard Ann Christine Mike Dave Laura Bill David Wood Puzzle Rubik Cube Linux CD Tissues Picture Frame Fan Small

17 Fan Large Toothbrush Roman Coin Carrier Bag Speakers SQL Server 2005 Operatory teoriomnogościowe (takie jak UNION) automatycznie eliminują z wyniku powtarzające się wiersze, co odpowiada użyciu opcji DISTINCT w klauzuli SELECT. Jeżeli chcemy otrzymać listę zawierającą wszystkie wiersze z łączonych tabel, należy użyć słowa kluczowego ALL (listing 4.13). Listing Przykład pokazujący domyślne usuwanie duplikatów z wyników złączenia UNION SELECT item_id FROM item UNION SELECT item_id FROM stock; item_id SELECT item_id FROM item UNION ALL SELECT item_id FROM stock; item_id

18 Wybrane funkcje serwera MySQL Tak jak we wszystkich innych językach programowania, w języku SQL funkcje stanowią potężne narzędzie w pracy programisty zamiast samodzielnie pisać skomplikowane programy, wystarczy wywołać odpowiednią funkcję. W tym odcinku nauczymy się wywoływać funkcje systemowe i poznamy niektóre funkcje serwera MySQL. Wprowadzenie Wbudowane funkcje serwerów baz danych można podzielić na trzy kategorie: 1. Funkcje skalarne, które zwracają pojedynczą wartość obliczoną na podstawie zera lub większej liczby prostych argumentów. 2. Funkcje grupujące, które zwracają pojedynczą wartość dla zbioru argumentów wywołania. 3. Funkcje typu RowSet, zwracające dane w postaci tabelarycznej, do których odwołujemy się tak jak do tabel. Na podstawie typu parametrów wywołania funkcje skalarne można podzielić na: 1. Funkcje tekstowe operujące na ciągach znaków. 2. Funkcje liczbowe operujące na liczbach. 3. Funkcje daty i czasu operujące na danych typu data/godzina. 4. Funkcje konwersji służące do zmiany typu danych. Na specjalne wyróżnienie zasługują funkcje kryptologiczne, które pozwalają zaszyfrować, odszyfrować, podpisać i sprawdzić autentyczność wiadomości. W języku SQL funkcje można zagnieżdżać do dowolnego poziomu. Funkcje najbardziej wewnętrzne obliczane są w pierwszej kolejności, a na podstawie ich wyników obliczane są funkcje zewnętrzne. Funkcje tekstowe Argumentem funkcji tekstowych są ciągi znaków (dane typów char, varchar lub text). Typ danych zwracanych przez funkcje tekstowe jest podstawą do ich dalszego podziału: wyróżniamy funkcje tekstowe zwracające wartość znakową i funkcje tekstowe zwracające liczbę. Funkcje tekstowe zawierajace tekst CONCAT()

19 Funkcja łączy (konkatenuje) przekazane jako parametr i oddzielone przecinakami ciągi znaków. Używaliśmy już tej funkcji, a w następnych listingach użyjemy jej jeszcze kilka razy. LOWER() Wynikiem działania funkcji LOWER() jest ciąg znaków podany jako argument, ale składający się wyłącznie z małych liter. Za pomocą tej funkcji wszystkie wielkie litery argumentu zostaną zamienione na małe. Na przykład, aby wyświetlić nazwiska wszystkich współpracowników za pomocą małych liter, napiszemy (listing 5.1). Listing 5.1. Funkcji skalarnych można używać m.in. w klauzulach SELECT, WHERE i ORDER BY SELECT title, LOWER(title) FROM customer WHERE customer_id<3; +- title lower(title) +- Miss miss Mr mr +- UPPER() Wynikiem działania funkcji UPPER() jest ciąg znaków podany jako argument, ale składający się wyłącznie z wielkich liter. Za pomocą tej funkcji wszystkie małe litery argumentu zostaną zamienione na wielkie. Na przykład, aby uszeregować nazwy wszystkich towarów alfabetycznie według ich nazw, bez względu na wielkość użytych w nazwie liter, napiszemy (listing 5.2). Listing 5.2. Poszczególne klauzule instrukcji są od siebie niezależne na przykład, dane mogą być sortowane według wyrażenia niewymienionego w klauzuli SELECT SELECT * FROM item ORDER BY UPPER(description); --+ item_id description cost_price sell_price Carrier Bag Fan Large Fan Small Linux CD Picture Frame Roman Coin Rubik Cube Speakers SQL Server 2005 NULL NULL 4 Tissues Toothbrush Wood Puzzle Funkcje liczbowe ROUND()

20 Działanie funkcji ROUND() polega na zaokrągleniu liczby do określonej liczby cyfr po przecinku. Pierwszy parametr jest liczbą do zaokrąglenia, drugi wskazuje, do ilu pozycji chcemy zaokrąglić. Ujemna liczba powoduje zaokrąglenie liczby z lewej strony przecinka; 0 spowoduje zaokrąglenie do najbliższej liczby całkowitej. Jeżeli drugi parametr nie jest podany, SZBD przyjmuje domyślnie jego wartość jako równą 0 (listing 5.12). Listing Przykład użycia funkcji ROUND() SELECT Round( ,4), Round( ,0), Round( ); -- Round( ,4) Round( ,0) Round( ) TRUNCATE() Funkcja TRUNCATE() powoduje obcięcie liczby do określonej liczby cyfr po przecinku. Pierwszy parametr jest liczbą do obcięcia, drugi wskazuje, do ilu pozycji chcemy liczbę skrócić. Ujemna liczba powoduje dodanie określonej liczby zer z lewej strony przecinka. Jeżeli drugi parametr nie jest podany, MySQL przyjmuje domyślnie jego wartość jako równą 0 (listing 5.13). Listing Obcięcie miejsc po przecinku i zaokrąglenie do iluś miejsc po przecinku to dwie operacje SELECT Truncate( ,4); Truncate( ,4) ABS() Wynikiem działania funkcji ABS() jest wartość bezwzględna liczby (liczba bez znaku). Jako parametr podaje się liczbę, której wartość bezwzględną należy obliczyć (listing 5.14). Listing Funkcja ABS() użyta do sprawdzenia, czy dana liczba jest dodatnia SELECT * FROM item WHERE sell_price!= ABS(sell_price); Empty set CEILING(), FLOOR() Za pomocą funkcji CEILING() zwrócona zostanie najmniejsza liczba całkowita równa liczbie podanej jako argument funkcji lub większa. Funkcja FLOOR() zwraca największą liczbę całkowitą równą liczbie podanej jako argument funkcji lub mniejszą (listing 5.15). Listing Zwróć uwagę na wynik wywołania funkcji z argumentem Null SELECT sell_price, CEILING(sell_price), FLOOR(sell_price)

Pobieranie danych z wielu tabel i łączenie wyników zapytań

Pobieranie danych z wielu tabel i łączenie wyników zapytań W tym odcinku nauczysz się odczytywać dane zapisane w różnych tabelach, poznasz różnice pomiędzy złączeniem wewnętrznym a złączeniami zewnętrznymi i dowiesz się, jak przeprowadzać na tabelach operacje

Bardziej szczegółowo

E.14 Bazy Danych cz. 14 SQL Podzapytania

E.14 Bazy Danych cz. 14 SQL Podzapytania Wprowadzenie Podzapytania niepowiązane Podzapytania jako źródła danych Podzapytania jako zmienne Podzapytania powiązane Podzapytania jako złączenia Podzapytania z operatorem EXISTS Podzapytania zwracające

Bardziej szczegółowo

Podobnie jak wywołania funkcji w innych funkcjach, zapytania możemy zagnieżdżać w innych zapytaniach. Podzapytanie musi zostać zapisane w nawiasie.

Podobnie jak wywołania funkcji w innych funkcjach, zapytania możemy zagnieżdżać w innych zapytaniach. Podzapytanie musi zostać zapisane w nawiasie. W tym odcinku poznasz odpowiednik zmiennych i funkcji znanych z proceduralnych języków programowania podzapytania. Dowiesz się, w jaki sposób MySQL wykonuje podzapytania niepowiązane i powiązane, oraz

Bardziej szczegółowo

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące Funkcje grupujące Funkcja COUNT() Funkcja SUM() Funkcja AVG() Funkcje MIN() i MAX() Funkcja GROUP_CONCAT() Grupowanie danych Operator ROLLUP Klauzula HAVING Kolejność wykonywania klauzuli zapytań Na podstawie:

Bardziej szczegółowo

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane. W tym odcinku poznasz funkcje grupujące i dwie nowe klauzule instrukcji SELECT GROUP BY i HAVING. Nauczysz się też grupować dane, czyli łączyć wiele wierszy w jeden. Grupowanie danych polega na łączeniu

Bardziej szczegółowo

E.14 Bazy Danych cz. 10 SQL Pobieranie danych z pojedynczych tabel

E.14 Bazy Danych cz. 10 SQL Pobieranie danych z pojedynczych tabel Tabele jako zbiory danych Standardy SQL i historia ich powstania Składnia języka SQL Pobieranie danych Odczytujemy wszystkie dane z tabeli Wybieramy kolumny z tabeli Wyrażenia Aliasy Literały Łączenie

Bardziej szczegółowo

Wprowadzenie. Tworzenie widoków

Wprowadzenie. Tworzenie widoków Widoki Wprowadzenie...2 Tworzenie widoków...2 Złączenie zewnętrzne w definicji widoków...4 Porządkowanie danych przez widoki...5 Modyfikowanie danych przez widoki...6 Ograniczenie zakresu modyfikowania

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

E.14 Bazy Danych cz. 12 SQL Wybrane funkcje serwera MySQL

E.14 Bazy Danych cz. 12 SQL Wybrane funkcje serwera MySQL Wprowadzenie Funkcje tekstowe Funkcje liczbowe Funkcje daty i czasu Funkcje konwersji Funkcje serwera MySQL Na podstawie: webmaster.helion.pl oraz: ihelp.ovh.org Tak jak we wszystkich innych językach programowania,

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

E.14 Bazy Danych cz. 17 SQL Widoki

E.14 Bazy Danych cz. 17 SQL Widoki Wprowadzenie Tworzenie widoków Złączenie zewnętrzne w definicji widoków Uporządkowywanie danych poprzez widoki Modyfikowanie danych poprzez widoki Ograniczenie zakresu modyfikowania danych poprzez widoki

Bardziej szczegółowo

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele

Bardziej szczegółowo

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

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Pobieranie danych, czyli instrukcja SELECT

Pobieranie danych, czyli instrukcja SELECT Pobieranie danych, czyli instrukcja SELECT Pobieranie danych Informacje przechowywane w bazach danych mogą być pobrane za pomocą instrukcji języka SQL SELECT. Instrukcja SELECT (zapytanie) określa, jakie

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Projektowanie relacyjnych baz danych

Projektowanie relacyjnych baz danych Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz

Bardziej szczegółowo

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

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

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

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

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

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty) Ćwiczenia MS Access/SQL I. Zadania podstawowe 1. Wyświetlanie zawartości tabeli a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty). ; b) Polecenie: Wyświetl dane (wszystkie

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Pobieranie danych z pojedynczych tabel

Pobieranie danych z pojedynczych tabel W tym odcinku po raz pierwszy potraktujemy tabele jako zbiory danych. Poznasz język SQL i nauczysz się odczytywać, wybierać i sortować dane zapisane w pojedynczych tabelach. Wprowadzenie Podstawowe obiekty

Bardziej szczegółowo

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny Schemat bazy danych, wczytanej z pliku create_tables.sql Relacji między tabelami klucze obce Klucz obcy jako ograniczenie dla kolumny customer_id INTEGER NOT NULL REFERENCES customer(customer_id), CONSTRAINT

Bardziej szczegółowo

Transakcje W poprzednich częściach instrukcje języka SQL traktowane były jak indywidualne operacje (transakcje)

Transakcje W poprzednich częściach instrukcje języka SQL traktowane były jak indywidualne operacje (transakcje) Zawartość Transakcje...2 Wstawianie danych...4 Weryfikacja danych...4 Wstawianie pojedynczych wierszy...6 Wstawianie wartości Null...8 Wstawianie danych wybranych w zapytaniu... 10 Usuwanie danych... 12

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem. Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański).

Bardziej szczegółowo

Podstawy języka SQL cz. 2

Podstawy języka SQL cz. 2 Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

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

8.9. Język SQL Kwerenda wybierająca w języku SQL 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ć.

Bardziej szczegółowo

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

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład XII. optymalizacja w relacyjnych bazach danych Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

3. Podzapytania, łączenie tabel i zapytań 3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

Laboratorium Baz Danych. Zapytania SQL (część 3)

Laboratorium Baz Danych. Zapytania SQL (część 3) Laboratorium Baz Danych Zapytania SQL (część 3) Uwagi: 1. Wszystkie zapytania dotyczą bazy danych zapytania (skrypt baza6.sql) 2. Wszystkie utworzone zapytania umieszczamy w skrypcie, który pokazujemy

Bardziej szczegółowo

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy

Bardziej szczegółowo

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

MySQL. Darmowa baza danych. Æwiczenia praktyczne

MySQL. Darmowa baza danych. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOœCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREœCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

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

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2019 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina

Bardziej szczegółowo

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Dane z kilku tabel Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Łączenie kilku selectów w jeden posortowany wynik 1. UNION suma bez powtórzeń. Powoduje,

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Kwerendy (zapytania) wybierające

Kwerendy (zapytania) wybierające Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

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

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne. Kwerendy wybierające Kwerenda wybierająca jest najczęściej używanym rodzajem kwerendy. Służy do otrzymywania danych z tabeli lub tabel i wyświetla wyniki w arkuszu danych, w którym można je następnie aktualizować

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

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

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH Wstęp do SQL SQL (Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym.

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2018 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

2017/2018 WGGiOS AGH. LibreOffice Base

2017/2018 WGGiOS AGH. LibreOffice Base 1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,

Bardziej szczegółowo

Wykład 2. Relacyjny model danych

Wykład 2. Relacyjny model danych Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających

Bardziej szczegółowo

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy danych 2. Wykład 4 Structured Query Language (SQL) Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 6: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogościowe rzutowanie selekcja przemianowanie Małgorzata Krętowska Wydział Informatyki Politechnika

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Optymalizacja poleceń SQL Metody dostępu do danych

Optymalizacja poleceń SQL Metody dostępu do danych Optymalizacja poleceń SQL Metody dostępu do danych 1 Metody dostępu do danych Określają, w jaki sposób dane polecenia SQL są odczytywane z miejsca ich fizycznej lokalizacji. Dostęp do tabeli: pełne przeglądnięcie,

Bardziej szczegółowo

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo