Организация Web-доступа к базам данных с использованием SQL-запросовРефераты >> Программирование и компьютеры >> Организация Web-доступа к базам данных с использованием SQL-запросов
Рисунок 2.2
Исключение дубликатов
В предыдущем примере был выдан правильный, но не совсем удачный перечень основных продуктов: из него не были исключены дубликаты. Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить запрос ключевым словом 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.3
Фраза SELECT может включать не только выражения, но и отдельные числовые или текстовые константы. Следует отметить, что текстовые константы должны заключаться в апострофы ('). На рис. 2.3,б приведен результат запроса:
SELECT Продукт, 'Калорий =', ((Белки+Углев)*4.1+Жиры *9.3)
FROM Продукты;
А что произойдет, если какой-либо член выражения не определен, т.е. имеет значение NULL и каким образом появилось такое значение?
Если при загрузке строк таблицы в какой-либо из вводимых строк отсутствует значение для какого-либо столбца, то СУБД введет в такое поле NULL-значение. NULL-значение «придумано» для того, чтобы представить единым образом «неизвестные значения» для любых типов данных. Действительно, так как при вводе данных в столбец или их изменении СУБД запрещает ввод значений не соответствующих описанию данных этого столбца, то, например, нельзя использовать пробел для отсутствующего значения числа. Нельзя для этих целей использовать и ноль: нет месяца или дня недели равного нулю, да и для чисел ноль не может рассматриваться как неизвестное значение в одном месте и как известное – в другом. При выводе же NULL-значения на экран или печатающее устройство его код воспроизводится каким-либо специально заданным символом или набором символов: например, пробелом (если его нельзя перепутать с текстовым значением пробела) или сочетанием –0-.