Файл: SQL в вопросах и задачах.pdf

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

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

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

Добавлен: 02.04.2021

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
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