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

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

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

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

Добавлен: 02.04.2021

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

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

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

 

п роста в лены

 

з на ч ения

 

оценок