Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Организация Web-доступа к базам данных с использованием SQL-запросов

               Использование IN
      Выдать сведения о блюдах на основе яиц, крупы и овощей

SELECT      *
FROM  Блюда
WHERE Основа IN (Яйца Крупа Овощи);
Результат:
|БЛ|Блюдо                  |В|Основа  |Выход |Труд |
|1 |Салат летний           |З|Овощи   |200.  |3    |
|3 |Салат витаминный       |З|Овощи   |200.  |4    |
|16|Драчена                |Г|Яйца    |180.  |4    |
|17|Морковь с рисом        |Г|Овощи   |260.  |3    |
|19|Омлет с луком          |Г|Яйца    |200.  |5    |
|20|Каша рисовая           |Г|Крупа   |210.  |4    |
|21|Пудинг рисовый         |Г|Крупа   |160.  |6    |
|23|Помидоры с луком       |Г|Овощи   |260.  |4    |


      Рассмотренная форма IN  является  в  действительности  просто  краткой
записью последовательности отдельных сравнений, соединенных операторами  OR.
Предыдущее предложение эквивалентно такому:

SELECT      *
FROM  Блюда
WHERE Основа=Яйца OR Основа=Крупа OR Основа=Овощи;



                             Использование LIKE
Выдать перечень салатов
|                     |Результат:               |       |
|                     |Блюдо                    |
|SELECT Блюдо         |                         |
|FROM Блюда           |                         |
|WHERE Блюдо LIKE     |                         |
|'Салат%';            |                         |
|                     |Салат летний             |
|                     |Салат мясной             |
|                     |Салат витаминный         |
|                     |Салат рыбный             |


   Обычная  форма  «имя_столбца  LIKE   текстовая_константа»   для   столбца
текстового  типа  позволяет  отыскать  все  значения   указанного   столбца,
соответствующие  образцу,  заданному  «текстовой_константой».  Символы  этой
константы интерпретируются следующим образом:
символ _ (подчеркивание) – заменяет любой одиночный символ,
символ % (процент) – заменяет любую последовательность из N символов (где N
может быть нулем),
все другие символы означают просто сами себя.
   Следовательно, в приведенном примере SELECT  будет  осуществлять  выборку
записей из таблицы Блюда, для которых значение в  столбце  Блюдо  начинается
сочетанием 'Салат' и содержит любую последовательность  из  нуля  или  более
символов, следующих за сочетанием 'Салат'. Если бы среди блюд были  «Луковый
салат», «Фруктовый салат» и  т.п.,  то  они  не  были  бы  найдены.  Для  их
отыскания надо изменить фразу WHERE:

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

WHERE Блюдо LIKE '%Салат%'
Это позволит отыскать все салаты.
             Вовлечение неопределенного значения (NULL-значения)
      Если при  загрузке  данных  не  введено  значение  в  какое-либо  поле
таблицы, то СУБД поместит в него NULL-значение. Аналогичное  значение  можно
ввести  в  поле  таблицы,  выполняя  операцию  изменения  данных.  Так,  при
отсутствии сведений о наличии у поставщиков судака и моркови в столбцы  Цена
и К_во соответствующих строк таблицы Поставки  вводится  NULL  и  там  будет
храниться код NULL-значения,  а  не  0,  0.  Или  пробел.  (Отметим,  что  в
распечатке таблицы Поставки в этих местах расположен  пробел,  установленный
в СУБД для представления NULL-значения при выводе на печать).
В этом случае для выявления названий продуктов,  отсутствующих  в  кладовой,
шеф-повар может дать запрос
|Результат:               |ПР                |
|S|                          |2                 |
|E|                          |9                 |
|L|                          |                  |
|E|                          |                  |
|C|                          |                  |
|T|                          |                  |
|D|                          |                  |
|I|                          |                  |
|S|                          |                  |
|T|                          |                  |
|I|                          |                  |
|N|                          |                  |
|C|                          |                  |
|T|                          |                  |
|П|                          |                  |
|Р|                          |                  |
| |                          |                  |
|F|                          |                  |
|R|                          |                  |
|O|                          |                  |
|M|                          |                  |
|Н|                          |                  |
|а|                          |                  |
|л|                          |                  |
|и|                          |                  |
|ч|                          |                  |
|и|                          |                  |
|е|                          |                  |
| |                          |                  |
|W|                          |                  |
|H|                          |                  |
|E|                          |                  |
|R|                          |                  |
|E|                          |                  |
|К|                          |                  |
|_|                          |                  |
|в|                          |                  |
|о|                          |                  |
|I|                          |                  |
|S|                          |                  |
|N|                          |                  |
|U|                          |                  |
|L|                          |                  |
|L|                          |                  |
|;|                          |                  |


      Естественно, что для выявления  продуктов,  существующих  в  кладовой,
следует дать запрос

SELECT      DISTINCT ПР
FROM  Наличие
WHERE К_во IS NOT NULL;
Использование условий

столбец IS NULL  и  столбец IS NOT NULL
вместо, например,

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

                           Выборка с упорядочением
      Простейший вариант этой  фразы  –  упорядочение  строк  результата  по
значению одного из столбцов с указанием порядка сортировки  или  без  такого
указания. (По умолчанию строки будут  сортироваться  в  порядке  возрастания
значений в указанном столбце.)
      Например, выдать  перечень  продуктов  и  содержание  в  них  основных
веществ в порядке убывания содержания белка
|               |Продукт|Белки |Жиры     |Углев    |
|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      |
|               |. |               | |      |     |       |
|               |. |               | |      |     |       |
|               |. |               | |      |     |       |

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

SELECT      Продукт, ((Белки+Углев)*4.1+Жиры*9.3
Пред.678910След.
скачать работу

Организация Web-доступа к базам данных с использованием SQL-запросов

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ