ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.04.2021
Просмотров: 1525
Скачиваний: 4
31
2.3.
П реобраз ование
вы вода
и
встроенны е
ф ункц ии
В
SQL
реа лиз ов а ны
оп ераторы
п реобраз ов а ния
д а нных
и
в строенные
функции
,
п ред на з на ч енные
д ля
ра боты
со
з на ч ениями
столбцов
и
/
или
конста нта ми
в
в ыражениях
.
Исп ользов а ние
э тих
оп ератор ов
д оп устимо
в
з а п роса х
в езд е
,
гд е
можно
исп ользов а ть
в ыра жения
.
2.3.1.
Числ овы е
,
сим вол ь ны е
и
ст роковы е
конст ант ы
Н есмотря
на
то
,
ч то
SQL
ра бота ет
с
д а нными
в
п онятиях
строк
и
столбцов
та блиц
,
имеется
в оз можность
п рименения
з на ч ений
в ыра жений
,
п остроенных
с
исп ользов а нием
в строенных
функций
,
конста нт
,
имен
столбцов
,
которые
оп ред еляются
ка к
св оего
род а
в иртуа льные
столбцы
.
О ни
п омещ а ются
в
сп иске
столбцов
и
могут
соп ров ожд а ться
п сев д онима ми
.
Е сли
в
з а п росе
в место
сп ецифика ции
столбца
SQL
обна р ужив а ет
чи сло
,
то
оно
интерп ретируется
ка к
чи сло в а я
ко нст а нт а
.
Си м в о льны е
ко нст а нт ы
д олжны
ука з ыв а ться
в
од ина рных
ка в ыч ка х
.
Е сли
од ина р на я
ка в ыч ка
д олжна
в ыв од иться
ка к
ч а сть
строков ой
конста нты
,
то
ее
нужно
п ред в а р ить
д ругой
од ина рной
ка в ыч кой
Н а п ример
,
результа том
в ып олнения
з а п роса
SELECT
‘Фа ми ли я’
,
SURNAME
,
‘Имя’
,
NAME
,
100
FROM
STUDENT
;
яв ляется
та блица
след ующ его
в ид а
SURNAME
NAME
Фа милия
Ив а нов
Имя
Ив а н
100
Фа милия
Петров
Имя
Петр
100
Фа милия
Сид ор ов
Имя
Ва д им
100
Фа милия
К уз нецов
Имя
Б орис
100
Фа милия
Зайцева
Имя
О льга
100
Фа милия
Па в лов
Имя
А нд рей
100
Фа милия
К отов
Имя
Па в ел
100
Фа милия
Л укин
Имя
А ртем
100
Фа милия
Петров
Имя
А нтон
100
Фа милия
Б елкин
Имя
Ва д им
100
… …
… …
… …
… …
… …
32
2.3.2.
Ариф м ет ические
операц ии
дл я
преобраз ования
числ овы х
данны х
•
У на рный
(
од иноч ный
)
оп ер а тор
“
–
”
(
з на к
минус
)
из меняет
з на к
ч ислов ого
з на ч ения
,
п еред
которым
он
стоит
,
на
п ротив оп оложный
.
•
Б ина р ные
оп ера торы
“
+
”
,
“
–
“
,
“
*
”
и
“
/
”
п ред оста в ляют
в оз можность
в ып олнения
а р ифметич еских
оп ераций
сложения
,
в ыч ита ния
,
умножения
и
д еления
.
Н а п ример
,
результа т
з а п роса
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
… …
… …
… …
… …
… …
2.3.3.
С им вол ь ная
операц ия
конкат енац ии
ст рок
О п ерация
конка тена ции
“
||
”
п оз в оляет
соед инять
(
“склеив а ть”
)
з на ч ения
д в ух
или
более
столбцов
симв ольного
тип а
ил и
симв ольных
конста нт
в
од ну
строку
.
Э та
оп ер а ция
имеет
синта ксис
<
зна чи м о е
си м в о льно е
в ы р а ж ени е
> {
||
}<
зна чи м о е
си м в о льно е
в ы р а ж ени е
>.
Н а п ример
:
SELECT
SURNAME
||
‘
_
’
||
NAME
,
STIPEND
FROM
STUDENT
WHERE
KURS
=
4
AND
STIPEND
>
0
;
Рез ульта т
з а п роса
буд ет
в ыгляд еть
след ующ им
обр а з ом
STIPEND
Сид ор ов
_
Ва д им
150
Петров
_
А нтон
200
… …
… …
33
2.3.4.
С им вол ь ны е
ф ункц ии
преобраз ования
букв
раз л ичны х
сл ов
в
строке
•
LOWER
–
п ерев од
в
строч ные
симв олы
(
нижний
регистр
)
LOWER
(<
ст р о ка
>)
•
UPPER
–
п ерев од
в
п роп исные
симв олы
(
в ерхний
регистр
)
UPPER
(<
ст р о ка
>)
•
INITCAP
–
п ерев од
п ер в ой
букв ы
ка жд ого
слов а
строки
в
з а гла в ную
(
п роп исную
)
INITCAP
(<
ст р о ка
>)
Н а п ример
:
SELECT
LOWER
(
SURNAME
),
UPPER
(
NAME
)
FROM
STUDENT
WHERE
KURS
=
4
AND
STIPEND
>
0
;
Рез ульта т
з а п роса
буд ет
в ыгляд еть
след ующ им
обр а з ом
SURNAME
NAME
Сид ор ов
ВА Д ИМ
Петров
А Н Т О Н
… …
… …
2.3.5.
С им вол ь ны е
строковы е
ф ункц ии
•
LPAD
–
д оп олнение
строки
слев а
LPAD
(<
ст р о ка
>, <
д ли на
> [, <
по д ст р о ка
>])
o
<
ст р о ка
>
д оп олняется
слев а
ука з а нной
в
<
по д ст р о ке
>
п ослед ов а тельностью
симв олов
д о
ука з а нной
<
д ли ны
> (
в оз можно
,
с
п ов торением
п ослед ов а тельности
);
o
если
<
по д ст р о ка
>
не
ука з а на
,
то
п о
умолч а нию
<
ст р о ка
>
д оп олняется
п робела ми
;
o
если
<
д ли на
>
меньше
д лины
<
ст р о ки
>,
то
исход на я
<
ст р о ка
>
усека ется
слев а
д о
з а д а нной
<
д ли ны
>.
34
•
RPAD
–
д оп олнение
строки
сп рав а
RPAD
(<
ст р о ка
>, <
д ли на
> [, <
по д ст р о ка
>])
o
<
ст р о ка
>
д оп олняется
спра в а
ука з а нной
в
<
по д ст р о ке
>
п ослед ов а тельностью
симв олов
д о
ука з а нной
<
д ли ны
> (
в оз можно
,
с
п ов торением
п ослед ов а тельности
);
o
если
<
по д ст р о ка
>
не
ука з а на
,
то
п о
умолч а нию
<
ст р о ка
>
д оп олняется
п робела ми
;
o
если
<
д ли на
>
меньше
д лины
<
ст р о ки
>,
то
исход на я
<
ст р о ка
>
усека ется
сп рав а
д о
з а д а нной
<
д ли ны
>
.
•
LTRIM
–
уд а ление
лев ых
гр а нич ных
симв олов
LTRIM
(<
ст р о ка
> [,<
по д ст р о ка
>])
o
из
<
ст р о ки
>
уд а ляются
слев а
симв олы
,
ука з а нные
в
<
по д ст р о ке
>;
o
если
<
по д ст р о ка
>
не
ука з а на
,
то
п о
умолч а нию
уд а ляются
п робелы
;
o
в
<
ст р о ку
>
сп ра в а
д оба в ляется
столько
п робелов
,
сколько
симв олов
слев а
было
уд а лено
,
то
есть
д лина
<
ст р о ки
>
оста ется
неиз менной
.
•
RTRIM
–
уд а ление
п ра в ых
гра нич ных
симв олов
RTRIM
(<
ст р о ка
> [,<
по д ст р о ка
>])
o
из
<
ст р о ки
>
уд а ляются
сп ра в а
симв олы
,
ука з а нные
в
<
по д ст р о ке
>;
o
если
<
по д ст р о ка
>
не
ука з а на
,
то
п о
умолч а нию
уд а ляются
п робелы
;
o
в
<
ст р о ку
>
слев а
д оба в ляется
столько
п робелов
,
сколько
симв олов
сп рав а
было
уд а лено
,
то
есть
д лина
<
ст р о ки
>
оста ется
неиз менной
.
Функции
LTRIM
и
RTRIM
рекоменд уется
исп ользов а ть
п ри
на п иса нии
услов ных
в ыражений
,
в
которых
срав нив а ются
текстов ые
строки
.
Д ело
в
том
,
ч то
на лич ие
на ч а льных
или
конеч ных
п робелов
в
срав нив а емых
оп ер а нд а х
может
иска з ить
результа т
сра в нения
.
Н а п ример
,
конста нты
‘
ААА’
и
‘
ААА
’
не
р а в ны
д руг
д ругу
.
•
SUBSTR
–
в ыд еление
п од строки
SUBSTR
(<
ст р о ка
>,<
на ча ло
> [,<
ко ли чест во
>])
o
из
<
ст р о ки
>
в ыбирается
з а д а нное
<
ко ли чест в о
>
симв олов
,
на ч ина я
с
ука з а нной
п оз иции
в
строке
<
на ча ло
>;
35
o
если
<
ко ли чест в о
>
не
з а д а но
,
симв олы
в ыбираются
с
<
на ча ла
>
и
д о
конца
<
ст р о ки
>.
o
в оз в ращ а ется
п од строка
,
сод ержа щ а я
ч исло
симв олов
,
з а д а нное
п а р а метром
<
ко ли чест в о
>,
либо
ч исло
симв олов
от
п оз иции
,
з а д а нной
п а р а метром
<
на ча ло
>
д о
конца
ст р о ки
;
o
если
ука з а нное
<
на ча ло
>
п р ев осход ит
д лину
<
ст р о ки
>,
то
в оз в ращ а ется
строка
,
состоящ а я
из
п робелов
.
Д лина
э той
строки
буд ет
рав на
з а д а нному
<
ко ли чест в у
>
или
исход ной
д лине
<
ст р о ки
>
(
п ри
не
з а д а нном
<
ко ли чест в е
> ).
•
INSTR
–
п оиск
п од строки
INSTR
(<
ст р о ка
>,<
по д ст р о ка
> [,<
на ча ло
по и ска
>
[,<
но м ер
в хо ж д ени я
>]])
o
<
на ча ло
по и ска
>
з а д а ет
на ч а льную
п оз ицию
в
строке
д ля
п оиска
<
по д ст р о ки
>.
Е сли
не
з а д а но
,
то
п о
умолч а нию
п ринима ется
з на ч ение
1;
o
<
но м ер
в хо ж д ени я
>
з а д а ет
п оряд ков ый
номер
искомой
п од строки
.
Е сли
не
з а д а н
,
то
п о
умолч а нию
п р инима ется
з на ч ение
1;
o
з на ч имые
в ыражения
в
<
на ча ле
по и ска
>
или
в
<
но м ер е
в хо ж д ени я
>
д олжны
иметь
безз на ков ый
целый
тип
или
п р ив од иться
к
э тому
тип у
;
o
тип
в оз в ращ а емого
з на ч ения
–
INT;
o
функция
в оз в ращ а ет
п оз ицию
на йд енной
п од строки
.
•
LENGTH
–
оп ред еление
д лины
строки
LENGTH
(<
ст р о ка
>)
o
д лина
<
ст р о ки
>,
тип
в оз в р а щ а емого
з на ч ения
–
INT
;
o
функция
в оз в ращ а ет
NULL
,
если
<
ст р о ка
>
имеет
NULL
-
з на ч ение
.
П римеры
з а п росов
,
исп ользующ их
строков ые
функции
.
Рез ульта т
з а п роса
SELECT
LPAD
(
SURNAME
,
10
,
‘
@
’
),
RPAD
(
NAME
,
10
,
‘
$
’
)
FROM
STUDENT
WHERE
KURS
=
3
AND
STIPEND
>
0
;