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

  • Пример 2.

  • Пример 3.

  • Пример 5.

  • Пример 7.

  • Пример 9.

  • Создание запросов к базе данных Поставщиков деталей

  • Встроенные функции. Практическая работа 10


    Скачать 25.04 Kb.
    НазваниеПрактическая работа 10
    Дата24.10.2021
    Размер25.04 Kb.
    Формат файлаdocx
    Имя файлаВстроенные функции.docx
    ТипПрактическая работа
    #254712

    Практическая работа №10
    Функции - это операции, позволяющие манипулировать данными. В среде SQLServer можно выделить несколько групп встроенных функций:





    • Числовые функции. Используются для выполнения математических операций над числовыми данными. К числовым функциям относятся функции возвращающие абсолютные значения, синусы и косинусы углов, квадратный корень числа и т.д. Используются они только для алгебраических, тригонометрических и геометрических вычислений. В общем, используются редко, поэтому рассматривать их мы не будем.




    • Итоговые функции. Используются для получения итоговых данных по таблицам, например, когда надо просуммировать какие-либо данные без их выборки.



    • Функции даты и времени. Используются для управления значениями даты и времени, например, для возвращения разницы между датами.




    • Системные функции. Возвращают служебную информацию СУБД.


    Пример 1. Получить список товаров с указанием аббревиатуры производителя.
    SELECT UPPER(LEFT(Manufacturer,2)) AS Abbreviation,

    CONCAT(ProductName, ' - ', Manufacturer) AS FullProdName

    FROM Products

    ORDER BY Abbreviation

    Пример 2. Получить список фирм с указанием фамилии и инициалов клиентов.

    SELECT Company, Name+""+

    Left(Name,1)+"."+Left(SName,1)+"."AS FullName

    FROM Clients

    В запросе использована встроенная функция Left, позволяющая вырезать в текстовой переменной один символ слева в данном случае.

    Пример_3.'>Пример 3. Использование функции ROUND

    SELECT ROUND(1342.345, 2) -- 1342.350

    SELECT ROUND(1342.345, -2) -- 1300.000

    Пример 4. Изменить даты поставок

    SELECT DATEADD(month, 2, '2020-7-28') -- 2020-09-28 00:00:00.000

    SELECT DATEADD(day, 5, '2020-7-28') -- 2020-08-02 00:00:00.000

    SELECT DATEADD(day, -5, '2020-7-28') -- 2020-07-23 00:00:00.000

    Пример 5. Получить список товаров с указанием года и месяца продажи.

    SELECT Products.Name, Year(Supplies.Date)

    AS Year, Month(Supplies.Date) AS Month

    FROM Products INNER JOIN Supplies

    ON Products.ID=Supplies.ID

    В запросе использованы встроенные функции Year и Month для выделения года и месяца из даты.

    Пример 6. Определение разницы во времени

    SELECT DATEDIFF(year, '2019-7-28', '2020-9-28') -- разница 1 год

    SELECT DATEDIFF(month, '2019-7-28', '2020-9-28') -- 14 месяцев

    SELECT DATEDIFF(day, '2019-7-28', '2020-9-28') -- разница 427 дней
    Пример 7. Определить количество дней в месяце
    SELECT EOMONTH('2020-02-05') -- 2020-02-28

    SELECT EOMONTH('2020-02-05', 3) -- 2020-05-31(через 3 месяца)
    Пример 8. Найти поставки, которые были сделаны 16 дней назад
    SELECT * FROM Orders

    WHERE DATEDIFF(day, CreatedAt, GETDATE()) = 16
    Пример 9. Вывести сумму и дату поставки в одной строке
    SELECT Id,

    CAST(CreatedAt AS nvarchar) + '; total: ' + CAST(Price * ProductCount AS nvarchar)

    FROM Orders
    Пример 10. Вывести дату и стоимость заказов с форматированием
    SELECT CONVERT(nvarchar, CreatedAt, 3),

    CONVERT(nvarchar, Price * ProductCount, 1)

    FROM Orders
    Пример 11. Установить категорию товаров
    SELECT ProductName, Manufacturer,

    CASE

    WHEN Price > 50000 THEN 'Категория A'

    WHEN Price BETWEEN 40000 AND 50000 THEN 'Категория B'

    WHEN Price BETWEEN 30000 AND 40000 THEN 'Категория C'

    ELSE 'Категория D'

    END AS Category

    FROM Products


    Пример 12. Установить категории по количеству товара
    SELECT ProductName, Manufacturer,

    IIF(ProductCount>3, 'Много товара', 'Мало товара')

    FROM Products

    Создание запросов к базе данных Поставщиков деталей

    1. В базе даннах SPJ создать таблицу C (contacts)

    CREATE TABLE C(

    C# CHAR(5) PRIMARY KEY NOT NULL,

    PHONE CHAR NOT NULL,

    EMAIL CHAR NOT NULL

    )


    1. Заполнить таблицу данными (Пример: PHONE: (495)876-55-99; EMAIL: jones@gmail.com)

    2. В таблице SPJ добавить поле, которое будет ссылаться на соответствующее поле в таблице C

    3. Установить связи.

    4. В таблицу SPJ добавить поле PRICE (цена за шт., тип – Money), заполнить значениями.

    Оформить отчет в виде таблицы по предлагаемому образцу



    Извлечь данные о всех поставщиках и их контактах(контакты находятся в одной колонке)

    Вставить screenshot с результатом выполнения



    Определить код города контактного телефона для всех поставщиков.






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






    Установить даты поставок для поставщиков S1 и S4 на февраль месяц текущего года.






    Определить разницу во времени(кол-во дней) между поставками для проекта с номером J1 и J6






    Определить количество дней в каждом месяце для поставок, где поставщик S1 и S5






    Найти поставки, которые были сделаны 6, 8 и 11 месяцев назад.






    Определить даты и итоговые суммы поставок всех деталей(результат отобразить в одном столбце)






    Определить дату и стоимость поставок(в качестве разделителя для даты использовать – «/»)






    Вывести сведения о плановых показателях поставок(план выполнен/план не выполнен), если плановая отметка равна 300





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