Программирование >>  Программный интерфейс приложений 

1 ... 19 20 21 [ 22 ] 23 24 25 ... 264


mysql> SELECT last naine, first naine, state FROM president ->WHERE state=VA OR state=MA;

1 last name

first name

state 1

1 Washington

George

VA 1

1 Adams

John

MA 1

1 Jefferson

Thomas

VA 1

1 Madison

James

VA 1

1 Monroe

James

VA 1

1 Adams

John Qumcy

MA 1

1 Harrison

William H.

VA 1

1 Tyler

John

VA 1

1 Taylor

Zachary

VA 1

1 Wilson

Woodrow

VA 1

1 Kennedy

John F

MA 1

1 Bush

George W.

MA 1 f-+

Это TO, что требуется понимать в любом случае как тогда, когда человек пишет запрос сам для себя, так и тогда, когда запрос пишется для заказчика. Я советую сначала точно определить, чего они хотят. Например, вышеуказанный запрос проше сформулировать следуюшим образом: Выбрать президентов, родившихся в штате Вирджиния или в штате Мэриленд .

Значение null

null - это особенное значение, потому что оно обозначает ситуацию, когда нет значения , его нельзя выбрать как обычное значение, его нельзя сравнить с другим значением, так как это можно сделать с обычными значениями. При сравнении пустого значения с помошью обычного арифметического оператора сравнения будет получен неопределенный результат.

mysql> SELECT mjbl. < О, mjbl. = О, NULL != О, №ЛЛ. > О

+-+--+-

NULL < О

NULL = О

NULL != О

NULL

NULL I

NULL

NULL > 0

NULL I -+

Более того, нельзя сравнить два значения null друг с другом. Это естественно - результат сравнения двух неизвестных значений сам не может быть известен.

mysql> SELECT NULL = NULL, NULL != NULL

I NULL = NULL NULL != NULL

NULL I

NULL



Для выборки пустых значений требуется особенный синтаксис. Вместо использования символов = или != для проверки равенства или неравенства нужно задавать is null или is not null.

Например, мыприсвоили дате смерти живых президентов значение null. Поэтому выбрать их будет проще всего, сделав следующий запрос.

mysql> SELECT last name, first name FRCM president WHERE death IS NULL;

1 last name

1 first name I

1 Ford

1 Gerald R. 1

1 Carter

1 James E.

1 Reagan

1 Ronald W. 1

1 Bush

1 George W.

1 Clinton

1 William J. H-+

Поиск имен, имеющих суффикс, можно осуществить, пользуясь выражением 13 not null.

mysql> SELECT last name, first name, suffix

-> FROM president WHERE suffix IS NOT NXJLL;

1 last name

1 first name

suffix

1 Carter

1 James E.

В СУБД MySQL версии 2.23 есть уникальный оператор сравнения < = > , работающий даже при сравнении пустых значений. Два предыдущих запроса можно изменить, воспользовавшись этим оператором.

mysql> SELECT last name, first name FROM president WHERE death < = > NULL;

+-H-+

I last name I first name I +-+-+

Ford

Carter

Reagan

Bush

Clinton

Gerald R. James E. Ronald W. George W. William J.

mysql> SELECT last name, first name, suffix

-> FROM president WHERE suffix < = > NULL;

1 last name

1 first name

1 suffix

i Carter

1 James E.

1 Jr.



Сортировка результатов запроса

Очень скоро пользователь замечает, что в результате команды select * from tbl name он получает выборку данных из нужной таблицы в том же порядке, в котором она была загружена. Нельзя полностью полагаться, что данные в таблице всегда будут храниться в нужном порядке. В процессе работы с таблицей записи модифицируются, удаляются и добавляются. Удаление записей оставляет дыры неиспользуемого пространства, которые СУБД MySQL попытается заполнить позже по мере добавления записей в таблицу.

В принципе при выборке данных сервер не гарантирует их порядок. Для их сортировки предназначено предложение order by.

mysql> SELECT last ncuiie, first namG, suffix FROM president -> ORDER BY last name;

1 last name

1 first name

1 Adams

1 John

1 Adams

1 John Quincy

1 Arthur

1 Chester A.

1 Buchanan

1 James

Можно задать порядок сортировки столбца по возрастанию или убыванию с ключевыми словами asc или desc. Например, для сортировки имен президентов в обратном (убывающем) порядке можно сделать такой запрос.

mysql> SELECT last name, first name, suffix FROM president -> ORDER BY last name DESC;

1 last name

I--+

first name

1 Wilson

Woodrow 1

1 Washington

George I

1 Van Buren

Martin i

1 Tyler

John 1

По умолчанию принимается порядок сортировки по возрастанию.

При сортировке столбца, который может содержать пустые значения, они будут поставлены первыми при сортировке по возрастанию и последними при сортировке по убыванию.

Сортировка может задаваться по нескольким столбцам, при этом любой столбец может быть отсортирован независимо от других столбцов как в возрастающем порядке, так и в убывающем. Следующий запрос производит выборку строк из таблицы president, отсортированных в убывающем порядке по названию щтата, где родились президенты, и по фамилии в убывающем порядке внутри каждого щтата.



1 ... 19 20 21 [ 22 ] 23 24 25 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика