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

  • ФаМИЛИЯ

  • Выборка

  • Преобразование

  • Преобразование вывода и встроенные функции. ПРактическая работа №3_SQl. Преобразование вывода и встроенные


    Скачать 84.77 Kb.
    НазваниеПреобразование вывода и встроенные
    АнкорПреобразование вывода и встроенные функции
    Дата11.10.2021
    Размер84.77 Kb.
    Формат файлаdocx
    Имя файлаПРактическая работа №3_SQl.docx
    ТипДокументы
    #245045
    страница1 из 3
      1   2   3

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

    В SQL реализованы операторы преобразования данных и встроенные функции, предназначенные для работы со значениями столбцов и/или константами в выражениях. Использование этих операторов допустимо в запросах везде, где допустимы выражения.


        1. Числовые, символьные и строковые константы

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

    (оператор SELECT)
    Если в запросе вместо спецификации столбца SQL обнаруживает число,то оно интерпретируется как числоваяконстанта.

    Символьныеконстантыдолжны указываться в одинарных

    кавычках. Если одинарная кавычка должна выводиться как часть строковой константы, то ее нужно предварить другой одинарной кавычкой.

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

    SELECT 'ФаМИЛИЯ', SURNAME, 'Имя', NAME, 100 FROM STUDENT;

    является таблица следующего вида:





    SURNAME




    NAME




    Фамилия

    Иванов

    Имя

    Иван

    100

    Фамилия

    Петров

    Имя

    Петр

    100

    Фамилия

    Сидоров

    Имя

    Вадим

    100

    Фамилия

    Кузнецов

    Имя

    Борис

    100

    Фамилия

    Зайцева

    Имя

    Ольга

    100

    Фамилия

    Павлов

    Имя

    Андрей

    100

    Фамилия

    Котов

    Имя

    Павел

    100

    Фамилия

    Лукин

    Имя

    Артем

    100

    Фамилия

    Петров

    Имя

    Антон

    100

    Фамилия

    Белкин

    Имя

    Вадим

    100


















    Арифметические операции для преобразования числовых данных

          • Унарный (одиночный) оператор «—» (знак минус) изменяет знак числового значения, перед которым он указан, на противоположный.



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


    Например, результат запроса

    SELECT SURNAME, NAME, STIPEND, -(STIPEND*KURS)/2 FROM STUDENT

    WHERE KURS = 4 AND STIPEND > 0;

    выглядит следующим образом:



    SURNAME

    NAME

    STIPEND

    KURS




    Сидоров

    Вадим

    150

    4

    -300

    Петров

    Антон

    200

    4

    -400


















        1. Операция конкатенации строк

    Операция конкатенации «||» позволяет соединять («склеивать») значения двух или более столбцов символьного типа или символьных констант в одну строку.

    Эта операция имеет синтаксис

    <значимое символьное выражение> {||} <значимое символьное выражение>.

    Например:

    SELECT SURNAME ||'_'|| NAME, STIPEND FROM STUDENT

    WHERE KURS = 4 AND STIPEND > 0;

    Результат запроса будет выглядеть следующим образом:





    STIPEND

    Сидоров_Вадим

    150

    Петров_Антон

    200


    Выборка данных (оператор SELECT)
    Функции преобразования символов в строке

          • LOWER перевод в строчные символы (нижний регистр) LOWER (<строка>)

          • UPPER перевод в прописные символы (верхний регистр) UPPER (<строка>)

          • INITCAP — перевод первой буквы каждого слова строки в прописную (заглавную)

    INITCAP (<строка>) Например:

    SELECT LOWER (SURNAME), UPPER (NAME) FROM STUDENT

    WHERE KURS = 4 AND STIPEND> 0;

    Результат запроса будет выглядеть следующим образом:


    SURNAME

    NAME

    сидоров

    ВАДИМ

    петров

    АНТОН









    Строковые функции

    • LPAD дополнение строки слева LPAD (<строка>, <длина> [, <подстрока>])

      • <строка> дополняется слева заданной в <подстроке> последовательностью символов до указанной <длины> (возможно, с повторением последовательности);

    • если <подстрока> не указана, то по умолчанию <строка> дополняется пробелами;

    • если <длина> меньше длины <строки>, то исходная

    <строка> усекается слева до заданной <длины>.

    • RPAD — дополнение строки справа RPAD (<строка>, <длина> [, <подстрока>])

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


        • <строка> дополняется справа заданной в <подстроке> последовательностью символов до указанной <длины> (возможно, с повторением последовательности);

    • если <подстрока> не указана, то по умолчанию <строка> дополняется пробелами;

    • если <длина> меньше длины <строки>, то исходная <строка> усекается справа до заданной <длины>.

    • LTRIM — удаление левых граничных символов LTRIM (<строка>[,<подстрока>])

      • из <строки> удаляются слева символы, указанные в <подстроке>;

      • если < подстрока > не указана, по умолчанию удаляются пробелы;

      • в <строку> справа добавляется столько пробелов, сколько символов слева было удалено, то есть длина <строки> ос- тается неизменной.

    • RTRIM — удаление правых граничных символов RTRIM (<строка>[,<подстрока>])

      • из <строки> удаляются справа символы, указанные в <под- строке>;

      • если <подстрока> не указана, по умолчанию удаляются пробелы;

      • в <строку> слева добавляется столько пробелов, сколько символов справа было удалено, то есть длина <строки> ос- тается неизменной.

    Функции LTRIM и RTRIM рекомендуется использовать при на- писании условных выражений, в которых сравниваются текстовые строки. Дело в том, что наличие начальных или конечных пробе- лов в сравниваемых операндах может исказить результат сравнения.

    Например, константы ' ААА' и 'ААА ' не равны друг другу.

    • SUBSTR выделение подстроки

    SUBSTR (<строка>,<начало>[,<количество>])

      • из <строки> выбирается заданное <количество> символов, начиная с указанной параметром <начало> позиции в строке;


    Выборкаданных(операторSELECT)


    • если <количество> не задано, символы выбираются с <на- чала> и до конца <строки>;

    • возвращается подстрока, содержащая число символов, за- данное параметром <количество>, либо число символов от позиции, заданной параметром <начало> до конца строки;

    • если указанное <начало> превосходит длину <строки>, то возвращается строка, состоящая из пробелов. Длина этой строки будет равна заданному <количеству> или исходной длине <строки> (при не заданном <количестве>).

    • INSTR — поиск подстроки

    INSTR (<строка>,<подстрока>[,<начало поиска> [,<номер вхождения>]])

      • <начало поиска> задает начальную позицию в строке для

    поиска <подстроки>. Если не задано, то по умолчанию принимается значение 1;

      • <номер вхождения> задает порядковый номер искомой подстроки. Если не задан, то по умолчанию принимается значение 1;

      • значимые выражения в <начале поиска> или в <номере вхождения > должны иметь беззнаковый целый тип или приводиться к этому типу;

      • тип возвращаемого значения INT;

    функция возвращает позицию найденной подстроки.

    • LENGTH — определение длины строки ыагстн(<строка>)

      • длина <строки>, тип возвращаемого значения — ЮТ;

      • функция возвращает NULL, если <строка> имеет NULL-значение.



    Примеры запросов, использующих строковые функции

    Результат запроса

    SELECT LPAD (SURNAME, 10, '@'), RPAD (NAME, 10, '$') FROM STUDENT

    WHERE KURS = 3 AND STIPEND> 0;

    будет выглядеть следующим образом:
    Преобразование вывода и встроенные функции








    @@@@Петров

    Петр$$$$$$

    @@@@Павлов

    Андрей$$$$

    @@@@@Дукин

    Артем$$$$$








    А запрос

    SELECT SUBSTR(NAME, 1, 1) Ц'. ' || SURNAME, CITY, LENGTH (CITY,) FROM STUDENT

    WHERE KURS IN(2, 3, 4)AND STIPEND > 0;

    выдаст результат:





    CITY




    П. Петров

    Курск

    5

    С. Сидоров

    Москва

    6

    О. Зайцева

    Липецк

    6

    А. Лукин

    Воронеж

    7

    А. Петров

    NULL

    NULL










    Функции работы с числами

          • ABS — абсолютное значение

    ABS (<значимое числовое выражение>)

          • FLOOR урезает значение числа с плавающей точкой до наи- большего целого, не превосходящего заданное число

    FLOOR (<значимое числовое выражение>)

          • CEIL самое малое целое, равное или большее заданного числа CEIL (<значимое числовое выражение>)

    Выборкаданных(операторSELECT)

    • Функция округления ROUND


    ROUND (<значимое числовое выражение>,<точность>)

    аргумент <точность> задает точность округления (см. пример

    ниже)

    • Функция усечения TRUNC

    TRUNC (значимое числовое выражение>,<точность>)

    • Тригонометрические функции COS, SIN, TAN (<значимое числовое выражение>)

    SIN (<значимое числовое выражение>) TAN (<значимое числовое выражение>)

    • Гиперболические функции COSH, SINH, TANH COSH (<значимое числовое выражение>)

    SINH (<значимое числовое выражение>) TANH (<значимое числовое выражение>)

    • Экспоненциальная функция ЕХР ЕХР (<значимое числовое выражение>)

    • Логарифмические функции LN, LOG ш (<значимое числовое выражение>)

    LOG (<значимое числовое выражение>)

    • Функция возведения в степень — POWER

    POWER (<значимое числовое выражение>,<экспонента>)

    • Определение знака числа SIGN SIGN (<значимое числовое выражение>)

    • Вычисление квадратного корня SQRT SQRT (<значимое числовое выражение>)


    Пример

    Запрос

    SELECT UNIVJffiME, RATING, ROUND (RATING, -1), TRDNC (RATING, FROM UNIVERSITY;

    вернет результат:

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


    UN IV NAME

    RATING







    МГУ

    606

    610

    600

    ВГУ

    296

    300

    290

    НГУ

    345

    350

    340

    РГУ

    416

    420

    410

    БГУ

    326

    330

    320

    ТГУ

    368

    370

    360

    ВГМА

    327

    330

    320


    Функции преобразования значений

          • Преобразование в символьную строку — TO_CHAR TO_CHAR (<значимое выражение>[,<символьный формат>])

            • <значимое выражение>— числовое значение или значение типа дата-время;

            • для числовых значений <символьный формат> должен иметь синтаксис [S]9[9][,9[9]], где S — представление зна- ка числа (при отсутствии предполагается без отображения знака), 9 — представление цифр-знаков числового значе- ния (для каждого знакоместа). Символьный формат опре- деляет вид отображения чисел. По умолчанию для число- вых значений используется формат '999999.99';

            • для значений типа дата-время <символьный формат> имеет вид (то есть вид отображения значений даты и вре- мени):

    в части даты

    'DD-Mon-YY'

    'DD-Mon-YYYY' 'MM/DD/YY' 'MM/DD/YYYY1 'DD.MM.YY'

    'DD.MM.YYYY'
    Выборка данных (оператор SELECT)
    в части времени

    'НН24' ИН24.Ш' 'HH24:MI:SS'

    'HH24:MI:SS.FF'
    ще: НН24 — часы в диапазоне от 0 до 24 R/FI минуты

    SS секунды

    FF тики (сотые доли секунды)

    При выводе времени в качестве разделителя по умолчанию используется двоеточие (:), но при желании можно использо- вать любой другой символ.

    Возвращаемое значение — символьное представление Зна- чимого выражения> в соответствии с заданным ^символьным форматом> преобразования.

    • Преобразование из символьного значения в числовое

    TO_NUMBER

    TO_NUMBER (<значимое символьное выражение >)

    При этом <значимое символьное выражение> должно зада- вать символьное значение числового типа.

    • Преобразование символьной строки в дату — TO_DATE TCMDATE (<значимое символьное выражение >[,<символьный формат>])

      • <значимое символьное выражение> должно задавать сим- вольное значение типа дата-время;

    • <символьный формат> должен описывать представление значения типа дата-время в <значимом символьном выра- жении>. Допустимые форматы (в том числе и формат по умолчанию) приведены выше.

    Возвращаемое значение <значимое символьное выраже- ние> во внутреннем представлении. Тип возвращаемого значе- ния DATE.

    Над значениями типа DATE разрешены следующие операции:

    • бинарная операция сложения;

    • бинарная операция вычитания.

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

    Например:

    • при добавлении к дате '22.05.1998' пяти лет получится дата '22.05.2003';

    • при добавлении к этой же дате девяти месяцев получится да- та '22.02.1998';

    • при добавлении 10 дней получим '01.06.1998'.

    При сложении двух полных дат, например, '22.05.1998' и '01.12.2000', результат непредсказуем.

      1   2   3


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