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

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

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

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

Добавлен: 02.04.2021

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

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

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

 

21 

Та блица

 1.5. 

EXAM

_

MARKS

 (

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

 

оценки

EXAM

_

ID 

STUDENT

_

ID

 

SUBJ

_

ID

 

MARK

 

EXAM

_

DATE

 

145 

12 

10 

12/01/2000 

34 

32 

10 

23/01/2000 

75 

55 

10 

05/01/2000 

238 

12 

22 

17/06/1999 

639 

55 

22 

NULL

 

22/06/1999 

43 

22 

18/01/2000 

… …

 

… …

 

… …

 

… …

 

… …

 

EXAM

_

ID

 

 

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

 

экзамена

,

 

STUDENT

_

ID

 

 

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

 

студента

,

 

SUBJ

_

ID

 

 

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

 

предмета

 

обучения

MARK

 

 

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

 

оценка

,

 

EXAM

_

DATE

 

 

дата

 

экзамена

 
 

Та блица

 1.6. 

SUBJ

_

LECT

 (

Учебные

 

дисциплины

 

преподавателей

LECTURER

 _

ID

 

SUBJ

_

ID

 

24 

24 

46 

46 

74 

74 

108 

108 

276 

276 

328 

328 

… …

 

… …

 

LECTURER

_

ID

 

 

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

 

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

,

 

SUBJ

_

ID

 

 

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

 

предмета

 

обучения

В О П Р О С Ы

 

1. 

К а кие

 

п оля

 

п рив ед енных

 

та блиц

 

яв ляются

 

п ерв ич ными

 

ключ а ми

2. 

К а кие

 

д а нные

 

хра нятся

 

в

 

столбце

 2 

в

 

та блице

 

“Пр ед мет

 

обуч ения”

3. 

К а к

 

п о

-

д ругому

 

на з ыв а ется

 

строка

Столбец

4. 

Поч ему

 

мы

 

не

 

можем

 

з а п росить

 

д ля

 

п росмотра

 

п ер в ые

 

п ять

 

строк


background image

 

22 

2. 

Вы б о р к

а

 

да н н ы х

 (

о пер а то р

 

SELECT

2.1. 

П ростей ш ие

 SELECT-

з апросы

 

О п ера тор

 

SELECT

  (

ВЫБРАТЬ

яз ыка

  SQL 

яв ляется

 

са мым

 

в а жным

 

и

 

са мым

 

ч а сто

 

исп ользуемым

 

оп ератор ом

О н

 

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

 

д ля

 

в ы бо р ки

 

информа ции

 

из

 

та блиц

 

ба з ы

 

д а нных

У п р ощ енный

 

синта ксис

 

оп ера тора

 

SELECT

 

в ыгляд ит

 

след ующ им

 

обр а з ом

 

SELECT [DISTINCT] 

<

спи со к

 

а тр и б уто в

>

 

 

FROM 

<

спи со к

 

та б ли ц

>

 

 

[WHERE 

<

усло ви е

 

вы б о р к

и

>

 

[ORDER BY 

<

спи со к

 

а тр и б уто в

>

 

[GROUP BY 

<

спи со к

 

а тр и б уто в

>

 

[HAVING 

<

усло ви е

>

 

[UNION 

<

вы р а ж ен и е

 

с

 

о пер а то р о м

 

SELECT

>

]

;

 

 

В

 

кв а д ра тных

 

скобка х

 

ука з а ны

 

э лементы

которые

 

могут

 

отсутств ов а ть

 

в

 

з а п росе

.   

К люч ев ое

 

слов о

 

SELECT

 

сообщ а ет

 

ба з е

 

д а нных

ч то

 

д а нное

 

п ред ложение

 

яв ляется

 

з а п росом

 

на

 

и зв лечени е

 

информа ции

После

 

слов а

 

SELECT

 

ч ерез

 

з а п ятую

 

п ер еч исляются

 

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

 

по лей

  (

сп исок

 

а трибутов

), 

сод ержимое

 

которых

 

з а п рашив а ется

О бяз а тельным

 

ключ ев ым

 

слов ом

 

в

 

п р ед ложении

-

з а п росе

 

SELECT

 

яв ляется

 

слов о

 

FROM

  (

ИЗ

). 

За

 

ключ ев ым

 

слов ом

 

FROM

 

ука з ыв а ется

 

сп исок

 

раз д еленных

 

з а п ятыми

 

имен

 

та бл иц

,  

из

  

котор ых

 

из в лека ется

 

информа ция

.  

Н а п ример

,  

 

SELECT

 

NAME

SURNAME

 

 

 

FROM

 

STUDENT

Л юбой

  SQL-

з а п рос

 

д олжен

 

з а ка нч ив а ться

 

симв олом

 

;

  (

т о чка

 

с

 

за пят о й

)

.  


background image

 

23 

Прив ед енный

 

з а п рос

 

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

 

в ыборку

 

в сех

 

з на ч ений

 

п олей

 

NAME

 

и

 

SURNAME

 

из

 

та блицы

 

STUDENT

.  

Е го

 

рез ульта том

 

яв ляется

 

та блица

 

след ующ его

 

в ид а

NAME 

SURNAME 

Ив а н

 

Ив а нов

 

Петр

 

Петр ов

 

Ва д им

 

Сид ор ов

 

Б орис

 

К уз нецов

 

О льга

 

Зайцева

  

А нд рей

 

Па в лов

 

Па в ел

 

К отов

 

А ртем

 

Л укин

 

А нтон

 

Петр ов

 

Ва д им

 

Б елкин

 

… …

 

… …

 

Поряд ок

 

след ов а ния

 

столбцов

 

в

 

э той

 

та блице

 

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

 

п оряд ку

 

п олей

 

NAME

 

и

 

SURNAME

ука з а нному

 

в

 

з а п росе

а

 

не

 

их

 

п оряд ку

 

в о

 

в ход ной

 

та блице

 

STUDENT

Е сли

 

необход имо

 

в ыв ести

 

з на ч ения

 

в сех

 

столбцов

 

та блицы

то

 

можно

 

в место

 

п ереч исления

 

их

 

имен

 

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

 

симв ол

  

 * 

 (

з в езд оч ка

). 

 

SELECT

 * 

 

 

FROM

 

STUDENT

;

 

В

 

д а нном

 

случ а е

 

в

 

р ез ульта те

 

в ып олнения

 

з а п роса

 

буд ет

 

п олуч ена

 

в ся

 

та блица

 

STUDENT

Е щ е

 

ра з

 

обра тим

 

в нима ние

 

на

 

то

ч то

 

п олуч а емые

 

в

 

рез ульта те

  SQL-

з а п роса

 

та блицы

 

не

 

в

 

п олной

 

мере

 

отв еч а ют

 

оп ред елению

 

реляционного

 

отношения

В

 

ч а стности

в

 

них

 

могут

 

ока з а ться

 

кортежи

 

с

 

од ина ков ыми

 

з на ч ениями

 

а трибутов

Н а п ример

з а п рос

 

“Получ ить

 

сп исок

 

на з в а ний

 

город ов

гд е

 

п рожив а ют

  

студ енты

св ед ения

 

о

 

которых

 

на ход ятся

 

в

 

та блице

 

STUDENT

можно

 

з а п иса ть

 

в

 

след ующ ем

 

в ид е

 

 

SELECT

  

CITY

  

FROM

  

STUDENT

Е го

 

результа том

 

буд ет

 

та блица

 


background image

 

24 

CITY

 

О рел

 

К урск

 

Москв а

 

Б рянск

 

Л ип ецк

 

В оронеж

 

Б елгор од

 

В оронеж

 

NULL

 

В оронеж

 

… …

 

Вид но

ч то

 

в

 

та блице

 

в стреч а ются

 

од ина ков ые

 

строки

  (

в ыд елены

 

жирным

 

шрифтом

). 

Д ля

 

исключ ения

 

из

 

рез ульта та

 

SELECT

-

з а п роса

 

п ов торяющ ихся

 

з а п исей

 

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

 

кл юч ев ое

 

слов о

 

DISTINCT

 (

ОТЛИЧНЫЙ

). 

Е сли

 

з а п рос

 

SELECT

 

из в лека ет

 

множеств о

 

п олей

то

 

DISTINCT

 

и сключа ет

 

д ублика ты

 

строк

в

 

которых

 

з на ч ения

 

в сех

 

в ыбр а нных

 

п олей

 

ид ентич ны

.  

За п рос

 

“О п ред елить

 

сп исок

 

на з в а ний

 

р а зли чны х

 

город ов

гд е

 

п рожив а ют

 

студ енты

св ед ения

 

о

 

которых

 

на ход ятся

 

в

 

та блице

 

STUDENT

можно

 

з а п иса ть

 

в

 

след ующ ем

 

в ид е

 

SELECT

 

DISTINCT

 CITY

  

 

 

FROM

 

STUDENT

В

 

результа те

 

п олуч им

 

та блицу

в

 

которой

 

д ублика ты

 

строк

 

исключ ены

CITY

 

О рел

 

К урск

 

Москв а

 

Б рянск

 

Л ип ецк

 

Воронеж

 

Б елгор од

 

NULL

 

… …

 

К люч ев ое

 

слов о

 

ALL

  (

ВСЕ

), 

в

 

отлич ие

 

от

 

DISTINCT

ока з ыв а ет

 

п ротив оп оложное

 

д ейств ие

то

 

есть

  

п ри

 

его

 

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

 

п ов торяющ иеся

 

строки

 

в ключа ют ся

 

в

 

соста в

 

в ыход ных

 

д а нных

Режим

з а д а в а емый

 


background image

 

25 

ключ ев ым

 

слов ом

 

ALL

д ейств ует

 

п о

 

умолч а нию

п оэ тому

 

в

 

реа льных

 

з а п роса х

 

д ля

 

э тих

 

целей

 

оно

 

п рактич ески

 

не

 

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

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

 

в

 

оп ер а торе

 

SELECT

 

п ред ложения

оп ред еляемого

 

ключ ев ым

 

слов ом

 

WHERE

  (

ГДЕ

), 

п оз в оляет

 

з а д а в а ть

 

в ыражение

 

услов ия

 

(

п ред ика т

), 

п ринима ющ ее

 

з на ч ение

 

и с т и на

 

или

 

л о ж ь

 

д ля

 

з на ч ений

 

п олей

 

строк

 

та блиц

к

 

которым

 

обращ а ется

 

оп ератор

 

SELECT

Пред ложение

 

WHERE

 

оп ред еляет

к а к ие

 

ст р ок и

 

ука за нны х

 

т а бли ц

 

д о лж ны

 

бы т ь

 

в ы бр а ны

В

 

та блицу

яв ляющ уюся

 

рез ульта том

 

з а п р оса

в ключ а ются

 

только

 

те

 

строки

д ля

 

которых

 

услов ие

  (

п ред ика т

), 

ука з а нное

 

в

 

п ред ложении

 

WHERE

п ринима ет

 

з на ч ение

 

и с т и на

П ример

.

 

 

Н а п иса ть

 

з а п рос

в ып олняющ ий

 

в ыборку

 

имен

 (

NAME)

 

в сех

 

студ ентов

 

с

 

фа милией

  (

SURNAME)

 

Петр о в

св ед ения

 

о

 

которых

 

на ход ятся

 

в

 

та блице

 

STUDENT.

 

 

SELECT

  

SURNAME

,  

NAME

 

 

 

FROM

 

STUDENT

 

 

 

WHERE

 

SURNAME

 = 

Петр о в

Рез ульта том

 

э того

 

з а п роса

 

буд ет

 

та блица

SURNAME 

NAME 

Петров

 

Петр

 

Петров

 

А нтон

 

В

 

з а д а в а емых

 

в

 

п ред ложении

 

WHERE

 

услов иях

 

могут

 

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

 

оп ерации

 

сра в нения

оп р ед еляемые

 

след ующ ими

 

оп ератор а ми

=

  (

ра в но

), 

>

 

(

больше

), 

<

 (

меньше

), 

>=

 (

больше

 

или

 

ра в но

), 

<=

 (

меньше

 

или

 

рав но

), 

<>

 (

не

 

рав но

), 

а

 

та кже

 

логич еские

 

оп ераторы

  

AND

OR

 

и

 

NOT

.  

Н а п ример

з а п рос

 

д ля

 

п олуч ения

 

и м ен

 

и

 

ф а м и ли й

 

студ ентов

обуч а ющ ихся

 

на

 

т р ет ьем

 

кур се

 

и

 

п олуч а ющ их

 

стип енд ию

  (

ра з мер

 

стип енд ии

 

бо льш е

 

нуля

буд ет

 

в ыгляд еть

 

та ким

 

образ ом

SELECT

 

NAME

SURNAME 

       

FROM

 

STUDENT 

       

WHERE

 

KURS

 

=

 

3

 

AND

 

STIPEND

 

>

 

0