Active Server Pages,ActiveServerPages+,ASP,ASP+,aspx,VBScript,IIS,internet,intranet,programming,programowanie,XML,Extensible Markup Language,kurs,opis,HTML,Hypertext Markup Language,JScript,JavaScript,wyszukiwarka,znajdz,instrukcja,Stelmik,Stelmi,free,darmo,zadarmo,free,serwer,server,www,konta,PHP,perl,klient,uslugi,asp,sklep internetowy,sklepy internetowe,e-sklep,esklep,tworzenie stron internetowych,strony internetowe,strony www,tworzenie stron www,strony internetowe,web page,webpage,creating,Krzysztof Stelmach,Krzysztof,Stelmach,www.stelmach.info,www.asp.z.pl
 
Create your own social network!
IP: 18.205.109.152 
 
 SQL / KLAUZULA SELECT
Szukaj:  
Pon, 06.07.2020r.
KURSY » języki - serwer » SQL » Klauzula SELECT
 

Pobiera wiersze z bazy danych (jeden lub więcej) lub kolumny z jednej lub więcej tabel. Służy ona do wyszukiwania danych w bazie. Może być wykonywana samodzielnie lub stanowić część komend (np. CREATE, UPDATE, INSERT, itp.). Warunki muszą być podane w odpowiedniej kolejności jak to przedstawia poniższy schemat. Pełna składnia instrukcji SELECT jest złożona jednak główne elementy to:

1:
2:
3:
4:
5:
6:
7:
8:
9:
SELECT [ALL | DISTINCT] [TOP n [PERCENT] [WITH TIES]] lista_wyboru
[INTO nowa_tabela]
FROM tabele_zrodlowe
[WHERE warunki_wyszukiwania]
[ [GROUP BY [ALL] grupuj_wedlug_wyrazenia [,...n] ] [HAVING warunki_wyszukiwania]
[WITH { CUBE | ROLLUP }] ]
[ORDER BY { nazwy_kolumn [ASC | DESC] } [,...n] ]
[ COMPUTE { { AVG | COUNT | MAX | MIN | SUM } (wyrazenie) } [,...n] [ BY wyrazenie [,...n] ] ]
[ FOR BROWSE ]

W celu połączenia kilku rezultatów z różnych zapytań w jeden można użyć operatora UNION.

Linia pierwsza nakazuje wybrać (SELECT) kolumny znajdujące się w lista_wyboru. Element ALL i DISTINCT nakazują wybrać wszystkie wiersze (ALL) lub wiersze bez powtórzeń (DISTINCT). Domyślną wartością jest ALL. Słowo kluczowe TOP może być wykorzystane do tworzenia listy tylko n początkowych wierszy lub n procent początkowych wierszy zestawu wyników. Nie jest ono zgodne ze standardem ANSI. Klauzula WITH TIES może być wykorzystana do uwzględnienia "powiązań" w zestawie wyników. Powiązania powstają wówczas, gdy dwie lub kilka wartości jest takich samych jak ostatni wiersz zwrócony w klauzuli ORDER BY. Należy pamiętać, że klauzula WITH TIES może być użyta tylko wówczas, gdy istnieje klauzula ORDER BY. Linia 2 nie jest często spotykana, gdyż nakazuje pobrane rekordy umieścić w nowej tabeli o nazwie nowa_tabela. Linia 3 jest obowiązkowa i wskazuje z jakich tabel mają być pobierane kolumny. Linia 4 zawiera listę warunków (warunki_wyszukiwania), które mają być uwzględnione przy wyborze wierszy z bazy. Ta klauzula jest nieobowiązkowa, lecz często wykorzystywana w celu zawężenia ilości zwróconych rekordów. Linia 5 to klauzula grupująca. W przypadku, gdy w lista_wyboru znajdzie się funkcja agregująca należy użyć klauzuli GROUP BY. Funkcje agregujące to m.in.:

AVG - średnia wartość w wyrażeniu numerycznym
COUNT - liczba wartości w wyrażeniu
COUNT(*) - liczba wybranych wierszy
MAX - największa wartość w wyrażeniu
MIN - najmniejsza wartość w wyrażeniu
SUM - suma wartości w wyrażeniu numerycznym
STDEV - odchylenie statystyczne dla wszystkich wartości
STDEVP - odchylenie statystyczne dla populacji
VAR - wariacja statystyczna dla wszystkich wartości
VARP - wariacja statystyczna dla wszystkich wartości w populacji

Klauzula GROUP BY grupuje po wyrażeniu grupuj_wedlug_wyrazenia (wyrażeń może być więcej niż jedno). Dodatkowo można zawęzić wynik i użyć klauzuli HAVING, która podobnie jak WHERE posiada za sobą grupę warunków. Należy pamiętać, że HAVING dotyczy tylko i wyłącznie GROUP BY. Linia 6 odnosi się również do klauzuli GROUP BY. Operator CUBE może być wykorzystany do tworzenia i podsumowania wszystkich możliwych kombinacji grup na podstawie klauzuli GROUP BY, zaś operator ROLLUP umożliwia uzyskanie danych w standardowym formacie relacyjnym. Linia 7 to klauzula ORDER BY, która określa kolumny po których wynik ma być sortowany. Klauzula jest nieobowiązkowa. Elementy ASC i DESC określają kierunek sortowania (ASC - rosnąco, DESC - malejąco). Linia 8 zawiera klauzule COMPUTE lub COMPUTE BY, które generują dodatkowe wiersze podsumowań danych w formacie nierelacyjnym, który nie jest zgodny ze standardem ANSI. Format ten jest użyteczny do przeglądania, jednak dane nie są odpowiednio przystosowane do generowania zestawów wyników, które mogą być wykorzystane z innymi aplikacjami. Linia 9 ....

Przykłady:

1: SELECT TOP 5 WITH TIES orderid, productid, quantity FROM orders ORDER BY quantity DESC
2: SELECT COUNT(*) FORM orders
3: SELECT productid, SUM(quantity) AS total_quantity FROM order_hist GROUP BY productid HAVING SUM(quantity) >= 20
4: SELECT productid, orderid, SUM(quantity) AS total_quantity FROM order_hist GROUP BY productid, orderid WITH CUBE ORDER BY productid
5: SELECT productid, orderid, quantity FROM order_hist ORDER BY productid, orderid COMPUTE SUM(quantity)
6: SELECT productid, orderid, quantity FROM order_hist ORDER BY productid, orderid COMPUTE BY productid COMPUTE SUM(quantity)
 
do góry ^ 
Jesteś 2623788 odwiedzającym
 
 
Copyright © 2003-2020 Krzysztof Stelmach, Wszelkie prawa zastrzeżone.
 
System reklamy Test