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



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

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

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

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

SELECT 'Фамилия', SURNAME, 'Имя', NAME, 100

FROM STUDENT;

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

  SURNAME   NAME  
Фамилия Иванов ИМЯ Иван 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

Символьная операция конкатенации строк.

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

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

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

Например :

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

FROM STUDENT

WHERE KURS = 4 AND STIPEND > О;

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

  STIPEND
Сидоров_Вадим Петров_Антон 150 200

 

Символьные функции преобразования букв различных слов в строке.

· LOWER — перевод в строчные символы (нижний регистр)

          LOWER (<строка>) •

· UPPER — перевод в прописные символы (верхний. Регистр)

          UPPER (<строка >)

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

INITCAP (<строка>

 

Например :

SELECT LOWER(SURNAME), UPPER(NAME)

FROM STUDENT

WHERE KURS = 4 AND STIPEND > 0;

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

SURNAME NAME
Сидоров Петров Вадим Антон

 

Символьные. строковые функции.

· LPAD —. дополнение строки слева.

LPAD (<строка>, <длина> [,<подстрока.>]

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

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

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

· RPAD — дополнение строки cnpава

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

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

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

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

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

· LTRIM — удаление левых граничных символов

LTRIM (<строка> [, <подстрока>])

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

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

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

· RTRIM — удаление правых граничных символов

RTRIN(<строка>[,<подстрока>])

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

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

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

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

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

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

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

— из <строки> выбирается заданное <количество> символов,

начиная с указанной позиции в строке <начало>;

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

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

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

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

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

— <начало поиска> задает начальную позицию в строке для поиска <подстроки>; если не задано, то по умолчанию принимается значение 1;

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

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

· LENGTH — определение длины строки

LENGTH(<cmpoxa >)

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

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

Пример 1

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

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

FROM STUDENT

WHERE KURS = 3 AND STIPEND > 0;

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

@@@@Петров @@@@Павлов @@@@Лукин Пётр$$$$$$ Андрей$$$$$$ Артём$$$$$$

 

Пример 2. Запрос

SELECT SUBSTR(NAME, 1,1) ||'.' || SURNAME, CITY,

LENGTH(CITY)

FROM STUDENT

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

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

  CITY  
П.Петров С.Сидоров 0.Зайцева А. Лукин А. Петров Курск Москва Липецк Воронеж NULL   5 6 6 7 NULL

 

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

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

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

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

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

• CEIL — наименьшее целое, которое равно или больше заданного числа

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

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

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

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

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

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

• Тригонометрические функции — СОS, SIN, TAN

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

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

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

• Гиперболические функции — COSH, SINH, TANH

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

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

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

Экспоненциальная функция — EXP

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

Логарифмические функции — L N, LOG

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

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

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

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

Определение знака числа — SIGN

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

 Вычисление квадратного корня — SQRT

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

 

Пример. Запрос

SELECT UNIV_NAME, RATING,

ROUND(RATING, -1), TRUNC(RATING, -1)

FROM UNIVERSITY;

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

UNIV_NAME  RATING    
МГУ ВГУ НГУ РГУ 610 296 345 421 610 300 350 420 600 290 340 410

 


Дата добавления: 2019-02-12; просмотров: 707; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!