Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Сортировка данных

Сортировка выбранных данных

     Из последнего урока вы узнали, что следующий SQL-оператор возвращает один столбец из таблицы базы данных. Но взгляните на результат: данные выводятся в полном беспорядке.

SELECT prod_name FROM Products;
prod_name
--------------------------------
Fish bean bag toy 
Bird bean bag toy
Rabbit bean bag toy 
8 inch teddy bear 
12 inch teddy bear 
18 inch teddy bear 
Raggedy Ann 
King doll 
Queen doll

     Вообще-то выбранные данные отображаются не в полном беспорядке. При отсутствии сортировки данные обычно выводятся в том порядке, в котором они находятся в таблице. Это может быть порядок, в котором они изначально добавлялись в таблицу. Однако если данные впоследствии обновлялись или удалялись, порядок будет зависеть от того, как СУБД будет использовать оставшееся свободное место. В результате вы не можете (и не должны) полагаться на порядок сортировки, если вы не контролируете его. В теории реляционных баз данных говорится, что последовательность выбранных данных не имеет смысла, если не был специально указан порядок сортировки.

Предложение

SQL-операторы завершаются предложениями, одни из которых обязательны, другие — нет. Предложение обычно состоит из ключевого слова и предоставляе-мых данных. Примером может служить предложение FROM оператора SELECT, которое мы использовали в предыдущем разделе.

     Для точной сортировки выбранных при помощи оператора SELECT данных используется предложение ORDER BY. В этом предложении указывается имя одного или нескольких столбцов, по которым и сортируются результаты. Взгляните на следующий пример:

SELECT prod_name FROM Products ORDER BY prod_name;

     Это выражение идентично предыдущему, за исключением предложения ORDER BY, которое указывает системе управления базой данных отсортировать данные в алфавитном порядке по столбцу prod_name. Результат применения этого выражения будет следующим:

prod_name 
---------------------------
12 inch teddy bear 
18 inch teddy bear 
8 inch teddy bear 
Bird bean bag toy
Fish bean bag toy
King doll
Queen doll
Rabbit bean bag toy
Raggedy Ann

 

Местоположение предложения ORDER BY

При использовании предложения ORDER BY убедитесь, что оно указано последним в операторе SELECT. Использование предложений в неправильном порядке ведет к появлению сообщений об ошибках.

Сортировка по невыбранным столбцам

Чаще всего столбцы, используемые в предложении ORDER BY, отображаются на экране. Но это не всегда бывает так, данные могут сортироваться и по столбцу, который не выбирается этим запросом.