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