Рефераты. Web-доступ к базам данных - (реферат)

p>[таблица. ]* | значение | SQL_функция | системная_переменная где значение – это:

    [таблица. ]столбец | (выражение) | константа | переменная
    Синтаксис выражений имеет вид

( * … )

    а синтаксис SQL_функций – одна из следующих конструкций:

COUNT ( [[ALL]|DISTINCT][таблица. ]столбец )

    SUM ( [ALL] выражение )
    COUNT(*)
    Фраза WHERE включает набор условий для отбора строк:
    WHERE [NOT] WHERE_условие [[AND|OR][NOT] WHERE_условие]…
    где WHERE_условие – одна из следующих конструкций:

значение < значение

    значение_1 [NOT] BETWEEN значение_2 AND значение_3

значение [NOT] IN ( константа [, константа]… )

    значение IS [NOT] NULL

[таблица. ]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']

    EXISTS ( подзапрос )

Кроме традиционных операторов сравнения (= | <> | < | | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами: AND

когда должны удовлетворяться оба разделяемых с помощью AND условия; OR

когда должно удовлетворяться одно из разделяемых с помощью OR условий; AND NOT

когда должно удовлетворяться первое условие и не должно второе; OR NOT

когда или должно удовлетворяться первое условие или не должно удовлетворяться второе, причем существует приоритет AND над OR (сначала выполняются все операции AND и только после этого операции OR). Для получения желаемого результата WHERE условия должны быть введены в правильном порядке, который можно организовать введением скобок. При обработке условия числа сравниваются алгебраически – отрицательные числа считаются меньшими, чем положительные, независимо от их абсолютной величины. Строки символов сравниваются в соответствии с их представлением в коде, используемом в конкретной СУБД, например, в коде ASCII. Если сравниваются две строки символов, имеющих разные длины, более короткая строка дополняется справа пробелами для того, чтобы они имели одинаковую длину перед осуществлением сравнения. Наконец, синтаксис фразы GROUP BY имеет вид

GROUP BY [таблица. ]столбец [, [таблица. ]столбец] … [HAVING фраза]

GROUP BY инициирует перекомпоновку формируемой таблицы по группам, каждая из которых имеет одинаковое значение в столб-цах, включенных в перечень GROUP BY. Далее к этим группам применяются агрегирующие функции, указанные во фразе SELECT, что приводит к замене всех значений группы на единственное значение (сумма, количество и т. п. ). С помощью фразы HAVING (синтаксис которой почти не отличается от синтаксиса фразы WHERE)

    HAVING [NOT] HAVING_условие [[AND|OR][NOT] HAVING_условие]…

можно исключить из результата группы, не удовлетворяющие заданным условиям:

значение = ( подзапрос )

     SQL_функция_1 [NOT] BETWEEN

значение_2 AND значение_3

SQL_функция [NOT] IN ( подзапрос )

     SQL_функция IS [NOT] NULL

[таблица. ]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']

    EXISTS ( подзапрос )
    2. 2. 2. Запросы с использованием единственной таблицы.
    Выборка без использования фразы WHERE
    Простая выборка
    Запрос выдать название, статус и адрес поставщиков
    SELECT Название, Статус, Адрес
    FROM Поставщики;
    дает результат, приведенный на рис. 2. 2, а.

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

    SELECT ПС, Название, Статус, Город, Адрес, Телефон
    FROM Поставщики;
    или использовать его более короткую нотацию:
    SELECT *
    FROM Поставщики;

Здесь “звездочка” (*) служит кратким обозначением всех имен полей в таблице, указанной во фразе FROM. При этом порядок вывода полей соответствует порядку, в котором эти поля определялись при создании таблицы. Еще один пример. Выдать основу всех блюд:

    SELECT Основа
    FROM Блюда;
    дает результат, показанный на рис. 2. 2, б.
    а)
    б)
    в)
    Название
    Статус
    Адрес
    Основа
    Основа
    Овощи
    Кофе
    Мясо
    Крупа
    СЫТНЫЙ
    Рынок
    Сытнинская, 3
    Овощи
    Молоко
    ПОРТОС
    Кооператив
    Садовая, 27
    Рыба
    Мясо
    ШУШАРЫ
    Совхоз
    Новая, 17
    Рыба
    Овощи
    ТУЛЬСКИЙ
    Универсам
    Тульская, 3
    Мясо
    Рыба
    УРОЖАЙ
    Коопторг
    Песчаная, 19
    Молоко
    Фрукты
    ЛЕТО
    Агрофирма
    Пулковское ш. ,8
    Молоко
    Яйца
    ОГУРЕЧИК
    Ферма
    Укмерге, 15
    …
    КОРЮШКА
    Кооператив
    Нарвское ш. , 64
    Кофе
    Рисунок 1. 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. 2

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.