Ale nie wolno go kopiować ani drukować, chyba, że uzyska się od autorów odpowiednią, pisemną, zgodę. Taki, my autorzy, mamy kaprys. Prosimy o poszanowanie.
W odpowiednim czasie zostanie opublikowany w formie papierowej.
Tekst nie jest jeszcze gotowy – ale codziennie jest go więcej… Zapisz w ‘Ulubionych’ ;)
Podoba się? Zapraszamy na szkolenia.
Edytory zapytań SQL – przegląd
Rozdział książki WG&KR „SQL w Excelu”
Wojciech Gardziński, Krzysztof Rumiński © 2010
Spis treści rozdziału:
Edytory zapytań SQL – przegląd
SQL Server / MS SQLS Management Studio – przykład lokalnej bazy serwerowej
MySQL (przykład internetowej bazy serwerowej)
SQLite (przykład lokalnej bazy plikowej)
Przekonujemy Państwa, że używanie SQL w Excelu się opłaca, że to właściwe podejście do tematu analiz. Ale jak zacząć? Co włączyć, żeby dało się owo „zdanie SQL” wpisać?
I, żeby zadziałało…
Zadajmy więc najprostsze zadanie naszemu systemowi bazodanowemu, czyli „SELECT * FROM [tabela]” w różnych narzędziach i przyjrzyjmy się, które robią to lepiej, na czym polega to „lepiej”, gdzie możemy je wykorzystywać i czego potrzebują, żeby działać.
Edytor zapytań – to specjalny program z (często) graficznym interface’em, który wspomaga budowę poprawnych zdań języka zapytań do bazy danych. Obsługuje również wyniki zapytań, abyśmy mogli sprawdzić, jak konkretnie baza zrozumiała zapytanie.
Wspomaga on również nawiązanie łączności z bazą. Połączenie z bazą danych to coś w rodzaju połączenia telefonicznego. Łączymy się z bazą i po potwierdzeniu połączenia mamy możliwość zadawania jej pytań w języku SQL.
Pierwsza trudność to uzyskanie połączenia. Mówimy o tym w innym miejscu, ale każdy edytor również zapewnia wspomaganie tej czynności, która jest nieco trudniejsza, niż uzyskanie połączenia telefonicznego.
Mimo niewątpliwej elegancji i prawie żelaznej, wewnętrznej logiki, język SQL, zwłaszcza w zdaniu SELECT, dotyczącej zapytań o zawartość bazy, jest skomplikowany, a nawet miejscami nieintuicyjny. Wymaga precyzji, nie toleruje błędów ortograficznych (zwanych w informatyce syntaktycznymi) i komentuje te błędy w sposób albo ogólnikowy, albo mało zrozumiały.
Dlatego mamy do dyspozycji wiele edytorów zapytań. Omówimy najważniejsze z nich.
Zalety:
Ma też ograniczenia, związane przede wszystkim z dwudziestoletnim wiekiem i brakiem woli dla rozwoju tego narzędzia:
Ogólna ocena:
Kwerenda w widoku SQL umożliwia wpisanie zdania SQL ręcznie, jednak dopiero gdy stworzymy nową kwerendę i wstępnie wskażemy tabelę
Zalety:
Wady:
Ogólna ocena:
Baza danych, dostępna pakiecie Open Office.org, jest podobna do MS Access – tu nieco łatwiej rozpocząć – widok kwerendy SQL jest jednym z widoków domyślnych.
Podobnie jak w MS Access, można tu również wykonywać polecenia SQL na innej (zewnętrznej) bazie danych, albo poprzez dołączenie tabel z innej BD, albo poprzez wyspecyfikowanie kompletnego połączenia bazodanowego w SQL (w składni ODBC albo DSN), np.
Z tego też względu, użycie Open Office.org Base jest sensowne. Standardowy SQL (W Accessie składnia MS JET SQL jest uciążliwa) na bazie zewnętrznej, łatwo edytowalny i z użytecznym interfejsem – w OOB ustawiamy Widok Dokumentu po prawej stronie okna kwerendy i widzimy efekt działania kwerendy od razu po jej zaznaczeniu, nie musimy jej specjalnie uruchamiać – rozwiązanie unikalne.
Aby przybliżyć Czytelnikom oraz innym zainteresowanym, temat SQL w Excelu, stworzyliśmy specjalny skoroszyt (MS Excel 2003) testowy do ćwiczeń. Jest on darmowy, dostępny w Internecie – wystarczy go pobrać z http://afin.net/excel/ADO4Excel.xls.
Zawiera makra – coś wszak musi nasze zapytania do serwerów bazodanowych odpowiednio kierować, a wyniki wyświetlać w arkuszu. Robi to stosunkowo prosty kod w VBA, który dodatkowo jest odkryty
Tutaj edytorem jest zwykły arkusz Excela. W komórce B3 podajemy ciąg połączenia bazodanowego, w B4 zdanie SQL i naciskamy przycisk startowy.
Dane wklejają się w arkusz natychmiast.
To narzędzie różni od innych się przede wszystkim dostępnością edycyjną ciągu połączenia bazodanowego (ang. connection string, „CS”). CS nie dość, że możemy wpisać, czyli również zmienić, to, dodatkowo, wykorzystując fakt, że znajduje się on w normalnej komórce normalnego Excela, możemy go dowolnie parametryzować, składając tekst CS z wielu komórek arkusza, np. w jednej z nich umieszczamy ścieżkę do skoroszytów, w drugiej nazwę skoroszytu, w następnej nazwę arkusza, a w kolejnej adres zakresu arkusza, z którego chcemy pobierać dane. Zmieniając dowolny z tych parametrów, otrzymujemy coraz to różne, inne, dane. To unikalna właściwość edytora SQL – inne są sztywno powiązane z konkretną bazą danych i trudno jest zmienić w trakcie edycji kwerendy.
Wszystkie systemy RDBMS (Relational Data Base Management System – Zarządzania Bazą Danych) udostępniają tzw. „interfejsy”, czyli specjalne programy do zarządzania bazą danych. Bez tych programów można też pobierać i przetwarzać dane w BD, tu jednak mamy poczucie „pełnej kontroli” i często wybieramy tę formę składania zapytań.
Uwaga!
Zapytania na bazie testowej „afin_open” można poćwiczyć osobiście. Wymagana jest jedynie dowolna przeglądarka internetowa.
Serwer ten jest utrzymywany przez firmę AFIN i ma na celu wyłącznie udostępnienie narzędzi do prób, związanych z nauką AFIN.NET oraz SQL.
Prosimy o poszanowanie działań innych osób.
Zalety:
Wady:
Ogólna ocena:
Przykład menedżera bazy SQLite podajemy bardziej dla przykładu, niż dla jakiegokolwiek zastosowania – baza ta jest rzadko używana, a jeśli już jest, to zwykle poprzez obiekty VBA, a nie język SQL, co nie znaczy, że nie można przez SQL.
W zdecydowanej większości, programy te są do siebie bardzo podobne i oferują podobną funkcjonalność – mowa tu o funkcjonalności, „ogarnianej” przez analityka. Wybór takiego programu następuje, praktycznie, wtórnie – po wybraniu bazy danych. Do nauki i ćwiczeń SQL, instalowanie bazy danych i jej interfejsu nie jest jednak konieczne.
Jeżeli chcemy „pouczyć się” SQL, polecamy wykorzystać do tego celu Internet i setki, jeśli nie tysiące, stron poświęconych SQL, np.
W3Schools: http://www.w3schools.com/sql/sql_tryit.asp
Można tu testować zapytania SQL, otrzymując natychmiastową odpowiedź w formie tabeli
Zalety:
Wady:
Ogólna ocena:
AFIN.NET umożliwia dodatkowe operacje.
Programowalny edytor zapytań, tzw. AFIN.NET.InformationServices pozwala na programowe wykonywanie wielu zapytań SQL jedno po drugim, umożliwiając tym samym pisanie tzw. „procedur SQL” – programów, przetwarzających dane w sposób powtarzalny, sformalizowany, niekiedy bardzo skomplikowany, ale, przede wszystkim – parametryzowany, bo wszystkie operacje deklarowane są w normalnym arkuszu kalkulacyjnym.
Kolejne komendy umieszczane są, jedna linia pod drugą, i wykonywane sekwencyjnie od góry po naciśnięciu przycisku ‘Start’. Można tak tworzyć i testować wiele zapytań SQL jednocześnie.
Innym przykładem użycia może być tzw. funkcja SQL o nazie GETDATAODBC(), użyta w formie tablicowej. Zapytanie SQL zwraca zawsze dwuwymiarową tablicę wartości, w skrajnym przypadku może to być jedna wartość (tablica 1:1). Oznacza to, że, aby ją wyświetlić w tablicy w arkuszu, należy funkcję wprowadzić w formie tablicowej.
AFIN.NET dysponuje odpowiednim szablonem – wymaga on wyłącznie otwarcia.
Każda zmiana dowolnego z parametrów-argumentów funkcji GETDATAODBC() powoduje natychmiastową zmianę tablicy wyników. Gdy zapytanie jest prawidłowe – tablica wypełnia się wartościami, gdy zapytanie jest błędne – tablica wyświetla wyłącznie wartości ‘0’ (zero).
Wybór edytora zależy od gustu użytkownika i celu, do jakiego chce go użyć. Wybór jest szeroki – jedynym ograniczeniem jest sam użytkownik, a konkretnie jego ochota do nauki profesjonalnego użycia środowiska bazodanowego.