Podstawy budowania zapytań SELECT w SQL Server

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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentarz do “Podstawy budowania zapytań SELECT w SQL Server”