Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00072 009779 10452365 na godz. na dobę w sumie
SQL. Ćwiczenia praktyczne - książka
SQL. Ćwiczenia praktyczne - książka
Autor: Liczba stron: 152
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-0621-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> sql - programowanie
Porównaj ceny (książka, ebook, audiobook).

Poznaj zasady pracy z bazami danych

Bazy danych są 'kręgosłupem' niemal każdej aplikacji. Rozbudowane systemy finansowe, aplikacje korporacyjne, portale i sklepy internetowe, a nawet proste programy do fakturowania opierają się na bazach danych. Rynek systemów zarządzania bazami danych jest bardzo zróżnicowany -- można znaleźć zarówno ogromne aplikacje komercyjne, jak i systemy dostępne nieodpłatnie. Na szczęście dla programistów i użytkowników z każdym z takich systemów można 'porozumieć się' za pomocą języka o nazwie SQL. Oczywiście, każda z baz danych ma specyficzne dla siebie instrukcje, jednak rdzeń języka jest wspólny.

Dzięki książce 'SQL. Ćwiczenia praktyczne' na podstawie prostych i gotowych do rozwiązania przykładów poznasz podstawy tego języka. Nauczysz się planować i projektować tabele, umieszczać w nich dane oraz przetwarzać je. Dowiesz się, w jaki sposób formułować zapytania języka SQL, za pomocą których można wprowadzać dane, wybierać je według określonych kryteriów i przeprowadzać obliczenia. Poznasz również sposoby pobierania danych z wielu tabel za pomocą złączeń oraz przeczytasz o transakcjach i więzach integralności.

Po przeczytaniu tej książki będziesz w stanie sprawnie posługiwać się
systemami baz danych opartymi na SQL.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREœCI SPIS TREœCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOœCIACH O NOWOœCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl SQL. Æwiczenia praktyczne Autor: Marcin Lis ISBN: 83-246-0621-1 Format: A5, stron: 152 Poznaj zasady pracy z bazami danych (cid:129) Projektowanie baz i tabel (cid:129) Wprowadzanie i wybieranie danych (cid:129) Konstruowanie z³o¿onych zapytañ Bazy danych s¹ „krêgos³upem” niemal ka¿dej aplikacji. Rozbudowane systemy finansowe, aplikacje korporacyjne, portale i sklepy internetowe, a nawet proste programy do fakturowania opieraj¹ siê na bazach danych. Rynek systemów zarz¹dzania bazami danych jest bardzo zró¿nicowany -- mo¿na znaleŸæ zarówno ogromne aplikacje komercyjne, jak i systemy dostêpne nieodp³atnie. Na szczêœcie dla programistów i u¿ytkowników z ka¿dym z takich systemów mo¿na „porozumieæ siê” za pomoc¹ jêzyka o nazwie SQL. Oczywiœcie, ka¿da z baz danych ma specyficzne dla siebie instrukcje, jednak rdzeñ jêzyka jest wspólny. Dziêki ksi¹¿ce „SQL. Æwiczenia praktyczne” na podstawie prostych i gotowych do rozwi¹zania przyk³adów poznasz podstawy tego jêzyka. Nauczysz siê planowaæ i projektowaæ tabele, umieszczaæ w nich dane oraz przetwarzaæ je. Dowiesz siê, w jaki sposób formu³owaæ zapytania jêzyka SQL, za pomoc¹ których mo¿na wprowadzaæ dane, wybieraæ je wed³ug okreœlonych kryteriów i przeprowadzaæ obliczenia. Poznasz równie¿ sposoby pobierania danych z wielu tabel za pomoc¹ z³¹czeñ oraz przeczytasz o transakcjach i wiêzach integralnoœci. (cid:129) Zasady projektowania tabel baz danych (cid:129) Typy danych (cid:129) Wprowadzanie danych do bazy (cid:129) Pobieranie danych (cid:129) Modyfikowanie i usuwanie danych (cid:129) Z³¹czenia (cid:129) Transakcje w systemach baz danych Po przeczytaniu tej ksi¹¿ki bêdziesz w stanie sprawnie pos³ugiwaæ siê systemami baz danych opartymi na SQL Wstęp Rozdział 1. Podstawy relacyjnych baz danych Tabele Klucze Relacje Podstawowe zasady projektowania tabel Rozdział 2. Praca z tabelami Typy danych Tworzenie tabel Atrybuty kolumn Indeksy Modyfikacja tabel Usuwanie tabel Rozdział 3. Umieszczanie danych w bazie Instrukcja INSERT INTO Wprowadzanie wielu wierszy Druga postać instrukcji INSERT Rozdział 4. Pobieranie danych z tabel Podstawy instrukcji SELECT Sortowanie wyników zapytań Kryteria pobierania danych Niepowtarzalność wierszy 5 9 9 10 11 16 25 25 29 31 35 39 45 47 47 53 55 57 57 61 63 71 4 SQL • Ćwiczenia praktyczne Rozdział 5. Modyfikacja i usuwanie danych Rozdział 6. Instrukcja UPDATE Modyfikacja danych w tabelach Usuwanie danych Złączenia Łączenie wyników zapytań Pobieranie danych z wielu tabel Złączenia Rozdział 7. Funkcje agregujące Rozdział 8. Grupowanie danych Rozdział 9. Podzapytania Podzapytania w klauzuli FROM Podzapytania klauzuli WHERE Podzapytania w instrukcjach aktualizujących dane Rozdział 10. Transakcje Transakcje w systemach baz danych Obejmowanie instrukcji transakcją Wycofywanie transakcji Izolacja transakcji Rozdział 11. Więzy integralności Integralność danych Definiowanie klucza obcego Dodawanie i usuwanie więzów Dodatek A Co nowego? Dodatek B Instalacja PostgreSQL 73 73 74 78 81 81 86 90 97 105 113 114 115 119 123 123 124 125 126 129 129 130 133 135 144 Dane zapisane w tabelach bazy danych można pobierać za pomocą instrukcji SELECT. Jej podstawowa postać ogólnie wy- gląda tak: SELESELkolumna1,Lkolumna2,L...,LkolumnaN FROMLtabela [WHERELwarunek] [ORDERLBYLkolumna1,Lkolumna2,L...,LkolumnaNL[ASSL|LDES]] Taka konstrukcja oznacza: pobierz wartości wymienionych kolumn z tabeli tabela, spełniających warunek warunek, a wyniki posortuj wzglę- dem kolumn wymienionych w klauzuli ORDER BY, rosnąco (ASC) lub malejąco (DESC). Elementy ujęte w nawiasy kwadratowe są opcjonalne. Aby przećwiczyć działanie tej wersji instrukcji SELECT, utworzymy przy- kładową tabelę pracopraco o następujących kolumnach: q q q ad — typu INTEGER, będąca kluczem głównym i zawierająca identyfikator każdego wiersza; amae — typu VARCHAR(20), z atrybutem NOT NULL, zawierająca imię pracownika; razpasko — typu VARCHAR(30), z atrybutem NOT NULL, zawierająca nazwisko pracownika; 5 8 SQL • Ćwiczenia praktyczne q q q placa — typu DECIMAL(DE 2), z atrybutem NOT NULL, zawierająca miesięczne wynagrodzenie pracownika; staropasko — typu VARCHAR(20), z atrybutem NOT NULL, zawierająca stanowisko pracownika1; pesel — typu CHAR(11), zawierająca PESEL pracownika. Taka tabela zostanie utworzona za pomocą instrukcji: SREAEELEABLELpracownicy ( LLidLINEEGERLPRIMARYLKEY, LLimieLVARSHAR(20)LNOELNULL, LLnazwiskoLVARSHAR(30)LNOELNULL, LLplacaLDESIMAL(7,L2)LNOELNULL, LLstanowiskoLVARSHAR(20), LLpeselLSHAR(11) ) Wypełnimy ją przykładowymi danymi: INSERELINEOLpracownicyLVALUESL(1,L Adam ,L Kowalski ,L1624.I0, magazynier ,L 1234I678901 ); INSERELINEOLpracownicyLVALUESL(2,L Adam ,L Nowak ,L3760.00,L kierownik , 9234I678901 ); INSERELINEOLpracownicyLVALUESL(3,L Andrzej ,L Kowalski ,L4200.00, kierownik ,L 7234I678901 ); INSERELINEOLpracownicyLVALUESL(4,L Arkadiusz ,L Malinowski ,L1600.00, kierowca ,L 9234I678909 ); INSERELINEOLpracownicyLVALUESL(I,L Andrzej ,L Malinowski ,L14I0.00, sprzedawca ,LNULL); INSERELINEOLpracownicyLVALUESL(6,L Krzysztof ,L Nowicki ,L1300.00, sprzedawca ,LNULL); INSERELINEOLpracownicyLVALUESL(7,L Kacper ,L Adamczyk ,L1610.I0, serwisant ,L 92341678903 ); INSERELINEOLpracownicyLVALUESL(8,L Kamil ,L Andrzejczak ,L1200.00, asystent ,LNULL); INSERELINEOLpracownicyLVALUESL(9,L Krzysztof ,L Arkuszewski ,L1I00, magazynier ,L 02343678913 ); INSERELINEOLpracownicyLVALUESL(10,L Kamil ,L Borowski ,L1600.00, sprzedawca ,L 32349678913 ); 1 Jak wiesz z rozdziału 1., w realnie działającej bazie nazwy stanowisk powinny raczej znajdować się w oddzielnej tabeli, jednak umieszczenie ich w tabeli pracownicy ułatwi nam wykonywanie dalszych ćwiczeń. Rozdział 4. • Pobieranie danych z tabel 5 9 Ć W I C Z E N I E 4.1 Wyświetlenie zawartości wybranej tabeli Użyj instrukcji SELECT do wyświetlenia zawartości tabeli pracopraco. Instrukcja SELECT, która pobierze wszystkie wiersze z tabeli pracopraco, ma postać: SELESEL*LFROMLpracownicy; Symbol * oznacza tu, że interesuje nas zawartość wszystkich kolumn. Przykładowy efekt działania tego polecenia został zaprezentowany na rysunku 4.1. Widać na nim, że faktycznie wyświetlone zostały wszystkie dane wprowadzone uprzednio do tabeli pracopraco, jak rów- nież to, że kolejność wierszy jest taka, w jakiej były one wprowadza- ne do bazy. Rysunek 4.1. Efekt działania instrukcji SELECT pobierającej wszystkie dane z tabeli pracownicy Aby wyświetlić zawartość tylko niektórych kolumn z wybranej tabeli, nazwy tych kolumn należy umieścić za słowem SELECT, oddzielając poszczególne nazwy znakami przecinka. Przykładowo mogą nas inte- resować jedynie imiona, nazwiska i stanowiska pracowników. Ć W I C Z E N I E 4.2 Pobieranie danych z wybranych kolumn Pobierz z tabeli pracopraco dane o imionach, nazwiskach i stanowiskach. Wykonanie ćwiczenia zapewni nam instrukcja: SELESELimie,Lnazwisko,LstanowiskoLFROMLpracownicy; 6 0 SQL • Ćwiczenia praktyczne Efekt działania został zaprezentowany na rysunku 4.2. Rysunek 4.2. Wynik pobrania danych z trzech wybranych kolumn Istnieje również możliwość zmiany nazw kolumn w wynikach zapy- tania. Wystarczy, jeśli występujące w zapytaniu SELECT nazwy zastą- pimy sekwencjami o ogólnej postaci: nazwa_kolumnyLASLalias gdzie nazwa_kolumny to nazwa oryginalnej kolumny, a alias to nazwa, jaka ma się pojawić w wynikach zapytania. Ć W I C Z E N I E 4.3 Zmiana nazw kolumn w wynikach zapytania Pobierz z tabeli pracopraco dane o imionach, nazwiskach i stanowi- skach, tak aby kolumna placa miała nazwę poragrodzerae. Wykonanie ćwiczenia zapewni nam instrukcja: SELESELimie,Lnazwisko,LplacaLASLwynagrodzenieLFROMLpracownicy; Efekt wykonania ćwiczenia został zaprezentowany na rysunku 4.3. Rysunek 4.3. Nazwy kolumn w wynikach zapytania zostały zmienione Rozdział 4. • Pobieranie danych z tabel 6 1 Wyniki zapytania typu SELECT mogą być sortowane, co umożliwia klau- zula ORDER BY. Sortowanie może odbywać się w porządku rosnącym bądź malejącym względem jednej bądź kilku kolumn. Ć W I C Z E N I E 4.4 Sortowanie w porządku rosnącym Wyświetl zawartość tablicy pracopraco posortowaną względem ko- lumny razpasko w porządku rosnącym. Zatem aby wyświetlić wszystkie wiersze tabeli posortowane wzglę- dem kolumny razpasko rosnąco w porządku alfabetycznym, należy zastosować konstrukcję: SELESEL*LFROMLpracownicyLORDERLBYLnazwiskoLASS; lub prościej: SELESEL*LFROMLpracownicyLORDERLBYLnazwisko; opcja ASC jest bowiem opcją domyślną. Wynik działania takiego za- pytania został zaprezentowany na rysunku 4.4. Rysunek 4.4. Wynik sortowania tabeli pracownicy względem kolumny nazwisko w porządku rosnącym 6 2 Ć W I C Z E N I E SQL • Ćwiczenia praktyczne 4.5 Sortowanie w porządku malejącym Wyświetl zawartość tablicy pracopraco posortowaną względem kolum- ny razpasko w porządku malejącym. Aby wyświetlić wszystkie wiersze tabeli posortowane względem ko- lumny razpasko malejąco w porządku alfabetycznym, należy zastoso- wać konstrukcję: SELESEL*LFROMLpracownicyLORDERLBYLnazwiskoLDESS; Wynik działania tego zapytania jest widoczny na rysunku 4.5. Rysunek 4.5. Wynik sortowania tabeli pracownicy względem kolumny nazwisko w porządku malejącym Sortowanie może się również odbywać względem większej liczby ko- lumn. Możemy sobie na przykład zażyczyć, aby tablica została posor- towana najpierw względem nazwiska, a następnie względem płacy. Przy czym kierunek sortowania jest niezależny dla każdej kolumny, czyli można jednocześnie sortować względem nazwiska w porządku rosnącym i płacy w porządku malejącym. Ć W I C Z E N I E 4.6 Sortowanie względem kilku kolumn Wyświetl zawartość tablicy pracopraco posortowaną względem kolumn razpasko (w porządku rosnącym) i placa (w porządku malejącym). Zadanie takie zostanie zrealizowane przez instrukcję SELECT o postaci: SELESEL*LFROMLpracownicyLORDERLBYLnazwiskoLASS,LplacaLDESS; Rozdział 4. • Pobieranie danych z tabel 6 3 Efekt jego działania został przedstawiony na rysunku 4.6. Rysunek 4.6. Wynik sortowania tabeli pracownicy względem dwóch kolumn Możliwości pobierania danych z tabeli nie ograniczają się, rzecz jasna, do wszystkich zapisanych w niej wierszy. Najczęściej interesuje nas przecież tylko pewien podzbiór danych, spełniających zadane kryte- ria. Otrzymanie określonego zestawu wierszy zapewnia nam klauzula WHERE instrukcji SELECT. Za klauzulą WHERE należy umieścić warunek, jaki muszą spełniać wiersze, aby znalazły się w wynikach zapytania. Warunek w klauzuli WHERE może zawierać operatory relacyjne przedsta- wione w tabeli 5.1 oraz operatory logiczne przedstawione w tabeli 5.22. Tabela 5.1. Operatory relacyjne Operator Opis = Operator równości. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest równy argumentowi znajdującemu się z prawej strony, w przeciwnym razie zwracaLFALSE. Przykład id=10, nazwisko= Kowalski 2 Poszczególne dialekty SQL mogą również zawierać inne operatory. 6 4 SQL • Ćwiczenia praktyczne Tabela 5.1. Operatory relacyjne (ciąg dalszy) Operator Opis != = = ISLNULL Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest różny od argumentu znajdującego się z prawej strony, w przeciwnym razie zwraca FALSE. Takie samo znaczenie jak . Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest mniejszy od argumentu znajdującego się z prawej strony, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest większy od argumentu znajdującego się z prawej strony, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest mniejszy lub równy argumentowi znajdującemu się z prawej strony, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest większy lub równy argumentowi znajdującemu się z prawej strony, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest równy NULL, w przeciwnym razie zwraca FALSE. ISLNOELNULL Zwraca wartość ERUE, jeśli argument BEEWEEN NLANDLM znajdujący się z lewej strony jest różny od NULL, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony ma wartość z przedziału od N do M, w przeciwnym razie zwraca FALSE. Przykład id 2, nazwisko Kowalski id!=2, nazwisko! = Kowalski id 10 id 10 id =10 id =10 adresLISLNULL, idLISLNULL adresLISLNOE NULL, idLISLNOE NULL idLBEEWEEN 10LANDL20 Rozdział 4. • Pobieranie danych z tabel 6 5 Tabela 5.1. Operatory relacyjne (ciąg dalszy) Operator Opis NOELBEEWEEN NLANDLM IN NOELIN Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony nie ma wartości z przedziału od N do M, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony jest równy jednej z wartości wymienionych w nawiasie okrągłym za operatorem, w przeciwnym razie zwraca FALSE. Zwraca wartość ERUE, jeśli argument znajdujący się z lewej strony nie jest równy jednej z wartości wymienionych w nawiasie okrągłym za operatorem, w przeciwnym razie zwraca FALSE. Tabela 5.2. Operatory logiczne Operator Opis AND OR XOR NOE Logiczny iloczyn. Zwraca wartość ERUE wtedy i tylko wtedy, gdy oba argumenty mają wartość ERUE. W każdym innym przypadku zwraca wartość FALSE. Logiczna suma. Zwraca wartość ERUE, kiedy przynajmniej jeden z argumentów ma wartość ERUE. W każdym innym przypadku zwraca wartość FALSE. Logiczna różnica symetryczna (logiczna alternatywa wykluczająca). Zwraca wartość ERUE, kiedy oba argumenty mają różne wartości logiczne, oraz wartość FALSE, kiedy oba argumenty mają takie same wartości logiczne. Logiczna negacja. Zmienia wartość argumentu na przeciwną. Jeśli wartością argumentu było ERUE, wynikiem będzie FALSE, a jeśli wartością argumentu było FALSE, wynikiem będzie ERUE. Przykład idLNOELBEEWEEN 10LANDL20 idLIN(1,L3,LI), nazwisko IN( Kowalski , Nowak ) idLNOE IN(1,L3,LI), nazwiskoLNOE IN( Kowalski , Nowak ) Przykład imie= Jan ANDLNazwisko= Kowalski imie= Jan LOR imie= Andrzej kolumna1LXOR kolumna2, poleLXORL64 NOELAktywny 6 6 SQL • Ćwiczenia praktyczne Oprócz przedstawionych w powyższych tabelach operatorów relacyj- nych i logicznych stosunkowo często wykorzystywane są także dwa wyrażenia operujące na ciągach znaków. Są to LIKE i NOT LIKE3. Wywo- łanie funkcji LIKE ma postać: wyrażenieLLIKELwzorzec Zwraca ona wartość TRUE, jeśli wyrażenie pasuje do wzorca, w prze- ciwnym razie zwraca FALSE. Jako wyrażenie zazwyczaj jest stosowana nazwa kolumny. Argument wzorzec może zawierać dwa znaki specjal- ne. Pierwszy z nich to , który zastępuje dowolną liczbę znaków, drugi to _ (podkreślenie), który zastępuje dokładnie jeden znak. Oznacza to, że do przykładowego wzorca Jar będą pasowały ciągi Jar, Jarusz, Jarek, Jaropska itp., a do wzorca Warszap_ będą pasowały ciągi Warszapa, Warszapo, Warszapo itp. Funkcja NOT LIKE ma postać: wyrażenieLNOELLIKELwzorzec i działa odwrotnie do LIKE, czyli zwraca wartość TRUE, jeśli wyrażenie nie jest zgodne ze wzorcem, lub wartość FALSE, kiedy jest zgodne. Wykonajmy zatem serię ćwiczeń, które w praktyce pokażą, jak wyko- rzystywać warunki i wyrażenia w klauzuli WHERE. Operować będziemy na znanej Ci z poprzednich przykładów tabeli pracopraco. Ć W I C Z E N I E 4.7 Kryteria dla pojedynczej kolumny Wyświetl dane pracowników o nazwisku Kopalska. Interesują nas wiersze tabeli, które w kolumnie razpasko zawierają wartość Kopalska, powinniśmy zatem zastosować warunek razpasko= Kopalska , a więc pełne zapytanie będzie miało postać: SELESEL*LFROMLpracownicyLWHERELNazwisko= Kowalski ; Wynik jego działania został przedstawiony na rysunku 4.7. 3 W zależności od systemu bazy danych określa się je również mianem operatorów lub funkcji. Rozdział 4. • Pobieranie danych z tabel 6 7 Rysunek 4.7. Wyszukiwanie ze względu na nazwisko Ć W I C Z E N I E 4.8 Użycie operatora mniejszości Wykorzystaj operator mniejszości do pobrania listy osób o zarobkach poniżej 1600 zł. Zapytanie SQL będzie miało postać: SELESEL*LFROMLpracownicyLWHERELplacaL L1600; Efekt jego działania został przedstawiony na rysunku 4.8. Rysunek 4.8. Dane osób o zarobkach poniżej 1600 zł. Często do uzyskania pożądanych danych niezbędne jest użycie kilku warunków połączonych operatorem logicznym. Taki przykład przed- stawia następne ćwiczenie. Ć W I C Z E N I E 4.9 Wykorzystanie operatorów relacyjnych i iloczynu logicznego Użyj operatora logicznego AND do uzyskania listy osób o identyfikato- rach z przedziału 3 – 6. Aby uzyskać w wyniku zapytania wartości pól z podanego zakresu, należy użyć dwóch warunków: ad = 3 i ad = 6, połączonych operato- rem AND, a więc konstrukcji o postaci: SELESEL*LFROMLpracownicyLWHERELidL =L3LANDLidL =L6; 6 8 SQL • Ćwiczenia praktyczne co należy rozumieć jako: wyświetl takie wiersze z tabeli pracopraco, których wartość w kolumnie ad jest większa lub równa 3 i jednocze- śnie mniejsza lub równa 6. Efekt jej działania został przedstawiony na rysunku 4.9. Rysunek 4.9. Działanie iloczynu logicznego Jeśli chcielibyśmy w prosty sposób wybrać dane z pewnego przedziału, zamiast z dwóch warunków połączonych operatorem AND możemy sko- rzystać z operatora BETWEEN. Wtedy zamiast pisać: kolumnaL =Lpoczątek_zakresuLANDLkolumnaL =Lkoniec_zakresu jak w poprzednim ćwiczeniu, możemy zastosować konstrukcję: kolumnaLBEEWEENLpoczątek_zakresuLANDLkoniec_zakresu Ć W I C Z E N I E 4.10 Operator BETWEEN zamiast warunku złożonego Pobierz listę pracowników o płacach od 1400 do 1600 złotych. Użyj operatora BETWEEN. Posortuj dane względem płacy rosnąco. Jeśli do pobrania listy osób o płacach z zakresu 1400 – 1600 ma zostać wykorzystany operator BETWEEN, należy użyć instrukcji: SELESEL*LFROMLpracownicyLWHERELplacaLBEEWEENL1400LANDL1600LORDERLBYLplaca; Niekiedy konieczne jest pobranie danych o wartościach należących do pewnego zbioru, a nie przedziału. W takiej sytuacji można użyć zarówno serii instrukcji warunkowych połączonych operatorami lo- gicznymi, jak i operatora IN. Działanie będzie takie samo, choć ta druga możliwość pozwala na prostszy i dużo czytelniejszy zapis instrukcji. Operator IN ma ogólną postać: wartośćLINL(wartość1,Lwartość2,L...,LwartośćN) Oba sposoby zostaną wykorzystane w dwóch następnych ćwiczeniach. Rozdział 4. • Pobieranie danych z tabel 6 9 Ć W I C Z E N I E 4.11 Wybranie wierszy o identyfikatorach z określonego zbioru Wyświetl dane osób o identyfikatorach 3, 5 i 7, wykorzystując instruk- cje warunkowe połączone operatorem logicznym. Aby uzyskać dane osób o identyfikatorach 3, 5 i 7, należy zastosować trzy instrukcje warunkowe: ad = 3, ad = 5 i ad = D, połączone za po- mocą operatora OR (czyli sumy logicznej). Instrukcja taka będzie więc miała postać: SELESEL*LFROMLpracownicyLWHERELid=3LORLid=ILORLid=7; Co oznacza: wyświetl takie wiersze z tabeli pracopraco, których wartość w kolumnie ad jest równa 3 lub równa 5 lub równa 7. Po wykonaniu tej instrukcji na ekranie ujrzymy widok taki jak zaprezentowany na rysunku 4.10. Rysunek 4.10. Wiersze o identyfikatorach z określonego zbioru Ć W I C Z E N I E 4.12 Użycie operatora IN zamiast operatorów relacyjnych Wykonaj zadanie z ćwiczenia 4.11, wykorzystując operator IN. Jeśli do wyświetlenia rekordów o identyfikatorach 3, 5 i 7 ma być użyty operator IN, należy zastosować instrukcję: SELESEL*LFROMLpracownicyLWHERELidLIN(3,LI,L7); Efekt jej wykonania będzie taki sam jak zaprezentowany na rysun- ku 4.10. Wybranie z tabeli danych, które pasują do określonego wzorca, umoż- liwi opisany na początku rozdziału operator LIKE. 7 0 Ć W I C Z E N I E SQL • Ćwiczenia praktyczne 4.13 Dane pasujące do określonego wzorca Wyświetl dane wszystkich osób, których imiona zaczynają się od ciągu Ka. Jeśli chcemy poznać dane wszystkich osób, których imiona zaczynają się od ciągu Ka, powinniśmy zastosować instrukcję: SELESEL*LFROMLpracownicyLWHERELimieLLIKEL Ka ; Efekt działania tego polecenia jest widoczny na rysunku 4.11. Rysunek 4.11. Wyświetlenie danych pasujących do wybranego wzorca Ć W I C Z E N I E 4.14 Wyszukiwanie wartości pustych Wyszukaj w tabeli identyfikatory oraz imiona i nazwiska pracowni- ków, dla których baza nie zawiera numerów PESEL. Wyszukanie wszystkich pracowników, dla których nie został wprowa- dzony numer PESEL, zapewni nam operator IS NULL. Zapytanie będzie miało postać: SELESELid,Limie,LnazwiskoLFROMLpracownicyLWHERELpeselLISLNULL; a jego wynik został przedstawiony na rysunku 4.12. Rysunek 4.12. Dane osób, dla których brakuje numerów PESEL Rozdział 4. • Pobieranie danych z tabel 7 1 Warunek w klauzuli WHERE nie musi ograniczać się do danych pobie- ranych z jednej kolumny; można stosować warunki złożone połączone operatorami logicznymi. Ć W I C Z E N I E 4.15 Wiele kolumn w klauzuli WHERE Wyświetl znajdujące się w tabeli pracopraco dane osób, których płaca jest większa niż 1400 zł, pracujących na stanowiskach innych niż kie- rownik, dla których znany jest numer PESEL. Aby wykonać ćwiczenie, należy zastosować instrukcję: SELESEL*LFROMLpracownicyLWHERELplacaL L1400LANDLstanowiskoL kierownik LANDLpeselLISLNOELNULL; Efekt działania tego zapytania został zaprezentowany na rysunku 4.13. Rysunek 4.13. Wyświetlenie danych spełniających kilka warunków Instrukcja SELECT może być również uzupełniona o klauzulę DISTINCT, która gwarantuje niepowtarzalność wierszy wynikowych, innymi słowy, eliminuje duplikaty z wyników zapytania. Załóżmy, że chcemy się dowiedzieć, jakie różne nazwiska noszą osoby, których dane są za- pisane w tabeli pracownicy. Jeśli zastosujemy typową instrukcję: SELESELnazwiskoLFROMLpracownicyLORDERLBYLnazwisko; w wynikach znajdą się podwójne dane dla nazwisk Kowalski i Mali- nowski (rysunek 4.14). Nie o to nam jednak chodziło. Do uzyskania prawidłowych wyników niezbędne będzie więc użycie słowa DISTINCT. 7 2 SQL • Ćwiczenia praktyczne Rysunek 4.14. W wynikach zapytania pojawiły się duplikaty danych Ć W I C Z E N I E 4.16 Użycie klauzuli DISTINCT Napisz zapytanie, które pobierze z tabeli pracopraco listę nazwisk. W wynikach nie mogą się pojawić duplikaty danych. Wyeliminowanie duplikatów danych uzyskamy, umieszczając za sło- wem SELECT słowo DISTINCT. Instrukcja będzie więc miała postać: SELESELDISEINSELnazwiskoLFROMLpracownicyLORDERLBYLnazwisko; Wynik jej działania został zaprezentowany na rysunku 4.15. Rysunek 4.15. Podwójne dane zostały usunięte z wyników zapytania
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

SQL. Ćwiczenia praktyczne
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: