O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

100 sposobów na SQL

Book Description

W ka?dym z rozdzia?ów znajdziesz praktyczne porady i sposoby rozwi?zywania typowych zada? programistycznych zwi?zanych z bazami danych i j?zykiem SQL. Poznasz podstawy j?zyka, d...

Table of Contents

  1. 100 sposobów na SQL
  2. Dedykacja
  3. Twórcy książki
    1. O autorach
    2. Współpracownicy
    3. Podziękowania
  4. Wstęp
    1. Zawartość książki
    2. Jak korzystać z tej książki?
      1. Konwencje SQL
    3. Organizacja książki
    4. Konwencje typograficzne
    5. Wykorzystywanie przykładowych aplikacji
    6. Macie własny sposób?
  5. 1. Podstawy SQL: Sposoby 1. – 6.
    1. Sposób 1. Uruchamianie SQL za pomocą wiersza poleceń
      1. Tworzenie potoków w SQL
      2. Przełączniki
      3. Microsoft SQL Server
      4. Oracle
        1. Nawiązywanie połączenia
        2. Lista tabel
        3. Importowanie pliku SQL do Oracle
      5. MySQL
        1. Nawiązywanie połączenia
        2. Lista tabel
        3. Importowanie pliku SQL do MySQL
      6. Access
        1. SQL w programie ACCESS
        2. Importowanie pliku SQL
      7. PostgreSQL
        1. SQL w PostgreSQL
        2. Lista tabel
        3. Importowanie plików
      8. DB2
        1. Importowanie plików SQL do DB2
    2. Sposób 2. Nawiązywanie połączenia między aplikacją a bazą danych SQL
      1. C#
        1. Kompilowanie kodu C#
        2. Dodatkowe uwagi
      2. Java
        1. Uruchamianie programu
      3. Perl
        1. Uruchamianie programu
      4. PHP
        1. Uruchamianie programu
      5. Ruby
        1. Uruchamianie programu
    3. Sposób 3. Warunkowe polecenia INSERT
      1. INSERT ... VALUES
      2. INSERT ... SELECT
    4. Sposób 4. Polecenie UPDATE
      1. Różnice dotyczące systemu MySQL
    5. Sposób 5. Rozwiązywanie krzyżówek w SQL
      1. Wersja dla systemu SQL Server
      2. Wersja dla programu Access
      3. Wersja dla systemu PostgreSQL
      4. Wypełnianie tabeli słowami
    6. Sposób 6. Nie powtarzajcie bez przerwy tych samych obliczeń
      1. VIEW
      2. Ulepszony sposób
  6. 2. Polecenia JOIN, UNION oraz VIEW: Sposoby 7. – 14.
    1. Sposób 7. Modyfikowanie schematu bez naruszania kwerend
      1. Kopiowanie bazy danych
      2. Zmiana tabeli
      3. Zastępowanie tabeli widokiem danych
    2. Sposób 8. Filtrowanie wierszy i kolumn
      1. Perl
      2. Java
      3. Ruby
      4. C#
      5. PHP
    3. Sposób 9. Filtrowanie kolumn indeksowanych
    4. Sposób 10. Konwertowanie podzapytań na wyrażenia JOIN
      1. Wyszukiwanie danych spoza bazy
    5. Sposób 11. Konwertowanie zagregowanych podzapytań na wyrażenia JOIN
    6. Sposób 12. Upraszczanie skomplikowanych poleceń UPDATE
      1. Wykorzystywanie kursora
      2. Korzystanie z widoków danych
    7. Sposób 13. Dopasowywanie złączeń do relacji
      1. Łańcuch
      2. Gwiazda
    8. Sposób 14. Tworzenie kombinacji
  7. 3. Obsługa tekstu: Sposoby 15. – 18.
    1. Sposób 15. Wyszukiwanie słów kluczowych bez użycia operatora LIKE
      1. MySQL
      2. PostgreSQL
      3. SQL Server
      4. Oracle
    2. Sposób 16. Wyszukiwanie ciągów tekstowych w kolumnach
    3. Sposób 17. Rozwiązywanie anagramów
      1. Wybieramy funkcję mieszającą
        1. Liniowa funkcja mieszająca
        2. Kwadratowa funkcja mieszająca
        3. Wykładnicza funkcja mieszająca
    4. Sposób 18. Sortowanie poczty elektronicznej
      1. Wersje kodu zależne od implementacji
        1. SLQ Server — wydzielanie nazwy domeny
        2. Oracle — wydzielanie nazwy domeny
      2. Wydzielanie domeny wysokiego poziomu
        1. MySQL — wydzielanie domeny wysokiego poziomu
        2. SQL Server — wydzielanie domeny wysokiego poziomu
        3. Oracle — wydzielanie domeny wysokiego poziomu
        4. PostgreSQL — wydzielanie domeny wysokiego poziomu
      3. Ulepszony sposób
        1. SQL Server — indeks obliczeniowy
        2. Oracle — indeks obliczeniowy
        3. PostgreSQL — indeks obliczeniowy
  8. 4. Daty: Sposoby 19. – 23.
    1. Sposób 19. Konwertowanie ciągów tekstowych na daty
      1. Konwertowanie dat
      2. Przetwarzanie dat w systemie Oracle
      3. Przetwarzanie dat w systemie MySQL
      4. Przetwarzanie dat w systemie SQL Server
    2. Sposób 20. Wyszukiwanie trendów
      1. Arytmetyka modularna
      2. SQL Server
      3. Access
      4. Oracle
    3. Sposób 21. Tworzenie raportów w oparciu o dowolne przedziały czasowe
      1. Wartości sumaryczne dla kolejnych miesięcy
      2. Bieżący miesiąc
        1. SQL Server
        2. Oracle
      3. Wartości sumaryczne za bieżący rok
        1. Rok fiskalny
    4. Sposób 22. Raporty kwartalne
      1. Ulepszony sposób
    5. Sposób 23. Drugi wtorek miesiąca
      1. Funkcja Day-of-Week
      2. Formuła
        1. MySQL
        2. Oracle
        3. SQL Server
        4. PostgreSQL
      3. Ulepszony sposób — ostatni czwartek miesiąca
      4. Zobacz również:
  9. 5. Dane liczbowe: Sposoby 24. – 40.
    1. Sposób 24. Mnożenie wartości
    2. Sposób 25. Sumy pośrednie
      1. Ulepszony sposób
        1. SQL Server
        2. MySQL
        3. Oracle
      2. Zobacz również
    3. Sposób 26. Dołączanie wierszy pominiętych przez wyrażenie JOIN
    4. Sposób 27. Identyfikowanie nakładających się zakresów
      1. Ulepszony sposób
    5. Sposób 28. Unikanie dzielenia przez zero
    6. Sposób 29. Wyrażenie COUNT
      1. Liczenie warunkowe
        1. Access
    7. Sposób 30. Wyznaczanie wartości maksymalnej z dwóch pól
      1. Wyszukiwanie mniejszej z dwóch wartości
      2. Funkcje alternatywne
      3. Ulepszony sposób
    8. Sposób 31. Dzielenie rezultatów funkcji COUNT
    9. Sposób 32. Błędy podczas zaokrąglania
    10. Sposób 33. Jednoczesne pobieranie wartości i sum częściowych
      1. Warunki ROLLUP i GROUPING SETS
        1. SQL Server, MySQL oraz DB2
        2. Oracle i DB2
      2. Ulepszony sposób
    11. Sposób 34. Obliczanie mediany
      1. Tworzenie tymczasowej tabeli
      2. Wypełnianie tabeli tymczasowej
        1. MySQL
        2. SQL Server
        3. Oracle
      3. Wyszukiwanie środkowego wiersza lub wierszy
    12. Sposób 35. Przedstawianie wyników w formie wykresu
      1. SQL Server
      2. Oracle
      3. PostgreSQL
    13. Sposób 36. Obliczanie odległości między lokalizacjami wskazywanymi przez system GPS
      1. Ulepszony sposób
    14. Sposób 37. Porównywanie faktur i wpłat
      1. Wyszukiwanie dokładnych dopasowań
      2. Niezgodność numerów faktury
      3. Wyszukiwanie możliwych dopasowań
    15. Sposób 38. Wyszukiwanie błędów transpozycji
      1. SQL Server
      2. Oracle
      3. Pojedyncza kwerenda
    16. Sposób 39. Naliczanie podatku progresywnego
      1. Kwerenda bez funkcji LEAST
    17. Sposób 40. Rangi
  10. 6. Aplikacje sieciowe: Sposoby 41. – 48.
    1. Sposób 41. Kopiowanie stron internetowych do tabeli
      1. Przetwarzanie arkuszy XSLT
      2. Dokument wejściowy
      3. gross.xsl
      4. Pobieranie danych
        1. Dodatkowe przetwarzanie
      5. Ulepszony sposób
    2. Sposób 42. Prezentowanie danych z wykorzystaniem skalowalnej grafiki wektorowej
      1. Właściwości XML zależne od platformy systemowej
        1. SQL Server
        2. Oracle
        3. MySQL
    3. Sposób 43. Wzbogacanie aplikacji sieciowych o narzędzia do nawigacji
      1. SQL Server i PostgreSQL
      2. Oracle
      3. Access
      4. Uruchamianie kodu
      5. Ulepszony sposób
    4. Sposób 44. Definiowanie połączenia między systemem MySQL a programem Access
      1. Tworzenie bezpiecznego kanału
      2. Złącze ODBC dla systemu MySQL
      3. Nawiązywanie połączenia
      4. Przerywanie połączenia
      5. Testowanie połączenia
      6. Nawiązywanie połączenia z innymi bazami danych
    5. Sposób 45. Przetwarzanie dzienników serwerów sieciowych
      1. Kwerendy
        1. Przerwane łącza
        2. Działania użytkowników
      2. Ulepszony sposób
    6. Sposób 46. Przechowywanie obrazów w bazie danych
      1. Typ danych BLOB
      2. Przechowywanie obrazów w formie plików
    7. Sposób 47. Atak SQL injection
      1. Naprawianie błędu
      2. Wykorzystywanie błędu jako luki w zabezpieczeniach
      3. Zadawanie pytań tak – nie
        1. Przykładowe pytania i odpowiadające im wyrażenia SQL
      4. Zapytania dotyczące ciągów tekstowych
      5. Pobieranie metadanych
      6. Podsumowanie
      7. Zobacz również
    8. Sposób 48. Zapobieganie atakowi SQL injection
      1. Perl
      2. C#
      3. PHP
      4. Java
      5. Inne rodzaje danych
      6. Sprawdzanie poprawności skryptów JavaScript, cookies oraz ukrytych zmiennych
      7. Luki w bezpieczeństwie oparte na ukrytych zmiennych i cookies
      8. Ograniczanie uprawnień przypisanych do konta SQL
      9. Bez paniki
      10. Zobacz również
  11. 7. Porządkowanie danych: Sposoby 49. – 57.
    1. Sposób 49. Śledzenie rzadko zmieniających się wartości
      1. Zapisywanie zmian cen
        1. Wyszukiwanie aktualnej ceny
        2. Wyszukiwanie ceny dla wybranej daty
        3. Wyświetlanie listy wszystkich cen z danego dnia
    2. Sposób 50. Łączenie tabel zawierających różne dane
      1. Oracle i PostgreSQL
      2. MySQL
      3. SQL Server i Access
    3. Sposób 51. Wyświetlanie wierszy w charakterze kolumn
      1. Złączenie tabeli z nią samą
      2. Wyrażenie CASE
    4. Sposób 52. Wyświetlanie kolumn w charakterze wierszy
      1. Dzielenie grup danych zawierających powtarzające się kolumny
    5. Sposób 53. Usuwanie niespójnych rekordów
      1. Normalizowanie danych
    6. Sposób 54. Denormalizowanie tabel
    7. Sposób 55. Importowanie danych innych użytkowników
    8. Sposób 56. Zabawa w swatanie
    9. Sposób 57. Generowanie unikalnych numerów sekwencyjnych
      1. Przerwy w sekwencji
        1. Wydajność
      2. Kilku użytkowników
      3. Numery generowane przez system
        1. MySQL — kolumna AUTO_INCREMENT
        2. SQL Server — kolumna IDENTITY
        3. Oracle — SEQUENCE
        4. PostgreSQL — SEQUENCE
      4. Wybieranie klucza podstawowego
      5. Ulepszony sposób
  12. 8. Przechowywanie małych ilości danych: Sposoby 58. – 63.
    1. Sposób 58. Przechowywanie parametrów w bazie danych
      1. Tworzenie raportów
    2. Sposób 59. Definiowanie osobnych parametrów dla poszczególnych użytkowników
      1. Dodawanie nowych użytkowników
      2. Warianty dla różnych systemów
        1. Mysql
        2. SQL Server
        3. Oracle
        4. PostgreSQL
        5. Access
    3. Sposób 60. Lista parametrów
    4. Sposób 61. Bezpieczeństwo oparte na wierszach
      1. Korzystanie z nazw użytkowników
      2. Ulepszony sposób
        1. Jednokierunkowa pułapka
        2. Tryb nadzoru
    5. Sposób 62. Wykonywanie kwerend bez wykorzystywania tabel
      1. Pożyteczne funkcje statyczne
        1. MySQL
        2. SQL Server
        3. Oracle
        4. PostgreSQL
    6. Sposób 63. Tworzenie wierszy bez udziału tabel
      1. Ulepszony sposób
        1. Pole kombi połączone z tabelą w programie Access
        2. Rozwijane menu w języku Perl
  13. 9. Blokowanie i wydajność: Sposoby 64. – 76.
    1. Sposób 64. Określanie poziomu izolacji
      1. Automatyczne zatwierdzanie
      2. Problemy wynikające ze współbieżnego wykonywania kwerend
        1. Złudne odczyty
        2. Niepowtarzalne odczyty
        3. Błędne odczyty
      3. Poziom izolacji
      4. Wymuszanie izolacji
      5. Sprawdzanie poziomu izolacji
    2. Sposób 65. Blokowanie pesymistyczne
    3. Sposób 66. Blokowanie optymistyczne
    4. Sposób 67. Niejawne blokowanie wewnątrz transakcji
    5. Sposób 68. Obsługa powtarzanych operacji
      1. Koszyki z zakupami
    6. Sposób 69. Wykonywanie funkcji w bazie danych
    7. Sposób 70. Łączenie kwerend
    8. Sposób 71. Pobieranie dużej liczby wierszy
      1. Korzystanie z dużego bufora
      2. Wiązanie zmiennych
      3. Seria połączeń
    9. Sposób 72. Pobieranie podzbioru uzyskanych rezultatów
      1. Ulepszony sposób
    10. Sposób 73. Przechowywanie plików w bazie danych
      1. Dodawanie i usuwanie plików
      2. Zbyt wiele plików
      3. Ulepszony sposób
    11. Sposób 74. Porównywanie i synchronizowanie tabel
      1. Ulepszony sposób
    12. Sposób 75. Minimalizowanie obciążenia łącz dla zbyt wielu złączeń
      1. Pobieranie artykułów i komentarzy
      2. Kwerenda z wyrażeniem UNION
      3. Rezultaty
      4. Czy to zawsze działa?
    13. Sposób 76. Kompresowanie w celu uniknięcia typu danych LOB
  14. 10. Raporty: Sposoby 77. – 89.
    1. Sposób 77. Uzupełnianie brakujących wartości w tabeli przestawnej
      1. Dołączanie brakujących wartości
      2. Polecenie UNION
    2. Sposób 78. Podział na zakresy
      1. Redukowanie precyzji liczb
      2. Redukowanie precyzji dat
        1. MySQL
        2. Oracle
        3. SQL Server
        4. PostgreSQL
      3. Ulepszony sposób
    3. Sposób 79. Jednoznaczne identyfikowanie aktualizacji
      1. Powielające się dane wsadowe
      2. Tworzenie transakcji poza serwerem głównym
      3. Aktualizowanie danych na serwerze głównym
    4. Sposób 80. Sześć stopni od Kevina Bacona
    5. Sposób 81. Tabele decyzyjne
      1. Ulepszony sposób
    6. Sposób 82. Generowanie sekwencyjnych lub brakujących danych
      1. Tworzenie i wypełnianie tabeli „calkowite”
      2. Generowanie sekwencyjnych danych
        1. Liczby od 0 do 99
        2. Litery od A do Z
        3. SQL Server
        4. Oracle
        5. Zakresy dat
        6. Oracle i PostgreSQL
        7. SQL Server
      3. Przesyłanie brakujących danych do wyrażenia OUTER JOIN
        1. Sumowanie liter
        2. Następujące po sobie daty
      4. Ulepszony sposób
        1. Oracle
        2. PostgreSQL
        3. SQL Server
    7. Sposób 83. Wyszukiwanie n pierwszych wierszy w grupach
      1. Ostatnie trzy artykuły
      2. n pierwszych wierszy w każdej grupie
      3. Remisy
      4. Zobacz również
    8. Sposób 84. Przechowywanie list wartości oddzielonych przecinkami w kolumnach
      1. Zalety list zawierających przecinki w charakterze separatorów
      2. Wady list zawierających przecinki w charakterze separatorów
      3. Łączenie list
      4. Zobacz również
    9. Sposób 85. Analizowanie prostych drzewek
      1. Wizualizacja drzewka
      2. Rekurencyjne rozszerzenia systemu Oracle
    10. Sposób 86. Definiowanie kolejek w bazie danych
    11. Sposób 87. Tworzenie kalendarza
      1. Wersje zależne od systemu
        1. SQL Server
        2. Oracle
        3. PostgreSQL
    12. Sposób 88. Testowanie dwóch wartości za pomocą podzapytania
    13. Sposób 89. Wybieranie trzech możliwości spośród pięciu
      1. Rozwiązanie oparte na poleceniu JOIN
      2. Rozwiązanie oparte na poleceniu GROUP BY
  15. 11. Użytkownicy i administracja: Sposoby 90. – 96.
    1. Sposób 90. Implementowanie kont na poziomie aplikacji
      1. Przechowywanie informacji powiązanych z poszczególnymi użytkownikami
      2. Zabezpieczanie haseł za pomocą funkcji skrótu
      3. Oracle
      4. SQL Server
      5. Języki programowania
        1. Perl
        2. PHP
      6. Zobacz również
    2. Sposób 91. Eksportowanie i importowanie definicji tabel
      1. MySQL
      2. PostgreSQL
      3. SQL Server
        1. Daty w systemie SQL Server
      4. Oracle
      5. Access
      6. Potencjalne przeszkody
        1. Automatyczne numerowanie
        2. Odstępy w nazwach kolumn i tabel
        3. Funkcje niestandardowe
    3. Sposób 92. Wdrażanie aplikacji
      1. Zarządzanie przestrzenią nazw
      2. Skrypt CREATE
        1. SQL Server
        2. MySQL
        3. Oracle
        4. PostgreSQL
      3. Możliwości przenoszenia
      4. Usuwanie tabel z pominięciem ograniczeń
    4. Sposób 93. Automatyczne tworzenie kont użytkowników
    5. Sposób 94. Tworzenie kont użytkowników i administratorów
      1. MySQL
      2. Oracle
      3. PostgreSQL
      4. SQL Server
    6. Sposób 95. Automatyczne aktualizacje
      1. Oracle
      2. MySQL
      3. SQL Server
      4. PostgreSQL
    7. Sposób 96. Tworzenie dziennika zdarzeń
      1. SQL Server
      2. MySQL
      3. Oracle
      4. PostgreSQL
      5. Blokowanie tabel
      6. Przetwarzanie tabeli zawierającej historię
  16. 12. Szerszy dostęp: Sposoby 97. – 100.
    1. Udostępnianie danych przez internet
    2. Anonimowe konta SQL
    3. Sposób 97. Anonimowe konta
      1. Ograniczone konto w systemie MySQL
      2. Ograniczone konto w systemie SQL Server
      3. Ograniczone konto w systemie PostgreSQL
      4. Ograniczone konto w systemie Oracle
    4. Sposób 98. Wyszukiwanie i przerywanie długo wykonywanych kwerend
      1. Oracle
      2. SQL Server
      3. MySQL
      4. PostgreSQL
      5. Ulepszony sposób
        1. Oracle
        2. MySQL
        3. SQL Server
        4. PostgreSQL
    5. Sposób 99. Zarządzanie przestrzenią dyskową
      1. Oracle — brak miejsca w przestrzeni tymczasowej
      2. Duże tabele
        1. Oracle
        2. MySQL
        3. SQL Server
    6. Sposób 100. Uruchamianie kwerend za pośrednictwem stron internetowych
      1. MySQL
      2. SQL Server
      3. Oracle
      4. PostgreSQL
      5. Ulepszony sposób
      6. Inne interfejsy sieciowe
        1. Uwierzytelnianie
        2. Parametry CGI
        3. Przetwarzanie rezultatów
      7. Bezpieczeństwo
  17. Indeks
  18. Kolofon
  19. Copyright