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

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

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

Добавлен: 02.04.2021

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

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

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

46 

Е сли

а р гументом

функции

яв ляется

ст о лбец

сод ержа щ ий

п устое

з на ч ение

то

COUNT

в ер нет

ч исло

стр ок

не

сод ер жа щ их

п устые

з на ч ения

и

к

которым

п рименимо

оп ред еленное

услов ие

или

груп п иров а ние

Е сли

бы

меха низ м

NULL

не

был

д оступ ен

то

неп р именимые

и

отсутств ующ ие

з на ч ения

п ришлось

бы

искл юч а ть

с

п омощ ью

конструкции

WHERE

Пов ед ение

функции

COUNT

(*) 

не

з а в исит

от

п устых

з на ч ений

О на

в оз в ратит

общ ее

колич еств о

стр ок

в

та блице

2.5.2. 

В л ия ние

NULL

-

з начений

в

ф ункц ии

AVG

Ср ед нее

з на ч ение

множеств а

ч исел

ра в но

сумме

ч исел

д еленной

на

ч исло

э лементов

множеств а

О д на ко

если

некоторые

э лементы

п усты

то

есть

  

их

з на ч ения

неиз в естны

или

не

сущ еств уют

то

д еление

на

колич еств о

в сех

э лементов

множеств а

п рив ед ет

к

неп ра в ильному

рез ульта ту

Функция

AVG

в ыч исляет

сред нее

з на ч ение

в сех

и зв ест ны х

з на ч ений

множеств а

э лементов

то

есть

  

э та

функция

п од сч итыв а ет

сумму

и зв ест ны х

з на ч ений

и

д елит

ее

на

колич еств о

эт и х

з на ч ений

а

не

на

общ ее

колич еств о

з на ч ений

сред и

котор ых

могут

быть

NULL

-

з на ч ения

Е сли

столбец

состоит

только

из

п устых

з на ч ений

то

функция

AVG

та кже

в оз в ратит

NULL

2.6. 

Р ез ул ь т ат

дей ствия

т рехз начны х

усл овны х

операт оров

У слов ные

оп ераторы

п ри

отсутств ии

п устых

з на ч ений

в оз в ра щ а ют

либо

TRUE

 (

и сти н а

), 

либо

FALSE

 (

ло ж ь

). 

Е сли

же

в

столбце

п рисутств уют

п устые

з на ч ения

то

может

быть

в оз в ра щ ено

и

третье

з на ч ение

UNKNOWN

(

н еи звестн о

). 

В

э той

схеме

на п р имер

услов ие

WHERE

A

=

2

гд е

А

имя

столбца

з на ч ения

которого

могут

быть

неиз в естны

п ри

A

=

2

буд ет

соотв етств ов а ть

TRUE

п ри

A

=

4

в

резул ьта те

буд ет

п олуч ено

з на ч ение

FALSE

а

п р и

отсутств ующ ем

з на ч ении

A

  (

NULL

-

з на ч ение

рез ульта т

буд ет

UNKNOWN

Пустые

з на ч ения

ока з ыв а ют

в лияние

на

исп ользов а ние

логич еских

оп ера торов

NOT

AND

и

OR

.  

Опера тор

NOT


background image

47 

О быч ный

уна р ный

оп ератор

NOT

обра щ а ет

оценку

TRUE

в

FALSE

и

на оборот

О д на ко

NOT

NULL

п о

п режнему

буд ет

в оз в ра щ а ть

п устое

з на ч ение

NULL

При

э том

след ует

отлич а ть

случ а й

NOT

NULL

от

услов ия

IS

NOT

NULL

которое

яв ляется

п ротив оп оложностью

IS

NULL

отд еляя

из в естные

з на ч ения

от

неиз в естных

Опера тор

AND

Е сли

рез ульта т

д в ух

услов ий

объед иненных

оп ератором

AND

из в естен

то

п рименяются

п ра в ила

булев ой

логики

то

есть

п р и

обоих

утв ержд ениях

TRUE

соста в ное

утв ержд ение

та кже

буд ет

TRUE

Е сли

же

хотя

бы

од но

из

д в ух

утв ержд ений

буд ет

FALSE

то

соста в ное

утв ер жд ение

буд ет

FALSE

.

Е сли

рез ульта т

од ного

из

утв ержд ений

неиз в естен

а

д ругой

оценив а ется

ка к

TRUE

то

состояние

неиз в естного

утв ержд ения

   

яв ляется

оп ред еляющ им

и

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

итогов ый

рез ульта т

та кже

неиз в естен

Е сли

рез ульта т

од ного

из

утв ержд ений

неиз в естен

а

д ругой

оценив а ется

ка к

FALSE

итогов ый

результа т

буд ет

FALSE

.  

Е сли

р езульта т

обоих

утв ержд ений

неиз в естен

то

рез ульта т

та кже

оста ется

неиз в естным

Опера тор

OR

Е сли

рез ульта т

д в ух

услов ий

объед иненных

оп ера тором

OR

из в естен

то

п рименяются

п рав ила

булев ой

логики

а

именно

если

хотя

бы

од но

из

д в ух

утв ержд ений

соотв етств ует

TRUE

то

и

соста в ное

утв ер жд ение

буд ет

TRUE

если

оба

утв ержд ения

оценив а ются

ка к

FALSE

то

соста в ное

утв ержд ение

буд ет

FALSE

.

Е сли

рез ульта т

од ного

из

утв ержд ений

неиз в естен

а

д ругой

оценив а ется

ка к

TRUE

,  

итогов ый

результа т

буд ет

TRUE

.  

Е сли

рез ульта т

од ного

из

утв ержд ений

неиз в естен

а

д ругой

оценив а ется

ка к

FALSE

то

состояние

неиз в естного

утв ер жд ения

играет

роль

След ов а тельно

итогов ый

результа т

та кже

неиз в естен

Е сли

р езульта т

обоих

утв ержд ений

неиз в естен

то

рез ульта т

та кже

оста ется

неиз в естным

П рим ечание


background image

48 

О тсутств ующ ие

  (

NULL

з на ч ения

целесообраз но

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

в

столбца х

п ред на з на ч енных

д л я

а грегиров а ния

ч тобы

из в леч ь

п реимущ еств а

из

сп особа

обработки

п устых

з на ч ений

в

функциях

COUNT

и

AVG

Практич ески

в о

в сех

оста льных

случ а ях

п устых

з на ч ений

след ует

из бега ть

та к

ка к

п ри

их

на лич ии

сущ еств енно

усложняется

кор ректное

п остр оение

услов ий

отбора

,   

п рив од я

иногд а

к

неп ред ска з уемым

рез ульта та м

в ыборки

Д ля

инд ика ции

же

отсутств ующ их

неп рименимых

или

п о

ка кой

-

то

п рич ине

неиз в естных

д а нных

можно

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

з на ч ения

п о

умолч а нию

уста на в лив а емые

з а ранее

  (

на п ример

с

п омощ ью

кома нд ы

CREATE

TABLE

(

раз д ел

 4.1). 

2.7. 

Упоря дочение

вы ходны х

пол ей

 (

ORDER

BY

К а к

уже

отмеч а лось

з а п иси

в

та блица х

реляционной

ба з ы

д а нных

неуп оряд оч ены

О д на ко

д а нные

в ыв од имые

в

   

результа те

в ып олнения

з а п роса

могут

быть

уп оряд оч ены

Д ля

э того

исп ользуется

оп ер а тор

ORDER

BY

который

п оз в оляет

уп оряд оч ив а ть

в ыв од имые

з а п иси

в

соотв етств ии

со

з на ч ениями

од ного

или

нескольких

в ыбранных

столбцов

При

этом

можно

з а д а ть

в оз раста ющ ую

  (

ASC

или

убыв а ющ ую

  (

DESC

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

сортир ов ки

д ля

ка жд ого

из

столбцов

По

умолч а нию

п р инята

в оз р а ста ющ а я

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

сортиров ки

.  

За п рос

п оз в оляющ ий

в ыбрать

в се

д а нные

из

та блицы

п ред метов

обуч ения

SUBJECT

с

уп оряд оч ив а нием

п о

на именов а ниям

п ред метов

в ыгляд ит

след ующ им

обра з ом

SELECT

 * 

   

FROM

SUBJECT

ORDER BY

  

SUBJ

_

NAME

Тот

же

сп исок

но

уп оряд оч енный

в

обратном

п оряд ке

можно

п ол уч ить

з а п росом

SELECT

 * 

   

FROM

SUBJECT

ORDER BY

  

SUBJ

_

NAME

 DESC

М ожно

уп ор яд оч ить

в ыв од имый

сп исок

п ред метов

обуч ения

п о

з на ч ениям

семестр ов

а

в нутри

семестров

п о

на именов а ниям

п ред метов


background image

49 

SELECT

 * 

FROM

SUBJECT

ORDER BY

  

SEMESTR

,

 SUBJ

_

NAME

Пред ложение

ORDER

BY

может

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

с

GROUP

BY

д ля

уп оряд оч ив а ния

груп п

з а п исей

Пр и

э том

оп ератор

ORDER

BY

в

з а п росе

в сег д а

д о лж ен

бы т ь

последним

SELECT

SUBJ

_

NAME

SEMESTR

MAX

(

HOUR

FROM

SUBJECT

GROUP BY

  

SEMESTR

SUBJ

_

NAME

ORDER BY

SEMESTR

При

уп оряд оч ив а нии

в место

на именов а ний

столбцов

можно

ука з ыв а ть

их

номера

имея

од на ко

в

в ид у

ч то

в

д а нном

случ а е

э то

номера

столбцов

ука з а нные

п ри

оп ред елении

в ыход ных

д а нных

в

з а п росе

а

не

номера

столбцов

в

та блице

Полем

с

номером

  1 

яв ляется

п ерв ое

п оле

ука з а нное

в

п ред ложении

ORDER

BY

неза в исимо

от

его

расп оложения

в

та блице

SELECT

SUBJ

_

ID

SEMESTR

FROM

SUBJECT

ORDER BY

2

DESC

В

э том

з а п росе

в ыв од имые

з а п иси

буд ут

уп оряд оч ены

п о

п ол ю

SEMESTR

.  

Е сли

в

п оле

которое

исп ользуется

д ля

уп оряд оч ив а ния

сущ еств уют

NULL-

з на ч ения

то

в се

они

р а з мещ а ются

в

конце

или

п ред шеств уют

в сем

оста льным

з на ч ениям

э того

п оля

УП Р АЖ НЕ НИ Я

21.

Пред п оложим

ч то

стип енд ия

в сем

студ ента м

ув елич ена

на

  20%. 

Н а п ишите

з а п рос

к

та блице

STUDENT

в ып олняющ ий

в ыв од

номера

студ ента

фа милию

студ ента

и

в елич ину

ув елич енной

стип енд ии

Выход ные

д а нные

уп оряд оч ить

а

п о

з на ч ению

п ослед него

столбца

(

в елич ине

стип енд ии

); 

б

в

а лфа в итном

п оряд ке

фа милий

студ ентов

22.

Н а п ишите

з а п рос

который

п о

та блице

EXAM_MARKS

п оз в оляет

на йти

а

ма ксима льные

и

б

минима льные

оценки

ка жд ого

студ ента

и

в ыв од ит

их

в месте

с

ид ентифика тором

студ ента

23.

Н а п ишите

з а п рос

в ып олняющ ий

в ыв од

сп иска

п ред метов

обуч ения

в


background image

50 

п оряд ке

а

убыв а ния

семестров

и

б

в оз ра ста ния

отв од имых

на

п р ед мет

ч а сов

Поле

семестра

в

в ыход ных

д а нных

д олжно

быть

п ер в ым

з а

ним

д олжны

след ов а ть

имя

п ред мета

обуч ения

и

ид ентифика тор

п ред мета

24.

Н а п ишите

з а п рос

который

в ып олняет

в ыв од

суммы

ба ллов

в сех

студ ентов

д ля

ка жд ой

д а ты

сд а ч и

э кз а менов

и

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

рез ульта ты

в

п оряд ке

убыв а ния

э тих

сумм

.  

25.

Н а п ишите

з а п рос

который

в ып олняет

в ыв од

а

сред него

б

минима льного

в

ма ксима льного

ба ллов

в сех

студ ентов

д ля

ка жд ой

д а ты

сд а ч и

э кз а менов

и

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

результа ты

в

п оряд ке

убыв а ния

э тих

з на ч ений

.  

2.8. 

В л ож енны е

подз апросы

SQL 

п оз в оляет

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

од ни

з а п росы

в нутри

д ругих

з а п росов

то

есть

в кла д ыв а ть

з а п росы

д руг

в

д руга

Пред п оложим

из в естна

фа милия

студ ента

  (

Петр о в

), 

но

неиз в естно

з на ч ение

п оля

STUDENT

_

ID

д ля

него

Ч тобы

из в леч ь

д а нные

обо

в сех

оценка х

э того

студ ента

можно

з а п иса ть

след ующ ий

з а п рос

SELECT

 * 

FROM

EXAM

_

MARKS

WHERE

STUDENT

_

ID

 = 

SELECT

STUDENT

_

ID 

FROM

STUDENT SURNAME

 = 

Петр о в’

); 

К а к

р а бота ет

з а п рос

 SQL 

со

св яз а нным

п од з а п росом

?  

Выбирается

стр ока

из

та блицы

имя

которой

ука з а но

в о

в нешнем

з а п р осе

.  

Вып олняется

п од з а п рос

и

п олуч енное

в

рез ульта те

его

в ып олнения

з на ч ение

п р именяется

д ля

а на лиз а

э той

строки

в

услов ии

п ред ложения

WHERE

в нешнего

з а п роса

.  

По

рез ульта ту

оценки

э того

услов ия

п ринима ется

решение

о

в ключ ении

или

не

в ключ ении

строки

в

соста в

в ыход ных

д а нных

Процед ур а

п ов торяется

д ля

след ующ ей

строки

та блицы

в нешнего

з а п р оса