Материал: SQL в вопросах и задачах

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

26 

Рез ульта т

в ып олнения

э того

з а п роса

имеет

в ид

: 

SURNAME 

NAME 

Петров

Петр

Л укин

А ртем

УП Р АЖ НЕ НИ Я

1.

Н а п ишите

з а п рос

д ля

в ыв од а

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

  (

номера

) 

п ред мета

обуч ения

, 

его

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

, 

семестра

, 

в

котором

он

ч ита ется

, 

и

колич еств а

отв од имых

на

него

ч а сов

д ля

в сех

строк

та блицы

SUBJECT

. 

2.

Н а п ишите

з а п рос

, 

п оз в оляющ ий

в ыв ести

в се

строки

та блицы

EXAM

_

MARKS

, 

в

которых

п р ед мет

обуч ения

имеет

номер

  (

SUBJ

_

ID

), 

р а в ный

 12.  

3.

Н а п ишите

з а п рос

, 

в ыбира ющ ий

в се

д а нные

из

та блицы

STUDENT

, 

р а сп оложив

столбцы

та блицы

в

след ующ ем

п оряд ке

: 

KURS

, 

SURNAME

, 

NAME

, 

STIPEND

. 

4.

Н а п ишите

з а п рос

SELECT

, 

который

в ып олняет

в ыв од

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

п ред метов

обуч ения

  (

SUBJ

_

NAME

) 

и

след ом

з а

ним

колич еств а

ч а сов

(

HOUR

) 

д ля

ка жд ого

п ред мета

обуч ения

  (

SUBJECT

) 

в

  4-

м

семестре

(

SEMESTR

). 

5.

Н а п ишите

з а п рос

, 

п оз в оляющ ий

п олуч ить

из

та блицы

EXAM

_

MARKS

з на ч ения

столбца

MARK

  (

э кз а мена ционна я

оценка

) 

д ля

в сех

студ ентов

, 

исключ ив

из

сп иска

п ов торение

од ина ков ых

строк

. 

6.

Н а п ишите

з а п рос

, 

который

в ып олняет

в ыв од

сп иска

фа милий

студ ентов

, 

обуч а ющ ихся

на

третьем

и

более

ста р ших

курса х

. 

7.

Н а п ишите

з а п рос

, 

в ыбирающ ий

д а нные

о

фа милии

, 

имени

и

номере

курса

д ля

студ ентов

, 

п олуч а ющ их

стип енд ию

бол ьше

 140. 

8.

Н а п ишите

з а п рос

, 

в ып олняющ ий

в ыборку

из

та блицы

SUBJECT

на з в а ний

в сех

п ред метов

обуч ения

, 

на

которые

отв од ится

более

 30 

ч а сов

.  

9.

Н а п ишите

з а п рос

, 

который

в ып олняет

в ыв од

сп иска

унив ерситетов

, 

р ейтинг

которых

п р ев ыша ет

 300 

ба ллов

. 

10.

Н а п ишите

з а п рос

к

та блице

STUDENT

д ля

в ыв од а

сп иска

фа милий

background image

27 

(

SURNAME

), 

имен

  (

NAME

) 

и

номера

курса

  (

KURS

) 

в сех

студ ентов

со

стип енд ией

большей

или

ра в ной

 100, 

и

жив ущ их

в

Воронеже

.  

11.

К а кие

д а нные

буд ут

п олуч ены

в

результа те

в ып олнения

з а п р оса

? 

SELECT

 * 

FROM

STUDENT

WHERE

 (

STIPEND

 < 

100

OR

NOT

 (

BIRTHDAY

 >= 

‘

10/03/1980

’

AND

STUDENT_ID

 > 

1003

 )); 

12.

К а кие

д а нные

буд ут

п олуч ены

в

результа те

в ып олнения

з а п р оса

? 

SELECT

 * 

FROM

STUDENT 

WHERE

NOT

 ((

BIRTHDAY 

= 

‘

10/03/1980

’

OR

STIPEND

 > 

100

) 

          

AND

STUDENT_ID

 > = 

1003

 ); 

background image

28 

2.2. 

О перат оры

IN

,

BETWEEN

,

LIKE

,

IS

NULL

При

з а д а нии

логич еского

услов ия

в

п ред ложении

WHERE

   

могут

быть

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

оп ера торы

IN

, 

BETWEEN

, 

LIKE

, 

IS

NULL

.  

О п ера торы

IN

 (

РАВЕН

ЛЮБОМУ

ИЗ

СПИСКА

) 

и

NOT

IN

 (

НЕ

РАВЕН

НИ

ОДНОМУ

ИЗ

СПИСКА

) 

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

д ля

срав нения

п ров еряемого

з на ч ения

п оля

с

з а д а нным

сп иском

. 

Э тот

сп исок

з на ч ений

ука з ыв а ется

в

скобка х

сп рав а

от

оп ератора

IN

.  

Постр оенный

с

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

IN

п р ед ика т

  (

услов ие

) 

сч ита ется

истинным

, 

если

з на ч ение

п оля

, 

имя

которого

ука з а но

слев а

от

IN

, 

со в па д а ет

(

п од р а з умев а ется

точ ное

сов п а д ение

) 

с

од ним

из

з на ч ений

, 

п ер еч исленных

в

сп иске

, 

ука з а нном

в

скобка х

сп ра в а

от

IN

.  

Пред ика т

, 

п остроенный

с

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

NOT

IN

, 

сч ита ется

истинным

, 

если

з на ч ение

п оля

, 

имя

которого

ука з а но

слев а

от

NOT

IN

, 

не

со в па д а ет

ни

с

од ним

из

з на ч ений

, 

п ереч исленных

в

сп иске

, 

ука з а нном

в

скобка х

сп рав а

от

NOT

IN

. 

П римеры

. 

Получ ить

из

та блицы

EXAM

_

MARKS

св ед ения

о

студ ента х

, 

и м еющ и х

э кз а мена ционные

оценки

только

 4 

и

 5. 

SELECT

 * 

FROM

EXAM

_

MARKS

WHERE

MARK

IN

 (

4

, 

5

); 

Получ ить

св ед ения

о

студ ента х

, 

не

и м ею щ и х

ни

од ной

э кз а мена ционной

оценки

, 

рав ной

 4 

и

 5. 

SELECT

 * 

FROM

EXAM

_

MARKS

WHERE

MARK

NOT

IN

 (

4

, 

5

); 

О п ера тор

BETWEEN

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

д л я

п ров ерки

услов ия

в хожд ения

з на ч ения

п оля

в

з а д а нный

интерв а л

, 

то

есть

в место

сп иска

з на ч ений

а тр ибута

э тот

оп ератор

з а д а ет

границы

его

из менения

.  

Н а п ример

, 

з а п рос

, 

в ып олняющ ий

в ыв од

з а п исей

о

п ред мета х

обуч ения

, 

колич еств о

ч а сов

, 

отв од имых

на

которые

, 

лежит

в

п ред ела х

межд у

 30 

и

 40, 

background image

29 

имеет

в ид

: 

SELECT 

*

    FROM 

SUBJECT

  

WHERE 

HOUR

 BETWEEN 30 AND 40

;

Г ранич ные

з на ч ения

, 

в

д а нном

случ а е

з на ч ения

  30 

и

  40, 

в хо д ят

в о

множеств о

з на ч ений

, 

с

которыми

п роиз в од ится

сра в нение

. 

О п ер а тор

BETWEEN

может

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

ка к

д ля

ч ислов ых

, 

та к

и

д ля

симв ольных

тип ов

п олей

. 

О п ера тор

LIKE

п рименим

только

к

симв ольным

п олям

тип а

CHAR

или

VARCHAR

  (

см

. 

раз д ел

  1.5, 

Т ип ы

д а нных

  SQL). 

Э тот

оп ера тор

осущ еств ляет

п росмотр

строков ых

з на ч ений

п олей

с

целью

оп ред еления

, 

в ход ит

ли

з а д а нна я

в

оп ера торе

LIKE

п од строка

  (

образ ец

п оиска

) 

в

симв ольную

строку

, 

яв ляющ уюся

з на ч ением

п р ов еряемого

п оля

.  

Д ля

того

, 

ч тобы

осущ еств лять

в ыборку

строков ых

з на ч ений

п о

з а д а нному

обра з цу

п од строки

, 

можно

п рименять

ша блон

искомого

образ ца

строки

, 

исп ользующ ий

след ующ ие

симв олы

: 

•

симв ол

п од ч еркив а ния

“

_

”

, 

ука з а нный

в

ша блоне

образ ца

, 

оп ред еляет

в оз можность

на лич ия

в

ука з а нном

месте

о д но го

любо го

симв ола

, 

•

симв ол

“

%

”

д оп уска ет

п рисутств ие

в

ука з а нном

месте

п ров еряемой

стр оки

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

любых

симв олов

п роиз в ольной

д лины

. 

П ример

.  

Н а п иса ть

з а п р ос

, 

в ыбира ющ ий

из

та блицы

STUDENT

св ед ения

о

студ ента х

, 

у

которых

фа мил ии

на ч ина ются

на

букв у

“Р”

. 

SELECT 

*

FROM 

STUDENT

WHERE 

SURNAME

 LIKE 

‘

Р

%

’

;

  

В

случ а е

в оз никнов ения

необход имости

в ключ ения

в

образ ец

д ля

срав нения

са мих

симв олов

“

_

”

и

“

%

”

п р именяют

, 

та к

на з ыв а емые

  escape-

симв олы

. 

Е сли

  escape-

симв ол

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

з на ку

“

_

”

и

“

%

”

, 

то

э ти

з на ки

буд ут

интерп ретиров а ться

букв а льно

. 

Н а п ример

, 

можно

з а д а ть

образ ец

п оиска

с

п омощ ью

след ующ его

в ыражения

  

LIKE 

‘

_\_

Р

’

ESCAPE

‘

\

’

. 

background image

30 

В

э том

в ыр а жении

симв ол

‘

\

’

с

п омощ ью

кл юч ев ого

слов а

ESCAPE

объяв л яется

  escape-

симв олом

. 

Перв ый

симв ол

“

_

”

в

з а д а нном

ша блоне

п оиска

‘

_\_

Р

’

буд ет

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

, 

ка к

и

ранее

, 

любому

на бору

симв олов

в

п ров ер яемой

строке

. 

О д на ко

в торой

симв ол

“

_

”

, 

след ующ ий

п осле

симв ола

‘

\

’

, 

объяв ленного

 escape-

симв олом

, 

уже

буд ет

интерп ретиров а ться

букв а льно

ка к

обыч ный

симв ол

, 

та к

же

ка к

и

симв ол

Р

в

з а д а нном

ша блоне

. 

О бращ а ем

в а ше

в нима ние

на

то

, 

ч то

ра ссмотренные

в ыше

оп ераторы

срав нения

“

=

, 

<

, 

>

, 

<=

, 

>=

, 

<>

”

и

оп ераторы

  

IN

, 

BETWEEN

и

LIKE

  

ни

в

коем

случ а е

нельзя

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

д ля

п ров ерки

сод ержимого

п оля

на

на лич ие

в

нем

п устого

з на ч ения

NULL

  (

см

. 

раз д ел

  1.5, 

Тип ы

д а нных

  SQL). 

Д ля

э тих

целей

сп ециа льно

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

оп ера торы

  

IS

NULL

 (

ЯВЛЯЕТСЯ

ПУСТЫМ

) 

и

IS

NOT

NULL

 (

ЯВЛЯЕТСЯ

НЕ

ПУСТЫМ

). 

УП Р АЖ НЕ НИ Я

1.

Н а п ишите

з а п рос

, 

в ып олняющ ий

в ыв од

на ход ящ ихся

в

та блице

EXAM_MARKS

номеров

п ред метов

обуч ения

, 

э кз а мены

п о

которым

сд а в а л ись

межд у

 10 

и

 20 

янв а р я

 1999 

год а

. 

2.

Н а п ишите

з а п рос

, 

в ыбира ющ ий

   

д а нные

обо

в сех

п ред мета х

обуч ения

, 

э кз а мены

п о

которым

сд а ны

  

студ ента ми

, 

имеющ ими

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

 12 

и

 32. 

3.

Н а п ишите

з а п рос

, 

который

в ып олняет

в ыв од

   

на з в а ний

п ред метов

обуч ения

, 

на ч ина ющ ихся

на

букв у

‘И’

. 

4.

Н а п ишите

з а п рос

, 

в ыбирающ ий

св ед ения

о

студ ента х

, 

у

котор ых

имена

на ч ина ются

на

букв ы

‘И’

или

‘С’

. 

5.

Н а п ишите

з а п рос

д ля

в ыбора

из

та блицы

EXAM

_

MARKS

з а п исей

, 

д ля

которых

отсутств уют

з на ч ения

оценок

 (

п оле

MARK

). 

6.

Н а п ишите

з а п рос

, 

в ып олняющ ий

в ыв од

из

та блицы

EXAM

_

MARKS

з а п исей

, 

д ля

которых

в

п оле

MARK

п роста в лены

з на ч ения

оценок

. 

Источник: https://files.student-it.ru/previewfile/15134