Sortowanie – order by…



Marcinie, homo sapiens jak już widzi tabelę to automatycznie spodziewa się, iż jest ona jakoś posortowana np. alfabetycznie, od najniższej ceny do najwyższej – rzadko kto chce na początku widzieć najwyższą :-) 

A serwer bazy danych w swoich tabelach… okazuje się, iż nie przechowuje rekordów w sposób uporządkowany, dla serwera danych kolejność rekordów nie ma znaczenia i tyle.

Tu pozwolę sobie wkleić obrazek ze wskazówką zaczerpniętą z polecanej już przeze mnie książki dostępnej tutaj: http://helion.pl/ksiazki/praktyczny-kurs-sql-wydanie-iii-danuta-mendrala-marcin-szeliga,pksql3.htm 



Czyli wynik zapytania jest sortowany dla użytkownika, a sortuje się go poprzez dodanie na końcu zapytania klauzuli ORDER BY …. W miejsce kropek najlepiej podać nazwę pola/kolumny według, której należy sortować. Możesz podać więcej pół. Domyślnie następuje sortowanie rosnąco, dodanie po nazwie pola DESC spowoduj zmianę sortowania, czyli malejąco.

Zamiast nazwy pola/kolumny można podawać numer  pola z zapytania, ale tu zdarzają się niespodzianki, szczególnie kiedy pracujesz nad tym co w sekcji pomiędzy SELECT …. a FROM, po prostu pole wcale nie musi być pierwsze bo stanie się drugie, kiedy coś sobie dopiszesz, a zapomnisz poprawić numer po ORDER BY.


Czyli: 

SELECT
imie, nazwisko, adres 
from ADRES WHERE imie=’Jan’ 
ORDER BY nazwisko; 

Spowoduje wybranie  z bazy danych i posortowanie według nazwiska, można wskazać numer pola tj. 2. Sortowanie danych zapisanych fizycznie w bazie odbywa się poprzez zakładanie indeksów i jest to realizowane, bo przyspiesza dostęp do danych, ale o tym innym razem.


W.

 

Brak komentarzy:

Prześlij komentarz