ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.04.2021

Просмотров: 3427

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

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

… …

… …

… …

… …

… …


background image

32 

2.3.2. 

Ариф м ет ические

операц ии

дл я

преобраз ования

числ овы х

данны х

  

У на рный

 (

од иноч ный

оп ер а тор

 (

з на к

минус

из меняет

з на к

ч ислов ого

з на ч ения

п еред

которым

он

стоит

на

п ротив оп оложный

.

Б ина р ные

оп ера торы

+

*

и

/

п ред оста в ляют

в оз можность

в ып олнения

а р ифметич еских

оп ераций

сложения

в ыч ита ния

умножения

и

д еления

.

Н а п ример

результа т

з а п роса

SELECT

SURNAME

,

 NAME

,

 STIPEND

,

(

STIPEND*KURS

)

/2 

       

FROM

STUDENT 

       

WHERE

KURS

=

4

AND

STIPEND

>

0

буд ет

в ыгляд еть

след ующ им

обра з ом

  

SURNAME 

NAME 

STIPEND

KURS

Сид ор ов

Ва д им

150 

-300 

Петров

А нтон

200 

-400 

… …

… …

… …

… …

… …

2.3.3. 

С им вол ь ная

операц ия

конкат енац ии

ст рок

  

О п ерация

конка тена ции

||

п оз в оляет

соед инять

  (

“склеив а ть”

з на ч ения

д в ух

или

более

столбцов

симв ольного

тип а

ил и

симв ольных

конста нт

в

од ну

строку

Э та

оп ер а ция

имеет

синта ксис

<

зна чи м о е

си м в о льно е

в ы р а ж ени е

> {

||

}<

зна чи м о е

си м в о льно е

в ы р а ж ени е

>. 

Н а п ример

:  

SELECT

SURNAME

|| 

_

 || 

NAME

,

 STIPEND  

       

FROM

STUDENT 

       

WHERE

KURS

=

4

AND

STIPEND

>

0

Рез ульта т

з а п роса

буд ет

в ыгляд еть

след ующ им

обр а з ом

  

STIPEND

Сид ор ов

_

Ва д им

150 

Петров

_

А нтон

200 

… …

… …


background image

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

если

  <

д ли на

меньше

   

д лины

  <

ст р о ки

>, 

то

   

исход на я

  <

ст р о ка

усека ется

слев а

д о

з а д а нной

 <

д ли ны

>. 


background image

34 

RPAD

д оп олнение

строки

сп рав а

RPAD 

(<

ст р о ка

>, <

д ли на

> [, <

по д ст р о ка

>])  

o

<

ст р о ка

д оп олняется

спра в а

ука з а нной

в

<

по д ст р о ке

п ослед ов а тельностью

симв олов

д о

ука з а нной

   <

д ли ны

> (

в оз можно

с

п ов торением

п ослед ов а тельности

); 

o

если

  <

по д ст р о ка

не

ука з а на

то

п о

умолч а нию

  <

ст р о ка

д оп олняется

п робела ми

o

если

  <

д ли на

меньше

   

д лины

  <

ст р о ки

>, 

то

   

исход на я

  <

ст р о ка

усека ется

сп рав а

д о

з а д а нной

 <

д ли ны

>

LTRIM

уд а ление

лев ых

гр а нич ных

симв олов

LTRIM 

(<

ст р о ка

> [,<

по д ст р о ка

>])

  

o

из

 <

ст р о ки

уд а ляются

слев а

симв олы

ука з а нные

в

 <

по д ст р о ке

>; 

o

если

 <

по д ст р о ка

не

ука з а на

то

п о

умолч а нию

  

уд а ляются

п робелы

o

в

 <

ст р о ку

сп ра в а

д оба в ляется

столько

п робелов

сколько

симв олов

слев а

было

уд а лено

то

есть

  

д лина

 <

ст р о ки

оста ется

неиз менной

RTRIM

уд а ление

п ра в ых

гра нич ных

симв олов

RTRIM 

(<

ст р о ка

> [,<

по д ст р о ка

>]) 

o

из

 <

ст р о ки

уд а ляются

сп ра в а

симв олы

ука з а нные

в

 <

по д ст р о ке

>; 

o

если

 <

по д ст р о ка

не

ука з а на

то

п о

умолч а нию

уд а ляются

п робелы

o

в

  <

ст р о ку

слев а

д оба в ляется

столько

п робелов

сколько

симв олов

сп рав а

было

уд а лено

то

есть

д лина

 <

ст р о ки

оста ется

неиз менной

Функции

LTRIM

и

RTRIM

рекоменд уется

исп ользов а ть

п ри

на п иса нии

услов ных

в ыражений

в

которых

срав нив а ются

текстов ые

строки

Д ело

в

том

ч то

на лич ие

на ч а льных

или

конеч ных

п робелов

в

срав нив а емых

оп ер а нд а х

может

иска з ить

результа т

сра в нения

.  

Н а п ример

конста нты

  

ААА’

и

ААА

   

не

р а в ны

д руг

д ругу

SUBSTR

в ыд еление

п од строки

SUBSTR 

(<

ст р о ка

>,<

на ча ло

> [,<

ко ли чест во

>]) 

o

из

 <

ст р о ки

в ыбирается

з а д а нное

 <

ко ли чест в о

симв олов

на ч ина я

с

ука з а нной

п оз иции

в

строке

 <

на ча ло

>; 


background image

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