Budowa zapytań – wybór bazy
Pierwszą rzeczą, którą wykonujemy po połączeniu z naszym serwerem jest wskazanie bazy danych, na której uruchamiane będą zapytania Query. Służy do tego polecenie USE. Wykonanie wygląda następująco:
use [adventureworks2014]; go
lub:
use adventureworks;
Polecenie SELECT
Tak jak pozostałych językach SQL, podstawowym poleceniem jest polecenie SELECT. Korzystając z bazy AdventureWorks, którą wgraliśmy podczas instalacji, przykładowe polecenie wygląda następująco:
USE [AdventureWorks] go SELECT 'HELLO WORLD' go
Korzystając z klienta SQL Server Management Studio, zapytania zatwierdzamy i wykonujemy przy pomocy klawisza F5. W SSMS zapytania możemy zatwierdzać także skrótem klawiszowym Lewy ALT + X. Jak widać w powyższym zapytaniu nie określamy tabeli, z której nasze dane zostaną wywołane. Jedyne, co określamy to bazę, na której zapytanie zostanie wykonane oraz tekst, który ma pojawić się w wyniku zapytania.
Klauzula FROM w MsSQL
Odnosząc się do bazy AdventureWorks, przykładowe zapytanie z wykorzystaniem tabel wyglądać będzie następująco:
USE [AdventureWorks]; go SELECT * FROM HumanResources.Department; go
Wynikiem powyższego zapytania są wszystkie kolumny oraz rekordy zawarte w tabeli HumanResources.Department. Tabelę, z której wybieramy nasze dane określamy w klauzuli FROM. Znak gwiazdki ALL”*” używamy, gdy chcemy uzyskać wynik zawierający wszystkie kolumny w danej tabeli. W momencie, gdy chcemy, by jedynie niektóre kolumny z naszej tabeli zostały wyświetlone, określamy je używając nazwy kolumn wymienionych po przecinku jak w poniższym zapytaniu:
USE [AdventureWorks2014]; go SELECT SalesOrderID, UnitPriceDiscount, ProductID from Sales.SalesOrderDetail; go
Polecenie TOP w klauzuli SELECT
Jak widzisz wynik naszego zapytania zwraca kilkadziesiąt tysięcy rekordów. My oczywiście wszystkich nie musimy widzieć. Liczbę rekordów wyświetlanych możesz ograniczyć np do 10 stosując polecenie TOP jak w poniższym zapytaniu. Polecenie działa analogicznie jak polecenie Limit na bazach MySQL i określa nam liczbę rekordów, którą chcemy pokazać.
USE [AdventureWorks2014]; go SELECT top 10 SalesOrderID, UnitPriceDiscount, ProductID FROM Sales.SalesOrderDetail; go
Powyższe zapytanie określa nam limit wyświetlanych rekordów. Co jednak, gdy chcemy określić warunki dla rekordów, które chcemy widzieć w wyniku? Wykorzystujemy do tego celu klauzulę WHERE. Za jej pomocą możemy określić, jakie warunki mają spełniać konkretne kolumny, które chcemy wyświetlić. Dla przykładu z tabeli production.Product chcemy wyświetlić wszystkie produkty, o kolorze czarnym i podkategorii o numerach 12 lub 14:
USE [AdventureWorks2014]; go SELECT * from production.Product where color = 'Black' and (ProductSubcategoryID = 14 or ProductSubcategoryID = 12) ; go
Jak widzimy powyżej warunki możemy łączyć ze sobą, używając do tego np operatorów „AND” lub „OR„. Dbamy o to, by warunki w połączeniu ze sobą tworzyły logiczną całość.
Polecenie DISTINCT w klauzuli SELECT w MsSQL
W przypadku, gdy chcesz wyświetlić rekordy bez powtórzeń możesz zastosować w tym celu polecenie DISTINCT jak w poniższym zapytaniu.
USE [AdventureWorks]; go SELECT distinct ProductSubcategoryID ,color from production.Product where color = 'Black' and (ProductSubcategoryID = 14 or ProductSubcategoryID = 12) ; go
Podsumowując powyższe, proste, modelowe zapytanie SQL wygląda następująco:
USE [nasza_baza]; go /* Poniżej model prostego zapytania */SELECT wybrane_kolumny --określamy kolumny FROM nazwa_tabeli --określamy obiekt tabela/widok, z którego korzystamy WHERE nasze_warunki;-- określamy warunki go
SQL Server – komentarze w kodzie
Jak widzimy powyżej do tworzenia adnotacji w kodzie SQL służą nam następujące oznaczenia : — lub /**/ . Bloki kodu poprzedzone w ten sposób nie będą wykonywane. Mogą nam one posłużyć do wpisania komentarza.
Komentarz do “Podstawy budowania zapytań SELECT w SQL Server”
Dziękuję bardzo za lekcję.