T-SQL – wprowadzenie

  • Zadania nie są ułożone od najłatwiejszego do najtrudniejszego; są wymieszane.
  • Jeśli szukasz zadań z konkretnej kategorii – np chcesz poćwiczyć złączenia tabel – użyj wyszukiwarki lub chmury tagów.
  • Niektóre zadania mogą być podobne do innych. Nie przejmuj się tym – pisz. Im więcej napiszesz zapytań, tym lepiej opanujesz podstawy, i nauczysz się myśleć w kategoriach zbiorów.
  • Modyfikuj zapytania! Dopisuj swoje elementy – żeby zobaczyć, co się stanie.
  • Niektóre zadania mają więcej niż jedno poprawne rozwiązanie.
  • Aby ułatwić zadanie – byście mogli skupić się na pisaniu kwerendy – przy każdym ćwiczeniu jest zaznaczone, z jakich tabel i kolumn korzystać.
  • Warto mieć pod ręką schemat bazy, z której się korzysta. Dla bazy Northwind wygląda on tak:

Northwind_diagram

  • …a dla AdventureWorks tak:

AdventureWorks2008

Zadania zostały podzielone na kilka kategorii:

  • Zaczynamy od zera – jak sama nazwa wskazuje, ćwiczenia przeznaczone dla stawiających pierwsze kroki w świecie SQL; proste zapytania do jednej tabeli, z różnymi warunkami filtrowania wierszy.
  • Podstawowy – operuje na podstawowych składnikach zapytań: łączenie tabel, grupowanie oraz filtracja grup, funkcje agregujące (MIN, MAX, SUM, AVG), proste użycie funkcji okna OVER(), funkcje znakowe (np. SUBSTRING, REPLACE), praca z NULLami, funkcja CASE, operacje na datach.
  • Średniozaawansowany – bardziej złożone zapytania: podkwerendy (zwykłe oraz skorelowane), wyrażenia tablicowe, operatory zbiorowe (UNION, EXCEPT, INTERSECT), widoki, dalsze zastosowanie funkcji okna OVER; znajdowanie więcej niż jednego rozwiązania danego problemu.
  • Zaawansowany – tworzenie i modyfikowanie tabel (CREATE, ALTER, DROP), modyfikacja danych (INSERT, UPDATE, DELETE), transakcje, sekwencje i identyfikatory, tworzenie więzów integralności (klucze główne i obce), indeksy.
  • Zaczynamy od pobrania pliku, a w zasadzie dwóch: potrzebny nam będzie SQL Server (w wersji Express – darmowa edycja, do nauki wystarczająca) oraz program do zarządzania, czyli Management Studio. Znajdziemy je pod tym linkiem: http://www.microsoft.com/en-us/download/details.aspx?id=42299
  • Po kliknięciu Download, pojawi nam się lista, na której możemy zaznaczyć, co chcemy. W naszym przypadku zaznaczamy (dla 64-bitowej wersji systemu) dwa pliki: Express 64BIT\SQLEXPR_x64_ENU.exe oraz MgmtStudio 64BIT\SQLManagementStudio_x64_ENU.exe
  • Zainstalujmy więc nasz serwer. Po uruchomieniu pliku exe instalator rozpakuje się do wskazanego folderu. Po chwili zobaczymy okno instalatora i pierwszy wybór. Klikamy „New SQL stand-alone installation…”

srv1

  • Klikamy dwa razy Next, po czym dochodzimy do typu instalacji. Wybieramy nową instalację. Next. Akceptujemy warunki licencyjne, Next.

srv2

  • Feature Selection – zaznaczamy oba komponenty, jeśli nie są zaznaczone, i klikamy Next.

srv3

  • Następnym krokiem jest nadanie nazwy instalowanej przez nas instancji. Możemy zostawić defaultową (SQLExpress) lub wpisać własną (sugeruję, by była krótka i treściwa, np SQLSrv). Next.

srv4

  • Dochodzimy do konfiguracji servera. W oknie gdzie mamy Service Accounts nic nie zmieniamy, przechodzimy do następnego kroku.
  • Teraz ustawiamy tryb autentykacji i administratora. Zmieniamy tryb autentykacji na Mixed Mode, uaktywniają nam się okienka do ustanowienia hasła dla administratora (sa). Gdy mamy już wpisane hasło, warto je zapamiętać. Next.

srv5

  • Teraz pilnie śledzimy pasek postępu instalacji.

srv6

  • Jeśli wszystko poszło zgodnie z planem, na ekranie powinno pojawić się podsumowanie z informacją o szczęśliwym zakończeniu procesu. Close.

 

Instalacja Management Studio

  • Początek instalacji programu do zarządzania wygląda identycznie, jak instalacja serwera. Uruchomiony exe rozpakowuje się, następnie widzimy znajome już okienko, w którym – tak jak poprzednio – wybieramy „New SQL Server stand-alone installation…”. Kilka kolejnych okienek wygląda tak samo jak przy serwerze; nie robimy z nimi nic konkretnego, klikamy Next.
  • Dalsza instalacja nie powinna sprawić problemów. Uwaga: jeśli korzystacie z systemu Windows Vista, konieczne będzie doinstalowanie kilku komponentów; instalator powie, czego mu brakuje. Po doinstalowaniu, warto odpalić instalator od początku, bo nie zawsze załapuje że to czego potrzebował już jest i nie da się pchnąć instalacji dalej.
  • Gdy wszystko już będzie gotowe, uruchamiamy program. Pojawi się okienko logowania. Sprawdzamy, czy ustawienia się zgadzają, wpisujemy login i hasło (to które definiowaliśmy podczas instalacji serwera) i klikamy Connect.

srv7

  • Jeśli przy próbie połączenia pojawi się błąd, warto sprawdzić, czy usługa nie jest zatrzymana. Otwieramy w tym celu menedżera zadań (Ctrl+Alt+Del) i w zakładce Usługi szukamy naszego serwera. Jeśli usługa jest zatrzymana, wystarczy kliknąć na nią prawym klawiszem i wybrać Uruchom.

sql-menedzerzadan

Instalacja bazy Northwind

  • Zaczynamy od pobrania pliku: http://www.microsoft.com/en-us/download/details.aspx?id=23654
  • Pobrany plik jest instalatorem – odpalamy go, przechodzimy proces instalacji
  • Teraz przechodzimy do folderu SQL Server 2000 Sample Databases, który powinien znajdować się na dysku C:
  • W folderze odszukujemy plik instnwnd.sql i otwieramy go za pomocą Management Studio
  • Teraz wystarczy wykonać załadowaną kwerendę (domyślnie F5), a baza zostanie utworzona.

 

  • Jeśli podczas próby wykonania kwerendy pojawi się błąd („Could not find stored procedure ‚sp_dboption’.”), robimy co następuje:
  • w kodzie w linii około 22 znajdujemy dwie linie kodu:

instnwderr1

  • kasujemy je i w ich miejsce wpisujemy taką instrukcję:

instnwderr2

  • teraz można już wykonać skrypt.
  • Źródło rozwiązania: http://www.howtosolutions.net/2013/07/solving-install-northwind-database-on-sql-server-problem/#.ViJ2ICtempo

 

Instalacja bazy AdventureWorks2012

AW2012

  • Otwieramy program Management Studio, łączymy z serverem. Z lewej strony w Object Explorer klikamy prawym przyciskiem na Databases, z menu kontekstowego wybieramy Attach…
  • W oknie, które się pojawi, wybieramy Add, zaznaczamy plik AdventureWorks2012_DATA, klikamy ok.

AttachAWCałość powinna wyglądać jak na screenie. Klikamy ok – i koniec.

Rozwijając Databases w Object Explorerze powinniśmy już zobaczyć na liście nowo dodaną bazę.

 

Jak określić, z której bazy chcemy korzystać pisząc dane zapytanie?

Można to zrobić na dwa sposoby:

  • Dopisując na początku kwerendy kod:

wpr1

  • Wybrać bazę z listy w lewej górnej części programu:

wpr2