на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


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


SELECT  Продукт, ((Белки+Углев)*4.1+Жиры*9.3)

FROM    Продукты;

результат которого приведен на рис. 2.3,а.

а) Б) в)

Продукт

Продукт

Продукт

Говядина 1928.1 Говядина Калорий = 1928.1 Зелень 118.9
Судак 1523. Судак Калорий = 1523. Помидоры 196.8
Масло 8287.5 Масло Калорий = 8287.5 Морковь 349.6
Майонез 6464.7 Майонез Калорий = 6464.7 Лук 459.2
Яйца 1618.9 Яйца Калорий = 1618.9 Яблоки 479.7
Сметана 3011.4 Сметана Калорий = 3011.4 Молоко 605.1
Молоко 605.1 Молоко Калорий = 605.1 Кофе 892.4
Творог 1575. Творог Калорий = 1575. Судак 1523.
Морковь 349.6 Морковь Калорий = 349.6 Творог 1575.
Лук 459.2 Лук Калорий = 459.2 Яйца 1618.9
Помидоры 196.8 Помидоры Калорий = 196.8 Говядина 1928.1
Зелень 118.9 Зелень Калорий = 118.9 Сметана 3011.4
Рис 3512.1 Рис Калорий = 3512.1 Рис 3512.1
Мука 3556.7 Мука Калорий = 3556.7 Мука 3556.7
Яблоки 479.7 Яблоки Калорий = 479.7 Сахар 4091.8
Сахар 4091.8 Сахар Калорий = 4091.8 Майонез 6464.7
Кофе 892.4 Кофе Калорий = 892.4 Масло 8287.5

Рисунок 2.3

Фраза SELECT может включать не только выражения, но и отдельные числовые или текстовые константы. Следует отметить, что текстовые константы должны заключаться в апострофы ('). На рис. 2.3,б приведен результат запроса:

  SELECT        Продукт, 'Калорий =', ((Белки+Углев)*4.1+Жиры *9.3)

  FROM          Продукты;

А что произойдет, если какой-либо член выражения не определен, т.е. имеет значение NULL и каким образом появилось такое значение?

Если при загрузке строк таблицы в какой-либо из вводимых строк отсутствует значение для какого-либо столбца, то СУБД введет в такое поле NULL-значение. NULL-значение «придумано» для того, чтобы представить единым образом «неизвестные значения» для любых типов данных. Действительно, так как при вводе данных в столбец или их изменении СУБД запрещает ввод значений не соответствующих описанию данных этого столбца, то, например, нельзя использовать пробел для отсутствующего значения числа. Нельзя для этих целей использовать и ноль: нет месяца или дня недели равного нулю, да и для чисел ноль не может рассматриваться как неизвестное значение в одном месте и как известное – в другом. При выводе же NULL-значения на экран или печатающее устройство его код воспроизводится каким-либо специально заданным символом или набором символов: например, пробелом (если его нельзя перепутать с текстовым значением пробела) или сочетанием –0-.

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

Например, при выполнении запроса

SELECT  ПР, Цена, К_во, (Цена * К_во)

FROM    Поставки;

и разных «настройках» СУБД могут быть получены разные результаты:

ПР

Цена

К_во

(Цена*К_во)

ПР

Цена

К_во

(Цена*К_во)

9 -0- -0- -0- 9 -0- -0- 0.
11 1.5 50 75. 11 1.5 50 75.
12 3. 10 30. 12 3. 10 30.
15 2. 170 340. 15 2. 170 340.

Использование BETWEEN

С помощью BETWEEN … AND … (находится в интервале от … до …) можно отобрать строки, в которых значение какого-либо столбца находятся в заданном диапазоне.

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

Результат:

SELECT  Продукт, Белки

FROM    Продукты

WHERE   Белки BETWEEN 10 AND 50;

Продукт

Белки

Майонез 31.
Сметана 26.
Молоко 28.
Морковь 13.
Лук 17.

Можно задать и NOT BETWEEN (не принадлежит диапазону между), например:

Результат:

 

SELECT       Продукт, Белки, Жиры

FROM         Продукты    

WHERE        Белки NOT BETWEEN 10 AND 50   

AND          Жиры  100;

 

Продукт

Белки

Жиры

Говядина 189. 124.
Масло 60. 825.
Яйца 127. 115.

BETWEEN особенно удобен при работе с данными, задаваемыми интервалами, начало и конец которых расположен в разных столбцах.

Для примера воспользуемся таблицей «минимальных окладов» (табл. 2.4), величина которых непосредственно связана со студенческой стипендией. В этой таблице для текущего значения минимального оклада установлена запредельная дата окончания 9 сентября 9999 года.

Миноклад

Начало

Конец

2250 01-01-1993 31-03-1993
4275 01-04-1993 30-06-1993
7740 01-07-1993 30-11-1993
14620 01-12-1993 30-06-1994
20500 01-07-1994 09-09-9999

Рисунок 2.4

Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 1993/94 учебном году, то можно выдать запрос

SELECT  Начало, Миноклад

FROM    Миноклады

WHERE   Начало BETWEEN '1-9-1993' AND '31-8-1994'

и получить результат:

Начало

Миноклад

01-12-1993 14620
01-07-1994 20500

Отметим, что при формировании запросов значения дат следует заключать в апострофы, чтобы СУБД не путала их с выражениями и не пыталась вычитать из 31 значение 8, а затем 1994.

Для выявления всех значений минимальных окладов, которые существовали в 1993/94 учебном году, можно сформировать запрос

SELECT  *

FROM    Миноклады

WHERE   Начало  BETWEEN '1-9-1993' AND '31-8-1994'

OR      Конец   BETWEEN '1-9-1993' AND '31-8-1994'

Миноклад

Начало

Конец

7740 01/07/1993 30/11/1993
14620 01/12/1993 30/06/1994
20500 01/07/1994 09/09/9999

Наконец, для получения минимального оклада на 15-5-1994:

Результат:

SELECT       Миноклад

FROM         Миноклады

WHERE        '15-05-1994' BETWEEN Начало AND Конец

Миноклад

14620

Использование 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-значения при выводе на печать).

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

Результат:

ПР

 

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-значения.)

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

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

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

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

 

. . .

 

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.