Создание запросов в СУБД Access
Рефераты >> Программирование и компьютеры >> Создание запросов в СУБД Access

2.3.4. Использование LIKE

Выдать перечень салатов

 

Результат:

SELECT БлюдоFROM БлюдаWHERE Блюдо LIKE 'Салат%';    

Блюдо

 

Салат летний

 

Салат мясной

 

Салат витаминный

 

Салат рыбный

   

Обычная форма "имя_столбца LIKE текстовая_константа" для столбца текстового типа позволяет отыскать все значения указанного столбца, соответствующие образцу, заданному "текстовой_константой". Символы этой константы интерпретируются следующим образом:

  • символ _ (подчеркивание) – заменяет любой одиночный символ,
  • символ % (процент) – заменяет любую последовательность из N символов (где N может быть нулем),
  • все другие символы означают просто сами себя.

Следовательно, в приведенном примере SELECT будет осуществлять выборку записей из таблицы Блюда, для которых значение в столбце Блюдо начинается сочетанием 'Салат' и содержит любую последовательность из нуля или более символов, следующих за сочетанием 'Салат'. Если бы среди блюд были "Луковый салат", "Фруктовый салат" и т.п., то они не были бы найдены. Для их отыскания надо изменить фразу WHERE: WHERE Блюдо LIKE '%салат%'

или при отсутствии различий между малыми и большими буквами (такую настройку допускают некоторые СУБД): WHERE Блюдо LIKE '%Салат%'

Это позволит отыскать все салаты.

2.3.5. Вовлечение неопределенного значения (NULL-значения)

Как было рассказано в п.2.2.3, если при загрузке данных не введено значение в какое-либо поле таблицы, то СУБД поместит в него NULL-значение. Аналогичное значение можно ввести в поле таблицы, выполняя операцию изменения данных. Так, при отсутствии сведений о наличии у поставщиков судака и моркови в столбцы Цена и К_во соответствующих строк таблицы Поставки вводится NULL и там будет храниться код NULL-значения, а не 0, 0. или пробел. (Отметим, что в распечатке таблицы Поставки рис.1.1 в этих местах расположен пробел, установленный в СУБД для представления NULL-значения при выводе на печать).

В этом случае для выявления названий продуктов, отсутствующих в кладовой, шеф-повар может дать запрос

 

Результат:

ПР

SELECT DISTINCT ПРFROM Наличие WHERE К_во IS NULL;

2 9

Естественно, что для выявления продуктов, существующих в кладовой, следует дать запрос SELECT DISTINCT ПРFROM НаличиеWHERE К_во IS NOT NULL;

Использование условий столбец IS NULL и столбец IS NOT NULL

вместо, например, столбец = NULL и столбец <> NULL

связано с тем, что ничто - и даже само NULL-значение - не считается равным другому NULL-значению. (Несмотря на это, два неопределенных значения рассматриваются, однако, как дубликаты друг друга при исключении дубликатов, и предложение SELECT DISTINCT даст в результате не более одного NULL-значения.)

2.4. Выборка с упорядочением

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

Например, выдать перечень продуктов и содержание в них основных веществ в порядке убывания содержания белка

 

Результат:

SELECT Продукт, Белки, Жиры, УглевFROM ПродуктыORDER BY Белки DESC;

Продукт

Белки

Жиры

Углев

Судак

190.

80.

0.

Говядина

189.

124.

0.

Творог

167.

90.

13.

Яйца

127.

115.

7.

Кофе

127.

36.

9.

Мука

106.

13.

732.

. . .

     
       

При включении в список ORDER BY нескольких столбцов СУБД сортирует строки результата по значениям первого столбца списка пока не появится несколько строк с одинаковыми значениями данных в этом столбце. Такие строки сортируются по значениям следующего столбца из списка ORDER BY и т.д.

Например, выдать содержимое таблицы Блюда, отсортировав ее строки по видам блюд и основе:

 

Результат:

SELECT *FROM БлюдаORDER BY В Основа;

БЛ

Блюдо

В

Основа

Выход

Труд

21

Пудинг рисовый

Г

Крупа

160.

6

20

Каша рисовая

Г

Крупа

210.

4

18

Сырники

Г

Молоко

220.

4

. . .

16

Драчена

Г

Яйца

180.

4

28

Крем творожный

Д

Молоко

160.

4

. . .

26

Яблоки печеные

Д

Фрукты

160.

3

7

Сметана

З

Молоко

140.

1

8

Творог

З

Молоко

140.

2

2

Салат мясной

З

Мясо

200.

4

6

Мясо с гарниром

З

Мясо

250.

3

1

Салат летний

З

Овощи

200.

3

. . .

     
       


Страница: