Числовые, символьные и строковые константы.
Несмотря на то, что 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!