Reklama
Wizyt
Dzisiaj: 2Wszystkich: 654403

Instrukcja SELECT

Technikum » SBD » SQL » Manipulowanie danymi » Instrukcja SELECT

 

Instrukcja SELECT określa, jakie dane zostaną zwrócone w wyniku jej wykonania. Ogólną postać instrukcji SELECT definiującej kwerendę wybierającą w programie Access poznaliśmy już wcześniej. Jej najprostsza postać dla serwera SQL Server wygląda następująco:


gdzie:

IDENTITYCOL zwraca wartość kolumny IDENTITY,
ROWGUIDCOL zwraca wartość globalnego identyfikatora.


Przykład



W podanym przykładzie instrukcja SELECT zwróci zawartość pól nazwisko i imie z tabeli Klient.
Wybieranie niektórych kolumn z tabeli nazywane jest projekcją lub selekcją pionową tabeli.
W poleceniu SELECT zamiast wypisywania listy wszystkich pól tabeli można użyć symbolu *.

Przykład
Chcemy otrzymać wszystkie kolumny tabeli Klient.


Może się zdarzyć, że w wyniku zastosowania symbolu * otrzymamy błędne wyniki. Sytuacja taka ma miejsce, gdy ktoś inny zmienia kolejność kolumn lub dodaje kolumnę do tabeli albo ją usuwa. Jeżeli chcemy odczytać zawartość tylko niektórych kolumn, nie powinniśmy definiować klauzuli odczytującej całą tabelę.

 

Klauzula DISTINCT


Klauzula DISTINCT eliminuje z wyświetlania wyniku zapytania powtarzające się wiersze.

Przykład
Chcemy otrzymać informację o tym, z jakich miejscowości pochodzą klienci naszej bazy danych.

 

 

Wyrażenia w instrukcji SELECT


W instrukcji SELECT oprócz nazw kolumn mogą występować wyrażenia. Tworzone są one z nazw kolumn, funkcji systemowych, stałych i operatorów i muszą zwracać pojedyncze wartości.

Przykład
Chcemy obliczyć marżę narzuconą na książki. Marża wynosi 7% ceny książki.


Wynik zostanie obliczony dla wszystkich wierszy tabeli Ksiazki.

Przykład
Chcemy uzyskać ostateczną cenę książki, uwzględniającą marżę.

 


Przykład
Chcemy połączyć dane klienta z kilku kolumn tabeli Klient.

 

 

Sortowanie


W celu posortowania danych należy dodać klauzulę ORDER BY. W klauzuli umieszcza się nazwy lub numery kolumn, według których nastąpi sortowanie.

Przykład

Książki zostaną posortowane według kolumny tytul.

Przykład


Książki zostaną posortowane według kolumny cena.


Domyślnie dane są sortowane rosnąco. Do tego rodzaju sortowania można użyć również słowa kluczowego ASC. Aby posortować dane malejąco, należy po nazwie lub jej numerze użyć słowa kluczowego DESC.

Przykład


Książki zostaną ustawione w kolejności od najdroższej do najtańszej.
Dane mogą być sortowane według wielu kolumn. Klauzule definiujące sposób sortowa¬nia są od siebie niezależne. Można również odwoływać się do kolumn niewymienionych w klauzuli SELECT.


Przykład


Sortowanie zwykle wydłuża czas wykonywania zapytania, dlatego jeżeli wynik zapytania nie musi być posortowany, należy unikać używania klauzuli ORDER BY.

 

Wybieranie wierszy — klauzula WHERE


Projektując zapytanie, najczęściej chcemy ograniczyć wynik do interesujących nas danych. Do zwracania tylko wybranych wierszy służy poznana już klauzula WHERE.
Wybieranie niektórych wierszy z tabeli nazywane jest selekcją rekordów. Klauzula WHERE musi wystąpić bezpośrednio po klauzuli FROM.

 

Przykład


lub


Przykład
Chcemy odczytać nazwiska klientów zaczynające się na literę A.



Przykład
Chcemy odczytać nazwiska klientów, którzy nie podali swojego adresu e-mail.


Przykład
Złożony warunek logiczny:


W wyniku zostaną odczytane nazwiska i imiona klientów, którzy mieszkają w Warszawie i nie podali swojego adresu e-mail.
Klauzula WHERE może być używana na podobnych zasadach w instrukcjach UPDATE oraz DELETE. Składnia jej jest we wszystkich przypadkach taka sama.

 

Klauzula TOP


Klauzula TOP służy do wybrania określonej liczby wierszy. Liczba wierszy może być podana jawnie lub procentowo. Klauzula TOP musi wystąpić bezpośrednio po instrukcji SELECT przed nazwami kolumn.


Przykład



Zostanie zwrócony wiersz opisujący najdroższą książkę w bazie.
Zwykle razem z klauzulą TOP występuje klauzula ORDER BY. Bez niej klauzula TOP jest właściwie bezużyteczna, ponieważ to klauzula ORDER BY określa kolejność wierszy wyświetlanych w wyniku zapytania.

Otrzymany wynik jest poprawny tylko wtedy, gdy w bazie danych jest tylko jedna książka z tą ceną. A jeżeli książek z tą samą ceną jest więcej?
Wtedy można użyć rozszerzonej składni klauzuli TOP w postaci: TOP n WITH TIES. W wyniku zostaną zwrócone wszystkie wiersze z tą samą najwyższą ceną książki. Użycie rozszerzonej składni klauzuli TOP pokazuje przykład podany niżej.


Przykład


Zostaną zwrócone wszystkie wiersze opisujące książki o tej samej najwyższej cenie.

 

Reklama