Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00223 007389 11068530 na godz. na dobę w sumie
SQL. Od podstaw - książka
SQL. Od podstaw - książka
Autor: , Liczba stron: 552
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-999-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> sql - programowanie
Porównaj ceny (książka, ebook, audiobook).

Dane i informacje to dziś najcenniejszy towar. Systemy zarządzania bazami danych to potężne narzędzia, pozwalające nie tylko na przechowywanie danych, ale także na ich przetwarzanie, modyfikowanie i wydobywanie w oparciu o przeróżne kryteria. Podstawą wszystkich operacji na danych zgromadzonych w bazach jest język SQL -- narzędzie służące do manipulowania zbiorami informacji. SQL, przyjęty i zatwierdzony przez międzynarodowe organizacje i komitety standaryzacyjne, jest wykorzystywany w niemal wszystkich systemach zarządzania bazami danych. Każdy z producentów dodaje do niego 'własne' elementy, ale rdzeń języka pozostaje taki sam niezależnie od platformy.

Książka 'SQL. Od podstaw' to podręcznik języka SQL i omówienie zagadnień związanych z projektowaniem baz danych przeznaczone dla osób wkraczających dopiero w świat baz danych. Przedstawia podstawowe wyrażenia języka SQL, służące do wprowadzania danych do bazy, wyciągania ich oraz manipulowania nimi. Czytając tą tę książkę, dowiesz się, czym są złączenia i podzapytania, postaci normalne baz danych oraz transakcje i perspektywy. Poznasz sposoby projektowania tabel, zabezpieczania zgromadzonych w nich informacji oraz metody podnoszenia wydajności i szybkości działania baz danych.

Dzięki tej książce poznasz wszystko -- znajdziesz omówienie tego, co może okazać się potrzebne podczas projektowania i korzystania z baz danych.

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. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl SQL. Od podstaw Autorzy: Paul Wilton, John Colby T³umaczenie: Miko³aj Szczepaniak ISBN: 83-7361-999-2 Tytu³ orygina³u: Beginning SQL Format: B5, stron: 473 Dane i informacje to dziœ najcenniejszy towar. Systemy zarz¹dzania bazami danych to potê¿ne narzêdzia, pozwalaj¹ce nie tylko na przechowywanie danych, ale tak¿e na ich przetwarzanie, modyfikowanie i wydobywanie w oparciu o przeró¿ne kryteria. Podstaw¹ wszystkich operacji na danych zgromadzonych w bazach jest jêzyk SQL — narzêdzie s³u¿¹ce do manipulowania zbiorami informacji. SQL, przyjêty i zatwierdzony przez miêdzynarodowe organizacje i komitety standaryzacyjne, jest wykorzystywany w niemal wszystkich systemach zarz¹dzania bazami danych. Ka¿dy z producentów dodaje do niego w³asne elementy, ale rdzeñ jêzyka pozostaje taki sam niezale¿nie od platformy. Ksi¹¿ka „SQL. Od podstaw” to podrêcznik jêzyka SQL i omówienie zagadnieñ zwi¹zanych z projektowaniem baz danych przeznaczone dla osób wkraczaj¹cych dopiero w œwiat baz danych. Przedstawia podstawowe wyra¿enia jêzyka SQL, s³u¿¹ce do wprowadzania danych do bazy, wyci¹gania ich oraz manipulowania nimi. Czytaj¹c t¹ tê ksi¹¿kê, dowiesz siê, czym s¹ z³¹czenia i podzapytania, postaci normalne baz danych oraz transakcje i perspektywy. Poznasz sposoby projektowania tabel, zabezpieczania zgromadzonych w nich informacji oraz metody podnoszenia wydajnoœci i szybkoœci dzia³ania baz danych. • Struktura relacyjnych baz danych • Wpisywanie danych do bazy • Wydobywanie i porz¹dkowanie danych • Normalizacja i postaci normalne • Projektowanie baz danych • Operacje matematyczne, grupuj¹ce i agreguj¹ce • Stosowanie z³¹czeñ i podzapytañ • Tworzenie i wykorzystywanie perspektyw • Mechanizmy transakcyjne • Podnoszenie wydajnoœci bazy danych i optymalizowanie zapytañ Dziêki tej ksi¹¿ce poznasz wszystko — znajdziesz omówienie tego, co mo¿e okazaæ siê potrzebne podczas projektowania i korzystania z baz danych. Spis treści O autorach ................................................................................................................................................ 13 Wprowadzenie ......................................................................................................................................... 15 Dla kogo jest ta książka? ............................................................................................. 16 O czym jest ta książka? ................................................................................................ 16 Jak zorganizowano tę książkę? ...................................................................................... 17 Czego będziesz potrzebował do pracy z tą książką? ........................................................ 18 Konwencje .................................................................................................................. 18 Kod źródłowy ............................................................................................................... 19 p2p.wrox.com .............................................................................................................. 19 Rozdział 1. Wprowadzenie do języka SQL ............................................................................................... 21 Krótka historia baz danych ............................................................................................ 21 Identyfikacja baz danych .......................................................................................... 22 W jakich okolicznościach należy korzystać z baz danych ........................................ 24 Stosowane w tej książce systemy zarządzania bazami danych ............................... 26 Strukturalny język zapytań (SQL) .................................................................................... 27 Wprowadzenie do zapytań języka SQL ....................................................................... 27 Zestawienie języka SQL z pozostałymi językami programowania .................................. 28 Standardy języka SQL .............................................................................................. 29 Tworzenie baz danych ................................................................................................... 30 Organizacja relacyjnych baz danych .......................................................................... 31 Składnia języka SQL .......................................................................................... 33 Tworzenie bazy danych ....................................................................................... 35 Typy danych ...................................................................................................... 36 Tworzenie, modyfikowanie i usuwanie tabel .................................................................... 44 Tworzenie tabeli ..................................................................................................... 44 Modyfikowanie istniejącej tabeli ............................................................................... 46 Usuwanie istniejącej tabeli ...................................................................................... 47 Dobry projekt bazy danych ............................................................................................ 47 Gromadzenie i analiza rzeczywistych potrzeb związanych z danymi .............................. 48 Logiczny podział danych .......................................................................................... 49 Dobór właściwych typów danych ............................................................................... 52 Stosowanie klucza głównego ................................................................................... 54 Tworzenie przykładowej bazy danych .............................................................................. 56 Podsumowanie ............................................................................................................ 61 Ćwiczenia .................................................................................................................... 62 Rozdział 2. Wpisywanie informacji ........................................................................................................63 Wstawianie nowych danych ........................................................................................... 63 Wstawianie danych do bazy danych przykładu użycia ....................................................... 67 Aktualizowanie danych ................................................................................................. 68 Klauzula WHERE ..................................................................................................... 70 6 SQL. Od podstaw Operatory logiczne AND i OR ............................................................................... 71 Usuwanie danych ......................................................................................................... 73 Podsumowanie ............................................................................................................ 74 Ćwiczenia .................................................................................................................... 75 Rozdział 3. Wydobywanie informacji .....................................................................................................77 Wyrażenie SELECT ....................................................................................................... 77 Zwracanie tylko różnych wierszy ............................................................................... 79 Stosowanie aliasów ................................................................................................ 80 Filtrowanie danych wynikowych za pomocą klauzuli WHERE ........................................ 81 Jak to działa? .................................................................................................... 85 Operatory logiczne i kolejność operatorów ...................................................................... 86 Wprowadzenie do kolejności operatorów ................................................................... 87 Jak to działa? .................................................................................................... 90 Stosowanie operatorów logicznych ........................................................................... 91 Operator NOT .................................................................................................... 91 Operator BETWEEN ............................................................................................ 92 Jak to działa? .................................................................................................... 93 Operator LIKE .................................................................................................... 95 Jak to działa? .................................................................................................... 98 Operator IN ....................................................................................................... 99 Jak to działa? .................................................................................................. 100 Porządkowanie danych wynikowych za pomocą klauzuli ORDER BY ................................. 101 Jak to działa? .................................................................................................. 106 Łączenie kolumn — konkatenacja .......................................................................... 108 Microsoft SQL Server i Microsoft Access ........................................................... 109 Oracle i IBM DB2 ............................................................................................. 111 MySQL ............................................................................................................ 114 Wydobywanie danych z wielu tabel ............................................................................... 117 Stosowanie nawiasów wokół złączeń wewnętrznych w systemie Microsoft Access ...... 128 Język SQL i zbiory ................................................................................................. 130 Jak to działa? .................................................................................................. 137 Wprowadzenie do danych NULL ................................................................................... 141 Podsumowanie .......................................................................................................... 144 Ćwiczenia .................................................................................................................. 145 Rozdział 4. Zaawansowane projektowanie baz danych ...................................................................... 147 Normalizacja .............................................................................................................. 147 Pierwsza postać normalna ..................................................................................... 148 Druga postać normalna ......................................................................................... 150 Trzecia postać normalna ....................................................................................... 151 Zapewnianie poprawności danych za pomocą ograniczeń .............................................. 154 Ograniczenie NOT NULL ......................................................................................... 155 Ograniczenie UNIQUE ............................................................................................ 157 Ograniczenie CHECK ............................................................................................. 161 Jak to działa? .................................................................................................. 162 Klucz główny i ograniczenie PRIMARY KEY .............................................................. 164 Jak to działa? .................................................................................................. 166 Klucz obcy ............................................................................................................ 168 Jak to działa? .................................................................................................. 172 Przyspieszanie procesu generowania zbiorów wynikowych za pomocą indeksów .............. 173 Udoskonalanie projektu bazy danych Klub Filmowy .................................................. 177 Ponowna analiza struktury bazy danych Klub Filmowy ......................................... 177 Spis treści 7 Udoskonalanie mechanizmów weryfikowania poprawności danych i poprawa efektywności ...................................................................................... 180 Wskazówki dotyczące projektowania lepszych baz danych ........................................ 188 Podsumowanie .......................................................................................................... 190 Ćwiczenia .................................................................................................................. 190 Rozdział 5. Przetwarzanie danych ....................................................................................................... 193 Arytmetyka języka SQL ............................................................................................... 193 Podstawowe operacje matematyczne ..................................................................... 194 Najczęściej stosowane funkcje matematyczne ......................................................... 195 Funkcja ABS() .................................................................................................. 196 Funkcja POWER() ............................................................................................. 197 Funkcja SQRT() ................................................................................................ 198 Funkcja RAND() ............................................................................................... 199 Zaokrąglanie liczb ................................................................................................. 200 Funkcja CEILING() ............................................................................................ 201 Funkcja FLOOR() .............................................................................................. 202 Funkcja ROUND() ............................................................................................. 203 Wprowadzenie do funkcji przetwarzających łańcuchy ..................................................... 205 Funkcja SUBSTRING() ............................................................................................ 206 Funkcje konwertujące wielkość znaków ................................................................... 208 Funkcja REVERSE() ............................................................................................... 209 Funkcja TRIM() ...................................................................................................... 209 Funkcja LENGTH() ................................................................................................. 210 Funkcje SOUNDEX() i DIFFERENCE() ....................................................................... 213 Funkcje przetwarzające daty .................................................................................. 216 Konwertowanie różnych typów danych .......................................................................... 217 Ponowna analiza wartości NULL .................................................................................. 219 Wartości NULL w wyrażeniach matematycznych ....................................................... 219 Wartości NULL w operacjach na łańcuchach ............................................................ 220 Funkcja COALESCE() ............................................................................................. 222 Stosowanie poleceń INSERT INTO w wyrażeniach SELECT ............................................. 224 Podsumowanie .......................................................................................................... 226 Ćwiczenia .................................................................................................................. 227 Rozdział 6. Grupowanie i agregowanie danych .................................................................................. 229 Wyniki grupowania ..................................................................................................... 229 Podsumowywanie i agregowanie danych ...................................................................... 232 Zliczanie wierszy wynikowych ................................................................................. 232 Jak to działa? .................................................................................................. 236 Sumowanie wyników ............................................................................................. 237 Jak to działa? .................................................................................................. 238 Uśrednianie wyników ............................................................................................. 239 Jak to działa? .................................................................................................. 240 Szukanie wartości maksymalnych i minimalnych w danych wynikowych ..................... 241 Jak to działa? .................................................................................................. 243 Stosowanie wyrażeń GROUP BY łącznie z klauzulą HAVING ............................................ 244 Jak to działa? .................................................................................................. 245 Podsumowanie .......................................................................................................... 247 Ćwiczenia .................................................................................................................. 247 Rozdział 7. Wydobywanie danych z różnych tabel ............................................................................. 249 Jeszcze raz o złączeniach ........................................................................................... 249 8 SQL. Od podstaw Złączenia wewnętrzne — analiza szczegółowa ......................................................... 250 Równozłączenia i nierównozłączenia .................................................................. 251 Złączenia wielokrotne i warunki wielokrotne ....................................................... 253 Złączenia krzyżowe .......................................................................................... 256 Samozłączenia ................................................................................................ 257 Złączenia zewnętrzne ............................................................................................ 262 Lewe złączenie zewnętrzne ............................................................................... 262 Prawe złączenia zewnętrzne .............................................................................. 265 Pełne złączenie zewnętrzne .............................................................................. 269 Łączenie zbiorów wynikowych za pomocą operatora UNION ............................................ 270 Podsumowanie .......................................................................................................... 276 Ćwiczenia .................................................................................................................. 277 Rozdział 8. Zapytania w zapytaniach ................................................................................................... 279 Terminologia związana z podzapytaniami ...................................................................... 279 Podzapytania na liście kolumn wyrażenia SELECT ......................................................... 280 Podzapytanie w klauzuli WHERE .................................................................................. 285 Operatory w podzapytaniach ....................................................................................... 287 Przypomnienie operatora IN ................................................................................... 288 Stosowanie operatorów ANY, SOME i ALL ............................................................... 291 Operatory ANY i SOME ..................................................................................... 291 Operator ALL ................................................................................................... 293 Stosowanie operatora EXISTS ................................................................................ 295 Jak to działa? .................................................................................................. 298 Stosowanie klauzuli HAVING z podzapytaniami ........................................................ 299 Podzapytania skorelowane .......................................................................................... 300 Podzapytania stosowane w innych wyrażeniach ............................................................ 302 Stosowanie podzapytań w wyrażeniach INSERT ....................................................... 302 Jak to działa? .................................................................................................. 305 Stosowanie podzapytań w wyrażeniach UPDATE ...................................................... 305 Stosowanie podzapytań w wyrażeniach DELETE FROM ............................................. 307 Podsumowanie .......................................................................................................... 309 Ćwiczenia .................................................................................................................. 310 Rozdział 9. Zapytania zaawansowane ...................................................................................................311 Aktualizowanie bazy danych ........................................................................................ 311 Procedura postępowania z trudnymi zapytaniami .......................................................... 318 Rób co chcesz, rób co Ci się żywnie podoba ........................................................... 319 Wybór listy kolumn wyrażenia SELECT ............................................................... 320 Tworzenie klauzuli FROM .................................................................................. 320 Jak to działa? .................................................................................................. 327 Najważniejsze wskazówki w zakresie tworzenia efektywnych zapytań .............................. 334 Podsumowanie .......................................................................................................... 336 Ćwiczenia .................................................................................................................. 337 Rozdział 10. Perspektywy .................................................................................................................... 339 Wprowadzenie do perspektyw ..................................................................................... 339 Tworzenie perspektyw ........................................................................................... 341 Jak to działa? .................................................................................................. 342 Typy perspektyw ................................................................................................... 342 Perspektywy tabel złączonych ........................................................................... 343 Perspektywa bazowa ........................................................................................ 343 Perspektywy wierszowe .................................................................................... 345 Spis treści 9 Perspektywy kolumnowe .................................................................................. 346 Filtrowane perspektywy okien ........................................................................... 346 Perspektywy podsumowań ................................................................................ 347 Aktualizowanie perspektyw .................................................................................... 348 Ograniczenia dotyczące aktualizowania perspektyw ............................................ 349 Słowo kluczowe CHECK OPTION ........................................................................ 349 Usuwanie perspektyw ........................................................................................... 352 Podsumowanie .......................................................................................................... 353 Ćwiczenia .................................................................................................................. 354 Rozdział 11. Transakcje ........................................................................................................................ 355 Wprowadzenie do transakcji ........................................................................................ 356 Przykładowe dane ................................................................................................. 357 Jak to działa? .................................................................................................. 360 Model ANSI .......................................................................................................... 361 COMMIT ......................................................................................................... 361 ROLLBACK ...................................................................................................... 362 Transact-SQL ........................................................................................................ 364 BEGIN TRANSACTION ....................................................................................... 364 COMMIT TRANSACTION .................................................................................... 364 SAVE TRANSACTION ........................................................................................ 365 ROLLBACK TRANSACTION ................................................................................ 365 Dzienniki transakcji .................................................................................................... 367 Blokady ..................................................................................................................... 369 Ziarnistość blokowania .......................................................................................... 370 Baza danych ................................................................................................... 370 Tabela ............................................................................................................ 370 Strona ............................................................................................................ 370 Wiersz ............................................................................................................ 371 Kolumna ......................................................................................................... 371 Poziomy blokad .................................................................................................... 371 Blokada dzielona ............................................................................................. 371 Blokada wyłączna ............................................................................................ 372 Blokada wzajemna (zakleszczenie) .................................................................... 372 Ustawianie parametrów blokad .............................................................................. 373 Rozmiar blokady .............................................................................................. 374 Liczba blokad .................................................................................................. 374 Rozszerzanie blokad ........................................................................................ 374 Limit czasu ..................................................................................................... 374 Poziomy izolacji .......................................................................................................... 375 SET TRANSACTION ................................................................................................ 376 SERIALIZABLE ...................................................................................................... 376 REPEATABLE READ ............................................................................................... 377 READ COMMITTED ................................................................................................ 377 READ UNCOMMITTED ............................................................................................ 378 Zarządzanie wersjami ............................................................................................ 378 Przykładowe problemy ................................................................................................ 379 Utracona aktualizacja ............................................................................................ 379 Niezatwierdzone dane ........................................................................................... 380 Niespójne dane .................................................................................................... 380 Wstawianie widm .................................................................................................. 381 Ponowna analiza przykładowego kodu .......................................................................... 382 Jak to działa? .................................................................................................. 384 Podsumowanie .......................................................................................................... 385 10 SQL. Od podstaw Ćwiczenia .................................................................................................................. 386 Rozdział 12. Bezpieczeństwo w języku SQL ......................................................................................... 387 Zagadnienia związane z bezpieczeństwem .................................................................... 388 Identyfikatory użytkowników ................................................................................... 389 Tworzenie identyfikatorów użytkowników ............................................................ 391 Modyfikowanie danych użytkownika ................................................................... 391 Usuwanie kont użytkowników ............................................................................ 392 Jak to działa? .................................................................................................. 394 Identyfikatory grup (role) ........................................................................................ 394 Jak to działa? .................................................................................................. 396 Obiekty ................................................................................................................ 397 Uprawnienia ......................................................................................................... 398 Rozszerzone uprawnienia ................................................................................. 398 Uprawnienie USAGE ......................................................................................... 399 Własność ........................................................................................................ 400 Perspektywy i bezpieczeństwo ............................................................................... 400 Perspektywy pionowe i poziome ........................................................................ 400 Perspektywy grupowane ................................................................................... 403 Ograniczenia związane z perspektywami ............................................................ 404 Przyznawanie uprawnień ........................................................................................ 404 Tabele i perspektywy ....................................................................................... 404 Jak to działa? .................................................................................................. 405 Kolumny ......................................................................................................... 406 Klauzula GRANT OPTION .................................................................................. 406 Wycofywanie uprawnień ......................................................................................... 408 Wyrażenie REVOKE .......................................................................................... 408 Wycofywanie uprawnień przekazywanych dalej przez samych uprawnionych .......... 409 Opcje CASCADE i RESTRICT ............................................................................. 411 Podsumowanie .......................................................................................................... 412 Ćwiczenia .................................................................................................................. 413 Rozdział 13. Dostrajanie bazy danych .................................................................................................. 415 Dostrajanie sprzętu .................................................................................................... 416 Stacje robocze ...................................................................................................... 417 Pliki baz danych .................................................................................................... 417 Procesory ............................................................................................................. 418 Sieci gigahercowe oraz sieci podzielone na segmenty .............................................. 419 Pamięć podręczna ................................................................................................ 419 Pamięć podręczna procesora ............................................................................ 420 Pamięć podręczna dysku twardego .................................................................... 420 Pamięć podręczna bazy danych ......................................................................... 421 Dostrajanie wyrażeń języka SQL .................................................................................. 423 Na czym właściwie polega dostrajanie wyrażeń języka SQL? ..................................... 424 Po co w ogóle to robić? ......................................................................................... 424 Jak to robić? ........................................................................................................ 425 Czym są indeksy? ............................................................................................ 425 Jak to działa? .................................................................................................. 429 Indeksy — kiedy pomagają, kiedy szkodzą, a kiedy nie mają żadnego znaczenia? .... 429 Skanowanie tabel — co to takiego? .................................................................. 431 Kiedy skanowanie tabel pomaga, kiedy szkodzi, a kiedy nie ma żadnego znaczenia? ................................................................ 432 Wskazówki dotyczące dostrajania baz danych ............................................................... 432 Podsumowanie .......................................................................................................... 434 Spis treści 11 Ćwiczenia .................................................................................................................. 435 Dodatek A Rozwiązania ćwiczeń .......................................................................................................... 437 Dodatek B Konfigurowanie i stosowanie pięciu systemów baz danych ............................................ 463 Dodatek C Dane początkowe ................................................................................................................. 519 Skorowidz .............................................................................................................................................. 541 1 Wprowadzenie do języka SQL Na dobry początek zastanowimy się, czym w ogóle są bazy danych oraz kiedy i dlaczego należy z nich korzystać. W dalszej części rozdziału przejdziemy do omawiania strukturalnego języka zapytań (SQL) i przyjrzymy się jego związkom z bazami danych oraz technikom wy- korzystywania w praktycznych zastosowaniach. Po poznaniu podstaw i teoretycznych moż- liwości języka SQL dowiesz się, jak można za jego pomocą stworzyć bazę danych. Niniejszy rozdział przeprowadzi Cię też przez proces budowania struktury przykładowej bazy danych, która będzie wykorzystywana w kolejnych rozdziałach tej książki. Po przeczytaniu tego rozdziału powinieneś nie tylko rozumieć, jak to się dzieje, że bazy danych umożliwiają efektywne organizowanie i wyszukiwanie potrzebnych informacji, ale też wiedzieć, jak tworzyć w pełni funkcjonalne bazy danych (gotowe do przyjmowania i składo- wania nowych danych). Zanim jednak zagłębisz się w pisanie kolejnych wierszy kodu języka SQL, powinieneś uzyskać niezbędne podstawy teoretyczne. Krótka historia baz danych Bazy danych we współczesnej formie istnieją od lat sześćdziesiątych — są efektem badań między innymi firmy IBM. Wysiłki laboratoriów badawczych koncentrowały się wokół automatyzacji typowych zadań biurowych, w szczególności zadań składowania i indeksowa- nia danych, które wcześniej wymagały pracy ludzkich rąk i jako takie były bardzo czaso- chłonne. Z czasem koszt mocy obliczeniowej i pamięci znacznie się obniżył, co pozwoliło na dużą popularyzację komputerów w obszarze składowania i indeksowania danych. Prekur- sorem zastosowań baz danych był Charles W. Bachman, który w roku 1973 otrzymał Nagrodę Turinga za swoje pionierskie dokonania w dziedzinie technologii baz danych. W roku 1970 Ted Codd, naukowiec zatrudniony w laboratoriach firmy IBM, opublikował pierwszy arty- kuł poświęcony relacyjnym bazom danych. 22 SQL. Od podstaw Mimo że IBM był absolutnym liderem badań nad bazami danych, to firma Honeywell Infor- mation Systems, Inc. w roku 1976 wprowadziła na rynek swój produkt komercyjny, który bazował co prawda na tych samych regułach co system informacyjny firmy IBM, ale został zaprojektowany i zaimplementowany zupełnie niezależnie od prac tej firmy. We wczesnych latach osiemdziesiątych ubiegłego stulecia zbudowano pierwsze systemy baz danych oparte na standardzie SQL — w tamtym okresie ukazała się druga wersja systemu Oracle firmy Oracle, system SQL/DS firmy IBM oraz bardzo wiele innych systemów opra- cowanych przez inne firmy. Teraz, skoro wiesz co nieco na temat źródeł pochodzenia baz danych, możesz przystąpić do lektury materiału poświęconego bardziej praktycznym zagadnieniom — temu, czym są bazy danych oraz kiedy należy z nich korzystać. Identyfikacja baz danych Zastanawiasz się pewnie, czym tak naprawdę jest baza danych. Darmowy internetowy słownik techniki komputerowej (Free On-Line Dictionary of Com- puting — patrz strona internetowa http://foldoc.doc.ic.ac.uk) definiuje bazę danych jako „je- den lub wiele strukturalnych zbiorów trwałych danych, zwykle związanych z oprogramowa- niem umożliwiającym aktualizowanie i wykonywanie zapytań na tych danych. Prosta baza danych może mieć postać pojedynczego pliku obejmującego wiele rekordów, z których każdy zawiera ten sam zbiór pól (gdzie każde pole ma ustaloną z góry, stałą szerokość).”. Spróbujmy rozbić tę definicję na mniejsze, bardziej zrozumiałe składniki; po pierwsze, zgod- nie z zacytowanym opisem, baza danych składa się ze strukturalnych zbiorów danych, co oznacza, że zawiera kolekcje danych. Przykładowo, baza danych może zawierać szczegółowe informacje na temat osiągnięć wuja Bronka na polu golfowym lub dane na temat wszystkich książek w jakiejś bibliotece. Najprawdopodobniej mieszanie tych danych ze sobą nie byłoby dla Ciebie korzystne; innymi słowy, zapewne nie chciałbyś szukać informacji o interesującej Cię książce wśród niezwiązanych z nimi danych o wynikach pojedynków golfowych. Krótko mówiąc, bazy danych ułatwiają organizowanie danych. Bazy danych przechowują swoje ko- lekcje danych w tabelach (pojęcie tabeli wyjaśnię bardziej szczegółowo w rozdziale 2.). Przytoczona definicja mówi też, że bazy danych są zwykle związane z oprogramowaniem umożliwiającym aktualizowanie i wykonywanie zapytań na danych. Do przykładów opro- gramowania baz danych, które znajdują zastosowanie w świecie rzeczywistym, należy Access firmy Microsoft, system 10g firmy Oracle, DB2 firmy IBM, MySQL firmy MySQL AB oraz SQL Server 2000 firmy Microsoft. Wymienione programy często są nazywane bazami danych, choć tak naprawdę są systemami zarządzania bazami danych (ang. Database Management System — DBMS). Baza danych to zbiory (kolekcje) wzajemnie powiązanych danych zgru- powane w jednym bycie. Przykładowo, mógłbyś stworzyć bazę danych w programie Access, nazwać ją MojaBazaDanych, dołączyć do nowej bazy rozmaite kolekcje danych i zarządzać całością za pomocą oprogramowania Microsoft Access. I wreszcie przedstawiona definicja stwierdza, że (tak jak we wspomnianym przykładzie bazy danych Access) prosta baza danych może mieć postać jednego pliku z wieloma rekordami, Rozdział 1. (cid:81) Wprowadzenie do języka SQL 23 z których każdy dzieli się na pola. Czym jednak są rekordy i pola? Pole jest pojedynczym elementem danych opisującym określony przedmiot. Takim „przedmiotem” może być np. osoba — wówczas pojedynczym elementem danych o osobie może być data urodzenia. Jeśli reprezentowanym „przedmiotem” będzie adres domu, elementem danych może być składnik tego adresu, np. ulica. W przypadku książki konkretnym fragmentem danych składowanym w pojedynczym polu może być rok wydania, inne pole może zawierać tytuł, jeszcze inne może reprezentować nazwisko autora. Przykładowo, rekord reprezentujący tę książkę w polu Rok wydania powinien zawierać wartość 2005, w polu Tytuł wartość Beginning SQL, a w polu Autor wartości Paul Wilton i John Colby. Wszystkie te pola odnoszą się do określonego przedmiotu: książki zatytułowanej Beginning SQL. Pola te razem tworzą strukturę nazywaną rekordem. Każda książka ma swój własny rekord, a wszystkie te rekordy są przechowywa- ne w bazie danych w ramach szerszej struktury nazywanej tabelą. Pojedyncza baza danych może zawierać jedną lub wiele tabel. Jeśli masz trudności w opanowaniu informacji przedsta- wionych do tej pory, nie przejmuj się — pojęcia pól i rekordów będą się pojawiały w dal- szej części tego rozdziału jeszcze wielokrotnie. Mam nadzieję, że rozumiesz już koncepcję bazy danych, której celem jest ułatwienie proce- sów składowania, organizowania i wydobywania (przeszukiwania) danych. Ostatnim poję- ciem wymagającym wyjaśnienia jeszcze w tym punkcie jest termin relacyjna baza danych, który dotyczy bazy danych zawierającej zorganizowane i wzajemnie połączone informacje (występujące w odpowiednich relacjach). Wszystkie rekordy takiej bazy danych są zorga- nizowane w ramach tabel. Powiązane dane, np. szczegóły dotyczące sprzedawców, są gru- powane w jednej tabeli. Szczegóły na temat sprzedawanych przez nich samochodów mogą być składowane w innej tabeli określającej relacje pomiędzy reprezentowanymi samochodami a sprzedawcami, którzy je sprzedali — przykładowo, sprzedawca X mógł sprzedać samochód Y w dniu Z. Na rysunku 1.1 przedstawiono jedną z tabel przykładowej bazy danych. Na pierw- szy rzut oka przedstawiona struktura może Ci przypominać arkusz kalkulacyjny, którego wiersze reprezentują Twoje rekordy, natomiast kolumny zawierają pola dla tych rekordów. Podczas lektury rozdziału 3. odkryjesz, że tabele należy traktować raczej jak zbiory danych. Rysunek 1.1. Większość współczesnych systemów zarządzania bazami danych jest relacyjna — mówi się nawet o relacyjnych systemach zarządzania bazami danych (ang. Relational Data- base Management System — RDBMS). Tego typu systemy wyróżniają się łatwością i efektywnością składowania danych i generowania żądanych wyników. Umożliwiają generowanie odpowiedzi na rozmaite zapytania, włącznie z zapytaniami, których obsługa nigdy nie była brana pod uwagę przez programistę bazy danych. 24 SQL. Od podstaw W jakich okolicznościach należy korzystać z baz danych Skoro istnieje mnóstwo alternatywnych sposobów przechowywania danych, po co w ogóle robić sobie kłopot i tworzyć bazę danych? Jakie są zalety takiego rozwiązania? Podstawową zaletą baz danych jest szybkie i efektywne wydobywanie (wyszukiwanie) danych. Baza danych ułatwia też logiczne organizowanie danych. Systemy zarządzania bazami danych z reguły są przystosowane do błyskawicznego wyszukiwania potrzebnych danych w sposób odpowiadający Twoim oczekiwaniom. Wydobywanie danych z bazy danych jest nazywane wykonywaniem zapytań. Często będziesz też miał do czynienia z pojęciem zapytanie języka SQL (lup po prostu zapytanie SQL), które w największym uproszczeniu oznacza dowolny kod języka SQL mający na celu wydobywanie informacji zapisanych w bazie danych. Proble- matyka zapytań zostanie omówiona bardziej szczegółowo w dalszej części tego rozdziału. Relacyjne bazy danych mają jeszcze jedną istotną zaletę — umożliwiają definiowanie relacji łączących poszczególne dane (jak choćby w przypadku wspominanej bazy danych o sprzedaży samochodów). Jeśli przechowujesz szczegółowe dane o sprzedaży i informacje o sprzedawcach w tak powiązanych bazach danych, znalezienie odpowiedzi na pytanie „Ile samochodów sprzedał X w styczniu?” staje się bardzo proste. Gdybyś jednak upchnął wszystkie te informacje w jednym wielkim pliku tekstowym, znalezienie odpowiedzi na to pytanie (wykonanie ta- kiego zapytania) byłoby niezwykle trudne i czasochłonne. Bazy danych umożliwiają też definiowanie reguł zapewniających zachowanie spójności da- nych po ich dodawaniu, aktualizowaniu i usuwaniu. Wyobraź sobie raz jeszcze salon samo- chodowy z dwoma sprzedawcami o identycznym imieniu i nazwisku (np. Jan Nowak). Można tak zaprojektować bazę danych, aby każdy sprzedawca miał przypisany unikalny identyfi- kator (w ten sposób unikniemy sytuacji, w której obaj Janowie będą myleni); w przeciw- nym przypadku jednoznaczne określenie, kto sprzedał poszczególne samochody, byłoby po prostu niemożliwe. Pozostałe systemy składowania danych, w tym pliki tekstowe i arkusze kalkulacyjne, nie udostępniają tego typu mechanizmów i zwykle dopuszczają do wprowadza- nia do swoich struktur nawet najbardziej dziwacznych danych. W dalszych rozdziałach zostaną przedstawione techniki definiowania także innych reguł ograniczających ryzyko naruszenia spój- ności danych. Przykładowo, w bazie danych możesz stworzyć regułę, zgodnie z którą numer PESEL pracownika będzie musiał spełniać warunek unikalności, lub jeśli zostanie sprzedany jakiś samochód i odpowiednia tabela będzie wskazywała, że sprzedaży dokonał pracownik z identyfikatorem 123, możesz wprowadzić mechanizm sprawdzający, czy w jednej z tabel bazy danych znajdują się wszystkie wymagane informacje na temat tego pracownika. Właściwie zaprojektowana i skonfigurowana baza danych minimalizuje nadmiarowość danych. Wróćmy raz jeszcze do przykładu salonu samochodowego — wszystkie szczegółowe infor- macje na temat sprzedawcy mogą być składowane w jednym miejscu bazy danych, a do jego identyfikacji można używać unikalnego identyfikatora. Kiedy wprowadzisz inne dane zwią- zane z konkretnym sprzedawcą (np. o sprzedanych przez niego samochodach), będziesz mógł wykorzystać ten unikalny identyfikator do przeszukiwania tych danych. Taki unikalny identyfikator często ma postać liczby, której przechowywanie wymaga znacznie mniej prze- strzeni niż odpowiednie imię i nazwisko. Baza danych przechowuje surowe (nieprzetworzone) dane — same fakty przy braku „inteli- gentnych” mechanizmów. Baza danych o sprzedanych samochodach może zawierać markę, Rozdział 1. (cid:81) Wprowadzenie do języka SQL 25 model i cenę poszczególnych pojazdów, ale raczej nie będzie zawierała liczby samochodów sprzedanych w poszczególnych miesiącach, ponieważ można tę liczbę wyznaczyć na pod- stawie już przechowywanych informacji (wspomnianych surowych danych). Inaczej jest w przypadku arkuszy kalkulacyjnych, które mogą zawierać przetworzone dane, np. wartości średnie lub wyniki analiz statystycznych. Rola bazy danych sprowadza się do przechowywania informacji, a za ich przetwarzanie odpowiada zwykle program frontonu lub odpowiedni interfejs użytkownika. Przykładami programów frontonów są strony interne- towe wyświetlające informacje wydobyte z bazy danych oraz programy powiązane z danymi bazy danych i umożliwiające użytkownikowi ich przeglądanie. Baza danych umożliwia też udostępnianie i współdzielenie informacji. Te same dane mogą być współużytkowane przez wielu użytkowników pracujących na jednym komputerze lub przez wielu użytkowników pracujących na wielu komputerach połączonych za pośrednic- twem sieci z internetem. Jeśli dealer samochodowy ma swoje oddziały w Poznaniu, Gliwicach i Warszawie, może skonfigurować pojedynczy komputer z bazą danych, która za pośred- nictwem sieci będzie udostępniana pracownikom wszystkich oddziałów. Takie rozwiązanie jest nie tylko możliwe, ale też bezpieczne, ponieważ bazy danych mają precyzyjnie definio- wane struktury i dodatkowo wymuszają przestrzeganie reguł chroniących zawierane dane. Co więcej, bazy danych umożliwiają dostęp do zawieranych informacji więcej niż jednemu użytkownikowi jednocześnie — ewentualne zmiany wprowadzane w tym trybie są obsłu- giwane przez system zarządzania bazą danych. Wyobraź sobie chaos, jaki miałby miejsce, gdyby zamiast systemu bazy danych użyto Excela i gdyby arkusz kalkulacyjny był modyfi- kowany przez dwóch sprzedawców jednocześnie. Naturalnie konieczne byłoby rejestrowa- nie zmian wprowadzanych przez obu użytkowników, jednak w praktyce utrwalane byłoby tylko działania użytkownika, który zapisał arkusz jako ostatni (wszelkie wcześniejsze zmiany drugiego użytkownika byłyby nadpisywane). Bazy danych ułatwiają też współdzielenie informacji pomiędzy różnymi systemami (zamiast wykorzystania i konwertowania formatów właściwych dla poszczególnych rozwiązań, np. konkretnego programu, konkretnego producenta czy określonego systemu operacyjnego). Przy- kładowo, arkusz kalkulacyjny Excela można łatwo odczytać na komputerze klasy PC z sys- temem operacyjnym Windows i zainstalowanym pakietem Microsoft Office, ale już w sys- temie UNIX, Macintosh czy Linux podobna operacja stwarza poważne problemy, ponieważ komputery kontrolowane przez te systemy obsługują dane w inny sposób. Nawet na kom- puterze z systemem Windows niezbędna jest instalacja pakietu Microsoft Office. Zupełnie inaczej jest w przypadku baz danych, które można zainstalować wraz z systemami zarządza- nia bazami danych na jednym komputerze i w prosty sposób udostępniać pozostałym użyt- kownikom sieci lokalnej lub internetu. Rozwiązania alternatywne względem baz danych, a więc pliki tekstowe i arkusze kalkula- cyjne, mają jedną wielką zaletę (która w jakimś sensie jest ich słabością) — elastyczność. W plikach tekstowych tak naprawdę nie obowiązują żadne reguły — możesz w dowolnym momencie wstawiać dowolne dane tekstowe. To samo dotyczy (choć w nieco innym wymiarze) arkuszy kalkulacyjnych. Możesz co prawda żądać od użytkowników wpisywania danych w ramach predefiniowanej struktury, ale w praktyce nie masz możliwości wymuszania prze- strzegania swoich zaleceń. Zastosowanie bazy danych pozwala ograniczyć dostęp użytkow- ników do samych danych przy jednoczesnym zakazie modyfikowania gotowej struktury. 26 SQL. Od podstaw Kolejną istotną zaletą baz danych jest bezpieczeństwo. Większość systemów zarządzania bazami danych umożliwia tworzenie „użytkowników” celem definiowania rozmaitych po- ziomów zabezpieczeń. Zanim ktoś uzyska dostęp do bazy danych, musi się zalogować jako konkretny użytkownik. Każdy użytkownik ma przypisane pewne prawa i ograniczenia. Osoba odpowiedzialna za administrację ma nieograniczone możliwości w zakresie edycji danych, zmiany struktury, dodawania i usuwania użytkowników itd. Pozostali użytkownicy mogą tylko przeglądać dane bez możliwości ich modyfikowania (często można nawet ograniczyć zakres udostępnianych danych). Wiele systemów zarządzania bazami danych zapewnia na tyle szczegółowe poziomy zabezpieczeń, że administrator może bardzo precyzyjnie określać uprawnienia poszczególnych użytkowników. Odpowiednie mechanizmy nie ograniczają się do strategii „wszystko albo nic”, która umożliwiałaby albo przyznawanie pełnych uprawnień, albo całkowicie zakazywała dostępu. Bazy danych są stosowane niemal wszędzie. Przetwarzanie danych było jednym z podstawo- wych powodów stworzenia pierwszych komputerów i do teraz stanowi ich główne zasto- sowanie. Niemal każdy człowiek i każda firma w pewnym punkcie swojej działalności ko- rzystają z bazy danych. Tego typu rozwiązania są powszechnie stosowane w komputerach osobistych do składowania lokalnie wykorzystywanych danych oraz w firmowych sieciach komputerowych, gdzie bazy danych umożliwiają współdzielenie informacji — przykłado- wo, większość sklepów internetowych używa baz danych. Kiedy odwiedzasz duże sklepy internetowe, w większości przypadków wyświetlane informacje na temat oferowanych pro- duktów pochodzą z bazy danych. Zamiast tworzyć każdą stronę ręcznie, właściciele dużych sklepów używają szablonów dla sprzedawanych książek czy płyt CD, a do wydobywania z bazy danych szczegółowych informacji na temat poszczególnych towarów służą odpowied- nie wyrażenia języka zapytań SQL. Wyobraź sobie, ile czasu potrzebowałby sklep interne- towy Amazon do przygotowania każdej ze swoich stron ręcznie! Bazy danych doskonale zdają egzamin wszędzie tam, gdzie niezbędne jest przeszukiwanie, sortowanie i regularne aktualizowanie ogromnych ilości danych. Podczas lektury kilku kolej- nych rozdziałów przekonasz się, że bazy danych w połączeniu z językiem zapytań SQL umoż- liwiają uzyskiwanie potrzebnych odpowiedzi we wskazanym porządku. Stosowane w tej książce systemy zarządzania bazami danych Bazy danych doskonale nadają się do przechowywania informacji, systemy zarządzania baza- mi danych zapewniają mechanizmy przeszukiwania tych informacji, a dołączane oprogramo- wanie zwykle umożliwia też przeglądanie danych. Jednak jak można korzystać z tak repre- zentowanych danych poza oprogramowaniem systemu zarządzania bazą danych? System operacyjny, niezależnie od tego, czy jest to Windows, UNIX, Linux czy Macintosh, oferuje rozmaite sposoby zaglądania do systemu zarządzania bazą danych i wydobywania zapisanych tam informacji. Jeśli jednak chcesz udostępniać te dane użytkownikom zewnętrznym, musisz umieścić odpowiedni kod w autonomicznej aplikacji (uruchamianej na komputerze tego użyt- kownika) lub skonstruować odpowiednią stronę internetową (otwieraną w oknie przeglądarki internetowej użytkownika). Nie jesteś ograniczony do żadnego konkretnego języka progra- mowania (tak naprawdę jedynym wymaganiem jest możliwość łączenia wyrażeń wybranego języka z oprogramowaniem systemu zarządzania bazą danych). Rozdział 1. (cid:81) Wprowadzenie do języka SQL 27 Możesz oczywiście kupić dowolną liczbę dostępnych na rynku i bardzo zróżnicowanych sys- temów zarządzania bazami danych, jednak celem tej książki jest prezentacja języka SQL, który nie tylko jest standardem (więcej informacji na temat standardów znajdziesz w na- stępnym podrozdziale), ale także jest obsługiwany przez zdecydowaną większość współ- czesnych systemów zarządzania bazami danych. Istnieją jednak sytuacje, w których stan- dardowe rozwiązania nie umożliwiają realizacji wszystkich oczekiwanych zadań. Istnieją też rozwiązania, które różni producenci systemów zarządzania bazami danych zaimplementowali w odmienny, niespójny sposób. Niniejsza książka szczegółowo opisuje rozwiązania zastoso- wane w systemach Microsoft Access, Microsoft SQL Server, IBM DB2, MySQL oraz Oracle 10. Strukturalny język zapytań (SQL) Pierwszym pytaniem, na jakie należy odpowiedzieć, brzmi: „Czym właściwie jest język SQL i jak można z niego korzystać podczas pracy z bazą danych?”. SQL pełni trzy główne funkcje: (cid:81) tworzenia bazy danych i definiowania jej struktury, (cid:81) wykonywania na bazie danych zapytań w celu uzyskania danych niezbędnych do wygenerowania odpowiedzi, (cid:81) kontrolowania bezpieczeństwa bazy danych. Proces definiowania struktury bazy danych obejmuje takie działania jak tworzenie nowych tabel i pól bazy danych, budowa reguł dla danych itp. Odpowiednie wyrażenia należą do pod- języka SQL nazywanego językiem kontroli danych (ang. Data Control Language — DCL). Język DCL opisano w dalszej części tego rozdziału, natomiast problematyka wykonywania zapytań na bazie danych zostanie omówiona w następnym punkcie. I wreszcie język DCL umożliwia zarządzanie zabezpieczeniami bazy danych. Ogólnie, za zapewnienie bezpieczeństwa baz danych odpowiadają ich administratorzy. Przygotowywanie wyrażeń języka SQL za każdym razem, gdy konieczna jest zmiana struktury lub reguł bezpieczeństwa bazy danych, na pierwszy rzut oka robi wrażenie rozwiązania dość pracochłonnego — i rzeczywiście tak jest! Większość współczesnych systemów baz danych oferuje możliwość wprowadzania zmian za pomocą przyjaznego interfejsu użytkownika (bez konieczności wpisania choćby jednego wiersza w języku SQL). Wprowadzenie do zapytań języka SQL Zapytania SQL są najbardziej popularnym zastosowaniem tego języka. Za obsługę zapytań i manipulowanie danymi odpowiada specjalny podjęzyk języka SQL nazywany językiem ma- nipulacji danymi (ang. Data Manipulation Language — DML). Język SQL umożliwia prze- kazywanie zapytań (czyli tak naprawdę pytań) do bazy danych; baza danych generuje wówczas zbiór danych, który stanowi odpowiedź na otrzymane zapytanie. Przykładowo, w przypadku bazy danych zawierającej szczegółowe informacje na temat sprzedawców, transakcji sprze- daży samochodów, typów sprzedawanych aut itd. może zaistnieć konieczność sprawdzenia, 28 SQL. Od podstaw ile samochodów było sprzedawanych przez poszczególnych sprzedawców w kolejnych mie- siącach i ile pieniędzy uzyskano z tej sprzedaży. Okazuje się, że można napisać pojedyncze (złożone) wyrażenie języka SQL, które będzie reprezentowało to pytanie i dla którego baza danych wygeneruje zbiór danych stanowiących odpowiedź na otrzymane żądanie. Zapytanie języka SQL składa się z różnych wyrażeń, klauzul i warunków. Wyrażenie jest poleceniem lub rozkazem. Przykładowo, wyrażenie może mieć postać: „daj mi jakieś dane”. Klauzula określa pewne ograniczenia dla danego wyrażenia; każde z tych ograniczeń jest definiowane w formie warunków. Przykładowo, zamiast żądania „daj mi jakieś dane” możesz wywołać zapytanie: „daj mi dane tylko dla sprzedaży z maja”, gdzie „tylko dla” jest klauzulą okre- ślającą interesującą Cię datę. W tym przypadku warunkiem jest „z maja”. Jeśli żądane dane nie spełniają tak określonego kryterium (w tym przypadku „z maja”), nie są dla Ciebie inte- resujące. W kodzie języka SQL takie żądanie mogłoby mieć następującą postać: SELECT ModelSamochodu FROM SprzedażSamochodów WHERE DataSprzedażySamochodu BETWEEN 1 maj 2005 AND 31 maj 2005 ; Wyrażenie SELECT mówi systemowi bazy danych, że chcesz z niej wybrać (wyselekcjonować) pewne dane. Następnie wymieniasz dane, które Cię interesują (w tym przypadku jest to tylko pole ModelSamochodu). W dalszej części wyrażenia określasz miejsce, z którego mają pocho- dzić interesujące Cię dane (w tym przypadku z tabeli nazwanej SprzedażSamochodów). Na końcu tego wyrażenia zdefiniowałeś warunek. Powyższe wyrażenie stwierdza, że chcesz otrzy- mać tylko te dane, dla których określone warunki są spełnione. W tym przypadku warunek mówi, że wartość pola daty nazwanego DataSprzedażySamochodu musi należeć do przedziału od pierwszego do trzydziestego pierwszego maja 2005 roku. Wiele przykładów kodu języka SQL podobnych do powyższego zostanie omówionych w rozdziale 3., gdzie szczegółowo przeanalizujemy stosowane w tym języku wyrażenia, klauzule i warunki. Zestawienie języka SQL z pozostałymi językami programowania Teraz, kiedy już wiesz, do czego można użyć języka SQL, możesz ten język porównać z in- nymi popularnymi językami programowania. Trzeba przyznać, że język SQL nie ma wiele wspólnego z takimi językami proceduralnymi jak C++, Visual Basic, Pascal czy innymi języ- kami programowania trzeciej generacji, które umożliwiają programiście pisanie wyrażeń „krok po kroku” i określanie w ten sposób, co dokładnie należy robić, aby osiągnąć określony cel. Wróćmy do przykładu sprzedaży samochodów — Twoim celem może być wyselekcjo- nowanie wszystkich informacji na temat transakcji dokonanych w gliwickim salonie firmy w lipcu. W największym uproszczeniu można przyjąć, że Twój język proceduralny musiałby postępować według następujących instrukcji: 1. Wczytaj dane o sprzedaży do pamięci operacyjnej komputera. 2. Wydobądź pojedyncze elementy danych z całego zbioru informacji o sprzedaży. 3. Sprawdź, czy każdy z tych elementów dotyczy lipca i salonu w Gliwicach. 4. Jeśli tak, odpowiednio oznacz ten element. Rozdział 1. (cid:81) Wprowadzenie do języka SQL 29 5. Przejdź do następnego elementu danych i kontynuuj ten proces aż wszystkie elementy zostaną sprawdzone. 6. Jeszcze raz przejrzyj w pętli cały zbiór danych wynikowych i wyświetl elementy zgodne z określonym warunkiem. SQL jest jednak językiem deklaratywnym, co oznacza, że zamiast określać wprost, co należy zrobić, aby otrzymać interesujący Cię wynik, określasz tylko, jaki chcesz uzyskać wynik, a za dobór działań niezbędnych do wygenerowania oczekiwanych przez Ciebie wyników odpo- wiada sam język. Jeśli w przypadku bazy danych reprezentującej sprzedaż samochodów uży- jesz języka SQL, będziesz tylko musiał określić interesujący Cię rezultat, czyli zastosować wyrażenie podobne do poniższego: SELECT wszystkie dane z tabeli sprzedaży WHERE transakcje odbywały się w lipcu w salonie mieszczącym się w Gliwicach. Okazuje się,
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

SQL. Od podstaw
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ą: