Главная страница
Навигация по странице:

  • Предложение FROM

  • Предложение

  • Вычисления и подведение итогов в запросах

  • Использование итоговых функций

  • Управление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника. Управление данными 3 сем. Управление данными


    Скачать 0.55 Mb.
    НазваниеУправление данными
    АнкорУправление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника
    Дата22.10.2022
    Размер0.55 Mb.
    Формат файлаdocx
    Имя файлаУправление данными 3 сем.docx
    ТипДокументы
    #748915
    страница4 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Построение запросов на выборку данных

    Предложение SELECT - производит выборки данных из таблиц и преобразовывает к нужному виду полученные результаты.

    Формат:

    SELECT [ALL | DISTINCT ] {*|[имя_столбца

      [AS          новое_имя]]} [,...n]

      FROM  имя_таблицы [[AS] псевдоним] [,...n]

      [WHERE  <условие_поиска>]

      [GROUP BY  имя_столбца [,...n]]

      [HAVING <критерии выбора групп>]

      [ORDER BY имя_столбца [,...n]]

    Если имя поля сод. Пробелы или разделители, его заключить в квадратные скобки. Символом * можно выбрать все поля, вместо имени поля применить выражение из неск. имен. Если в ряде таблиц есть одноименные поля, то в списке полей используется полная спецификация поля (Имя_таблицы.Имя_поля).

    Предложение FROM - задает имена таблиц и просмотров, которые содержат поля, перечисленные в операторе SELECT. Последовательность обработки оператора SELECT:

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

    Только SELECT и FROM явл. обязательными. Предикат ALL задает включение в выходной набор всех дубликатов, отобранных по критерию WHERE. Нет необходимости указывать ALL явно, значение действует по умолчанию.

    Пример (составить список всех фирм):

    SELECT ALL Клиент.Фирма FROM Клиент

     

    Или (что эквивалентно)

     

    SELECT Клиент.Фирма FROM Клиент

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

    Пример:

    SELECT DISTINCT Клиент.Фирма

       FROM Клиент

    Предложение WHERE определяет, какие блоки данныхиз списка FROM таблиц будут в результате запроса. За ключевым словом следуют условия поиска (предикаты):

    1. Сравнение: сравниваются результаты вычисления одного выражения с результатами вычисления другого. Операторы: = равенство; < меньше; > больше; <= меньше или равно; >= больше или равно; <> не равно. Более сложные предикаты могут быть построены с помощью логических операторов AND, OR, NOT (NOT выполняются до AND и OR, AND до OR), а также скобок для определения порядка вычисления выражения. Пример:

    SELECT Название, Цена

        FROM Товар

        WHERE Цена>=100 And Цена<=150

    1. Диапазон: проверяется, попадает ли результат вычисления выражения в заданный диапазон значений. Оператор BETWEEN исп. для поиска значения внутри некотрого интервала, определяемого своими мин и макс значениями. NOT BETWEEN, чтобы значение лежало вне границ диапазона. Пример:

    SELECT Название, Цена

        FROM Товар

        WHERE Цена Between 100 And 150

    1. Принадлежность множеству: проверяется, принадлежит ли результат вычислений выражения заданному множеству значений. Оператор IN для сравнения некоторого значения со списком заданных значений, при это проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке. NOT IN для отбора любых значений, кроме тех, которые указаны в представленном списке.

    Пример:

    SELECT Фамилия, ГородКлиента

        FROM Клиент

        WHERE ГородКлиента

         Not in («Москва»,»Самара»)

    1. Соответствие шаблону: проверяется, отвечает ли некоторое строковое значение заданному шаблону. Оператор LIKE - выполнение сравнения выражения с заданным шаблоном, в котором допускается использование символов-заменителей: % (вместо может быть подставлено любое кол-во произвольных символов), _ (заменяет один символ строки), [] (вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях), [^] (вместо символа строки будут подставлены все символы, кроме указанных в ограничителях).

    Пример (найти клиентов, в номере тел. кот. вторая цифра 2,3 или 4):

    SELECT Клиент.Фамилия, Клиент.Телефон

        FROM Клиент

        WHERE Клиент.Телефон Like «_[2-4]%»

    (у кот. в фамилии встречается слог “ро”):

    SELECT Клиент.Фамилия

        FROM Клиент

        WHERE Клиент.Фамилия Like «%ро%»

    1. Значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное значение). Оператор IS NULL - для сравнения текущего значения со значением NULL – специальным значением, указывающим на отсутствие любого значения. NULL – это не то же самое, что знак пробела (пробел – допустимый символ) или ноль (0 - допустимое число). NULL отличается и от строки нулевой длины (пустой строки). IS NOT NULL - для проверки присутствия значения в поле.

    Пример (найти сотрудников, у которых нет телефона):

    SELECT Фамилия, Телефон

        FROM Клиент

        WHERE Телефон Is Null

    Предложение ORDER BY (в операторе SELECT) сортирует данные выходного набора в заданной последовательности (обычно строки в результирующей таблице SQL-запроса никак не упорядочены). Способ сортировки задается ключевым словом следом за названием поля, по кот. выполняется сортировка. По умолчанию сортировка по возрастанию (явно - ключевым словом ASC, в обратной последовательности - после имени поля ключевое слово DESC). Фраза ORDER BY всегда последний элемент в операторе SELECT.

    Пример (список клиентов в алф. порядке):

    SELECT Клиент.Фамилия, Клиент.Фирма

        FROM Клиент

        ORDER BY Клиент.Фамилия

    Пример:

    SELECT Клиент.Фирма, Клиент.Фамилия

        FROM Клиент

        ORDER BY Клиент.Фирма, Клиент.Фамилия DESC
    Вычисления и подведение итогов в запросах
    Построение вычисляемых полей. Для создания вычисляемого (производного) поля в списке SELECT нужно указать некоторое выражение языка. В выражениях применяются арифметические операции +, -, :, *, а также встроенные функции языка. AS - для задания имени столбцов результирующей таблицы.

    Использование итоговых функций. С их помощью можно получить ряд обобщающих статистических сведений о множестве отобранных значений выходного набора. Только в списке предложения SELECT и составе предложения HAVING.

    Итоговые функции:

    Count (Выражение) - определяет количество записей в выходном наборе SQL-запроса.

    Min/Max (Выражение) - определяют наименьшее и наибольшее из множества значений в некотором поле запроса;

    Avg (Выражение) - эта функция позволяет рассчитать среднее значение множества значений, хранящихся в определенном поле отобранных запросом записей (арифметическое среднее).

    Sum (Выражение) - вычисляет сумму множества значений, содержащихся в определенном поле отобранных запросом записей.

    Чаще всего в качестве выражения выступают имена столбцов. COUNTMIN и MAX применимы к числовым и к нечисловым полям, SUM и AVG - только в случае числовых полей, за исключением COUNT(*) - подсчет всех строк в результирующей таблице, независисо от того, содержатся там пустые, дублирующиеся или любые другие значения.

    DISTINCT - перед именем столбца для исключения дублирующихся значений (для SUM и AVG).

    Пример (опред. первое по алфавиту название товара):

    SELECT Min(Товар.Название) AS Min_Название

    FROM Товар

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

    Пример (на какую сумму был продан товар каж. наименования):

    SELECT Товар.Название,

        Sum(Товар.Цена*Сделка.Количество)

        AS Стоимость

    FROM Товар INNER JOIN Сделка

        ON Товар.КодТовара=Сделка.КодТовара

    GROUP BY Товар.Название

    Пример (суммарная стоимость каж. товара 1го сорта за каж. мес.):

    SELECT Товар.Название, Month(Сделка.Дата)

        AS Месяц,

        Sum(Товар.Цена*Сделка.Количество)

        AS Стоимость

    FROM Товар INNER JOIN Сделка

        ON Товар.КодТовара=Сделка.КодТовара

    WHERE Товар.Сорт=«Первый»

    GROUP BY Товар.Название, Month(Сделка.Дата)
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта