Сайтостроительство


         

Инструкция SELECT - часть 2


Допустим, мы хотим посмотреть всех авторов сообщений во всех гостевых книгах: SELECT name, http, email FROM message ORDER BY name. Обратите внимание, что теперь нет фильтра - инструкции WHERE, т.к. нас интересуют абсолютно все сообщения, вернее их авторы. Сортировка стоит по имени автора сообщения. Нас интересует сортировка по алфавиту(от меньшего к большему), поэтому атрибут DESC, который означает сортировать в обратном порядке мы не указываем. Результатом этого запроса будет таблица:

Вы видите, что в результате мы получили повторяющиеся записи, т.к. один человек мог написать несколько сообщений. Теперь добавьте слово DISTINCT: SELECT DISTINCT name, http, email FROM message ORDER BY name, и вы увидите, что дублей больше нет.

Наиболее интересным и сложным является инструкция WHERE. Мы будем рассматривать инструкцию: SELECT gb_id as id, name, quantity as q, description, it_date FROM gb, т.е. выборку идентификаторов гостевых книг, владельцев, количества сообщений, выводимых на одну страницу, описание и дату. Некоторые условия не имеют какого-либо осмысленного описания. Они приводятся в демонстративных целях. Для задания условия можно использовать:

  • Операторы + - * / = < >= <> !=. WHERE (gb_id+2)/2=10.
  • Комбинирование условий AND OR NOT. WHERE gb_id=1 OR NOT quantity=10.
  • Диапазоны: BETWEEN, NOT BETWEEN. WHERE gb_id NOT BETWEEN 10 AND 15.
  • Списки: IN, NOT IN. WHERE name IN ('Игорь Тарасов', 'Евгений').
  • Нулевые значения: IS NULL, IS NOT NULL. WHERE name IS NULL
  • Поиск по подстрокам: LIKE, NOT LIKE. WHERE description LIKE '*книга*'. Звездочка обозначает любое количество символов. В большинстве баз данных используется %, а не звездочка, как в MS Access.

Выполните все приведенные примеры, поварьируйте параметры, чтобы лучше усвоить материал.




Содержание  Назад  Вперед