Start > Kursy on-line

MS SQL Server Express


Co to jest SQL Server?

SQL Server jest aplikacją bazodanową instalowaną na serwerach działających w środowisku Windows. Służy jako kompleksowe rozwiązanie - gromadzi, przechowuje i udostępnia dane. Zawiera szereg zintegrowanych narzędzi automatyzujących administrowanie, zarządzanie dostępem czy też analizę danych. SQL Server składa się przede wszystkim z "silnika" bazy danych, jednak od dłuższego czasu dostępne są także usługi dodatkowe, które znacząco rozszerzają funkcjonalność i tworzą w rzeczywistości cały pakiet aplikacji bazodanowych. Mam na myśli przede wszystkim "Reporting Services" - czyli usługę służącą tworzeniu platformy raportowej.

SQL Server jest wykorzystywany także jako baza dla aplikacji tworzonych przez wiele firm informatycznych. Ze względu na cenę jest on jednak wykorzystywany głównie w dużych firmach i korporacjach. Producent pomyślał jednak także o mniej zamożnych użytkownikach i udostępnia (także dla celów komercyjnych) wersję Express SQL Server. Ma ona oczywiście wiele ograniczeń w porównaniu do płatnych wersji Standard lub Enterprise - ale jest za to całkowicie darmowa. Przede wszystkim w tej wersji ograniczono wielkość bazy danych do 4GB (od wersji 2010 10 GB :) ), obsługę tylko jednego procesora na serwerze oraz 1GB pamięci RAM. Dodatkowo nie mamy sporej ilości narzędzi ułatwiających wdrożenie czy też administrację - jednak mimo tych ograniczeń, w przypadku wielu aplikacji wersja ta jest wystarczająca dla zastosowania. W naszych dalszych rozważaniach wykorzystamy wersję SQL Server 2005 Express Edition wraz z dodatkami.

Powyższy opis jest "bardzo oszczędny" - w przypadku, gdyby czytelnik chciał dowiedzieć się więcej nt. wspomnianego narzędzia polecam stronę oficjalną: http://www.microsoft.com/poland/sql/default.aspx

Czytaj dalej...

Czego nauczysz się z tego kursu?

Na wstępie chciałbym zaznaczyć, iż kurs ten zdecydowanie nie jest skierowany do osób chcących nauczyć się administrowania SQL Server. Z tego zakresu powiemy sobie tylko pobieżnie o tematach związanych z zarządzaniem użytkownikami i dostępem oraz tworzeniu i zapisywaniu kopii zapasowych baz danych.
Kurs ten jest ukierunkowany na użytkownika, który ma do dyspozycji działający SQL Server (np. w firmie) i przy odpowiedniej konfiguracji ze strony administratora uzyskuje dostęp np. do określonej bazy danych w celu wykorzystania jej dla tworzonych aplikacji lub magazynowania danych i raportowania z nich lub do użytkownika, który zainstaluje na komputerze lokalnym wersję Express tego narzędzia, tworząc własne środowisko deweloperskie. My przejdziemy tą drugą drogą i wykorzystamy "okrojoną" wersję serwera zainstalowaną na lokalnej maszynie.

W kolejnych rozdziałach poruszymy następujące zagadnienia:

  • instalacja SQL Server w wersji Express
  • instalacja i omówienie SQL Server Management Studio Express - czyli aplikacji, która pełni rolę interfejsu do zarządzania serwerem SQL
  • zarządzanie użytkownikami
  • tworzenie baz danych i ich backup
  • tworzenie tabel, typy pól w tabelach
  • elementy języka SQL
  • procedury składowane
  • funkcje
  • serwery połączone - "linked server"

Czytaj dalej...

Instalacja

Instalacja SQL Server 2005 Express Edition nie różni się specjalnie od instalacji każdego innego programu pod systemem Windows. W tym kursie używam w wersji "Microsoft SQL Server 2005 Express Edition with Advanced Services" i dodatkowo "Microsoft SQL Server 2005 Express Edition Toolkit". Pierwszą ("Advanced Services") możemy zainstalować w pełni (części składników nie wykorzystamy, jednak ważne, abyśmy poza samym serwerem koniecznie zaznaczyli do zainstalowania graficzny program do obsługi serwera "SQL Server Management Studio Express", który omawiamy w kolejnym rozdziale).

Podczas pobierania odpowiednich plików, w przypadku Win XP/Vista/7, zawsze zwracajmy uwagę na wersję "Service Pack" (powinny być zgodne) systemu - unikniemy błędów podczas instalowania.

Przejdźmy teraz do uruchomienia instalatora. Najpierw czytamy i akceptujemy umowę licencyjną.:


Czytaj dalej...

SQL Server Management Studio Express

W poprzednim rozdziale wraz z SQL Server, zainstalowaliśmy też aplikację SQL Server Management Studio Express, która jest graficznym interfejsem znacznie ułatwiającym obsługę i administrowanie bazą. Oczywiście praktycznie wszystkie polecenia można wykonać (także te administracyjne) używając bezpośrednio poleceń języka SQL, jednak nietrudno sobie wyobrazić na ile taka metoda jest bardziej skomplikowana dla zwykłego użytkownika od wykorzystania narzędzia, które właśnie omówimy.

Zaraz po uruchomieniu programu pojawi się komunikat z prośbą o zalogowanie się do serwera SQL jako administrator systemu (jako, że innych loginów nie założyliśmy podczas jego instalacji):


Czytaj dalej...

Tworzenie bazy danych i jej backup

W poprzednim rozdziale zasygnalizowaliśmy polecenie tworzenia nowej bazy danych. Dostępne ono było pod menu kontekstowym, dostępnym po użyciu prawego klawisza myszy w odpowiednim miejscu okna Object Explorer:

Czytaj dalej...

Zarządzanie użytkownikami

W momencie kiedy umiemy już tworzyć bazy danych jako administrator systemu, skupimy się teraz nad zabezpieczaniem dostępu do niej. Pokażemy krótko jak utworzyć loginy użytkowników na serwerze, które potem można wykorzystać do przypisania im uprawnień do określonej bazy. Najpierw tworzymy login na serwerze:

Czytaj dalej...

Tworzenie tabel, polecenie CREATE TABLE, typy pól

Tworzenie tabel w SQL Server jest możliwe na dwa sposoby: poprzez uruchomienie napisanego ręcznie polecenia SQL lub z wykorzystaniem graficznym aplikacji SQL Server Management Studio Express. Omówimy krótko obie możliwości prezentując je we wspomnianej aplikacji. Wykorzystamy przy tym bazę danych utworzoną w poprzedniej części kursu.

Aby utworzyć tabelę w ramach danej bazy, należy użyć na odpowiednim elemencie drzewa obiektów prawego klawisza myszy oraz wybrać polecenie New Table":


Czytaj dalej...

Polecenie SELECT i pasek edytora SQL

Polecenie SELECT

Polecenie języka SQL typu SELECT służy wybieraniu danych z tabel bazy danych. W najprostszej postaci, która pokazuje po prostu zawartość tabeli, składnia wygląda następująco:

SELECT * FROM sprzedaz

Czytaj dalej...

Klauzule WHERE i ORDER BY

Wspomniane w tytule rozdziału klauzule służą ograniczaniu wyników zapytania (WHERE i HAVING) oraz sortowaniu wyników (ORDER BY). Gdybyśmy np. z używanej wcześniej tabeli sprzedaż chcieli wyświetlić dane tylko o produkcie o "id_prod"=1 nasze zapytanie wyglądało by następująco:

Czytaj dalej...

Agregacje w zapytaniach - klauzule HAVING, GROUP BY

Wspominając o klauzuli HAVING musimy wiedzieć, iż pełni ona bardzo podobną funkcję do WHERE jednak używana jest w odniesieniu do agregatów, dodatkowo agregat powinien występować wśród pól wyboru oraz zapytanie powinno mieć grupowanie (klauzula GROUP BY). Innymi słowy, czasami zachodzi konieczność zsumowania danych liczbowych w ramach określonego innego pola. Wówczas dla sumowanych wartości możemy użyć funkcji sum(), która oznacza sumę, natomiast wymiar wg, którego agregowane są dane, powinien znaleźć się na końcu zapytania:

Czytaj dalej...

Zapytania do wielu tabel - polecenie JOIN

JOIN

Po raz pierwszy w naszym kursie zbudujemy zapytanie do dwóch tabel jednocześnie. Nasze tabele z bazy "nowa_baza" zawierają informacje o ilości sprzedaży produktów do poszczególnych klientów ("sprzedaż") oraz o cenach produktów ("produkty"). Wykorzystując je obie, moglibyśmy pokusić się o wyświetlenie cen i wartości sprzedaży. W tym celu wykorzystamy polecenie JOIN, które pozwoli nam na tę operację (pod warunkiem, że obie tabele posiadają pola, które można wykorzystać do przypisania sobie poszczególnych rekordów):


Czytaj dalej...

Zapytania złożone - podzapytania

Poza łączeniem wielu tabel w jednym zapytaniu, język SQL umożliwia nam zadawanie zapytań bazujących na "podzapytaniach". Innymi słowy w jednym zapytaniu możemy przefiltrować np. dane raz, i potem wykorzystać je do kolejnego "odpytania":

Czytaj dalej...

Inne słowa kluczowe, instrukcje i funkcje wbudowane

W tym miejscu krótko powiemy sobie o niektórych dodatkowych słowach kluczowych, które pozwalają na kształtowanie wyników kwerendy, jak i wymienimy kilka najważniejszych funkcji dostępnych w SQL Serverze (ze względu na ich mnogość, nie będziemy omawiać każdej - jedynie kilka kluczowych, najczęściej wykorzystywanych).

Przejdźmy więc do elementów zapytania. TOP, za za zadanie zwracać wybraną liczbę pierwszych rekordów z zapytania. Innymi słowy jeśli chcielibyśmy wyświetlić pierwsze 2 produkty, których sprzedaż była największa w naszej tabeli, którą używamy podczas tego kursu, zapytanie wyglądałoby następująco:


Czytaj dalej...

Polecenie INSERT

Przejdziemy teraz do opisu kolejnych poleceń języka SQL, umożliwiających wstawianie, aktualizację oraz usuwanie rekordów lub całych tabel. Na początek zajmiemy się poleceniem INSERT służącym do dodawania rekordów do bazy danych. Jego konstrukcja jest następująca:

INSERT INTO nazwa tabeli (nazwy pól, oddzielone przecinkiem) VALUES (wartości odpowiadające podanym wcześniej polom)

Czytaj dalej...

Polecenie DELETE

Polecenie, które można nazwać przeciwnym do poprzednio omawianego INSERT - umożliwia usuwanie rekordów. Jego użycie jest bardzo proste i sprowadza się do polecenia w kształcie:

DELETE FROM nazwa tabeli WHERE ". warunki

Czytaj dalej...

Polecenie UPDATE

Kolejne z cyklu poleceń dotyczących operacji na rekordach tabeli. Tym razem umożliwiające zmianę części danych wg określonych warunków. Jego składnia wygląda następująco:

UPDATE nazwa tabeli SET pole1=wartość2, pole2=wartość2, - WHERE ". warunki

Czytaj dalej...

Usuwanie tabel, polecenie DROP TABLE

Usuwanie tabeli może odbyć się na dwa sposoby. Poprzez użycie odpowiedniego polecenia w menu kontekstowym programu:

Czytaj dalej...

Klucze podstawowe i zewnętrzne, indeksy unikatowe, tabele tymczasowe

Zdefiniowane klucze podstawowe oraz unikatowe indeksy mają bardzo duży wpływ na efektywność (szybkość) wykonywanych później poleceń. Można je tworzyć zarówno poprzez użycie odpowiednich funkcji w programie SQL Server Management Studio Express jak i poprzez polecenia języka SQL, podczas tworzenia/modyfikacji tabel. My pokażemy krótko jak tworzyć je wykorzystując narzędzie graficzne. Najpierw wybieramy określoną tabelę i używamy polecenia Modify:

Czytaj dalej...

Procedury składowane

Procedury składowane można porównać trochę do procedur, które tworzone są w językach programowania. Mogą przyjmować parametry, przetwarzać dane, wykonując szereg operacji zdefiniowanych w języku SQL i w efekcie zmieniać dane w tabelach, tworzyć tabele, usuwać je itd. Dzięki rozszerzeniom Transact-SQL zastosowanym w SQL Server, możliwe jest w ich ramach budowanie nawet instrukcji warunkowych. Aby przybliżyć zagadnienie procedury składowanej, zbudujemy jedną w naszej bazie "nowa_baza". Stworzymy procedurę, która będzie zwracała określony wynik w postaci tabeli wg podawanego parametru. Nasz program będzie prosty, jednak najważniejsze jest zaprezentowanie samej idei i możliwości jakie daje to narzędzie. Spójrzmy na graficzną opcję tworzenia procedury:

Czytaj dalej...

Widoki

Widoki są kolejnym ciekawym narzędziem, które umożliwia tworzenie i zapisywanie zapytań typu SELECT w bazie. Przydatne w sytuacji, kiedy z jakiegoś określonego powodu, będziemy wielokrotnie wracać do określonego kształtu zapytania (np. chcemy zbudować prosty system raportowy na bazie danych). Widoki tworzymy, z użyciem kreatora (najprościej):

Czytaj dalej...

Funkcje użytkownika

Podobnie jak to miało miejsce z procedurami składowanymi, SQL Server umożliwia nam definiowanie funkcji użytkownika. Dzięki temu mamy możliwość zapisania definicji pewnych powtarzalnych operacji. Funkcje mogą być dwojakiego rodzaju: zwracające pojedynczą wartość ("Scalar-valued Functions" oraz tablice ("Table-valued Functions"). Tworzenie funkcji użytkownika odbywa się poprzez wydanie odpowiednio napisanych komend w języku T-SQL, lub za pomocą graficznego pomocnika (na tej opcji się teraz skupimy):

Czytaj dalej...

Linked Server

Linked Server są obiektami nie dotyczącymi wprost określonej bazy danych (choć baza danych lokalna lub zdalna może być źródłem) - dotyczą danej instalacji SQL Server. Są obiektami, których zadaniem jest podłączanie przy wykorzystaniu odpowiednich sterowników zewnętrznych źródeł danych: po tej operacji umożliwiając zadawanie zapytań w języku SQL w ramach danego SQL Server. Innymi słowy - umożliwiają nam integrację danych pochodzących z różnych źródeł w ramach jednego serwera SQL. Jeśli by szukać podobieństw, to są one zbliżone do "tabel połączonych" programu MS Access - pełniąc podobną rolę.

W sytuacji kiedy nie mamy podłączonego żadnego źródła danych na drzewie obiektów widzimy jedynie dostępne sterowniki, określające jakiego typu dane zewnętrzne możemy wykorzystać:


Czytaj dalej...

Import/eksport danych - narzędzie DTS

Podczas instalacji SQL Server w wersji Express dodawany jest program o nazwie DTS - Data Transformation Service. Jako, że nie jest on dodawany do menu start systemu Windows, nie zawsze pamiętamy o jego istnieniu. Tymczasem może on być bardzo pomocny dla mniej zaawansowanych użytkowników umożliwiając import lub eksport danych do i z SQL Servera. Program znajdziemy w folderze instalacji SQL Server - standardowo jest to:

C:\Program Files\Microsoft SQL Server\90\DTS\Binn

Czytaj dalej...