Базы данных. Краморенко Н.В. - 69 стр.

UptoLike

Составители: 

70
отбора строк формируется из одного или нескольких условий, соединенных логическими
операторами:
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 | SQL_функция_1} [NOT] BETWEEN
{значение_2 | SQL_функция_2} AND {значение_3 | SQL_функция_3}
{значение | SQL_функция} [NOT] IN { ( константа [,константа]... )
| ( подзапрос ) }
{значение | SQL_функция} IS [NOT] NULL
[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']
EXISTS ( подзапрос )
4.1.2. Запросы с использованием одной таблицы
1. Простая выборка (выбрать полную информацию о продуктах с сортировкой по алфавиту)
SELECT *
FROM Продукты
ORDER BY Продукт;
Здесь "звездочка" (*) служит кратким обозначением всех имен полей в таблице, указанной во
фразе FROM. При этом порядок вывода полей соответствует порядку, в котором эти поля
определялись при создании таблицы.
Запрос выдает результат, указанный на Рис. 3-9, б.
2. Исключение дубликатов (выдать перечень проданных продуктов без повторений)
Этот запрос является аналогом операции проекции реляционной алгебры.
Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить
запрос ключевым словом DISTINCT (различный, различные), как показано в следующем примере:
SELECT DISTINCT КодПрод
FROM Продажи;
Результат запроса приведен на Рис. 3-10, б.
отбора строк формируется из одного или нескольких условий, соединенных логическими
операторами:
        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 | SQL_функция_1} [NOT] BETWEEN
              {значение_2 | SQL_функция_2} AND {значение_3 | SQL_функция_3}
       {значение | SQL_функция} [NOT] IN { ( константа [,константа]... )
              | ( подзапрос ) }
       {значение | SQL_функция} IS [NOT] NULL
       [таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']
       EXISTS ( подзапрос )

4.1.2. Запросы с использованием одной таблицы
1. Простая выборка (выбрать полную информацию о продуктах с сортировкой по алфавиту)
       SELECT *
       FROM Продукты
       ORDER BY Продукт;
       Здесь "звездочка" (*) служит кратким обозначением всех имен полей в таблице, указанной во
фразе FROM. При этом порядок вывода полей соответствует порядку, в котором эти поля
определялись при создании таблицы.
       Запрос выдает результат, указанный на Рис. 3-9, б.

2. Исключение дубликатов (выдать перечень проданных продуктов без повторений)
       Этот запрос является аналогом операции проекции реляционной алгебры.
       Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить
запрос ключевым словом DISTINCT (различный, различные), как показано в следующем примере:
       SELECT DISTINCT КодПрод
       FROM Продажи;
       Результат запроса приведен на Рис. 3-10, б.

                                               70