на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Web-доступ к базам данных - (реферат)
p>В предыдущем примере был выдан правильный, но не совсем удачный перечень основных продуктов: из него не были исключены дубликаты. Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить запрос ключевым словом DISTINCT (различный, различные), как показано в следующем примере:

    SELECT DISTINCT Основа
    FROM Блюда;
    Результат приведен на рис. 2. 2, в.
    Выборка вычисляемых значений

Из синтаксиса фразы SELECT видно, что в ней может содержаться не только перечень столбцов таблицы или символ *, но и выражения. Например, если нужно получить значение калорийности всех продуктов, то можно учесть, что при окислении 1 г углеводов или белков в организме освобождается в среднем 4. 1 ккал, а при окислении 1 г жиров – 9. 3 ккал, и выдать запрос:

    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. 2

Фраза 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. 3

Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 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

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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.