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

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

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

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

Добавлен: 02.04.2021

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

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

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

 

76 

80.

 

Н а п иса ть

 

з а п рос

в ып олняющ ий

 

в ыв од

 

сред него

 

колич еств а

 

уч ебных

 

ч а сов

 

п ред метов

 

обуч ения

п реп од а в а емых

 

студ ента м

 

в торого

 

курса

 

ВГ У

81.

 

Н а п иса ть

 

з а п рос

в ып олняющ ий

 

в ыв од

 

колич еств а

 

студ ентов

имеющ их

 

хотя

 

бы

 

од ну

 

неуд ов летв орительную

 

оценку

 

и

 

п рожив а ющ их

 

в

 

город е

не

 

сов п а д а ющ ем

 

с

 

город ом

 

их

 

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

82.

 

Н а п иса ть

 

з а п рос

в ып олняющ ий

 

в ыв од

 

сп иска

 

фа милий

 

студ ентов

имеющ их

 

только

 

отлич ные

 

оценки

 

и

 

п рожив а ющ их

 

в

 

город е

не

 

сов п а д а ющ ем

 

с

 

город ом

 

их

 

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

83.

 

Н а п иса ть

 

з а п рос

в ып олняющ ий

 

в ыв од

 

сп иска

 

фа милий

 

студ ентов

имеющ их

 

д в е

 

и

 

более

 

отлич ных

 

оценки

 

в

 

ка жд ом

 

семестре

и

 

п рожив а ющ их

 

в

 

город е

не

 

сов п а д а ющ ем

 

с

 

город ом

 

их

 

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

84.

 

Прив ед ите

 

ка к

 

можно

 

больше

 

формулиров ок

 

з а п роса

 

“Получ ить

 

фа милии

 

студ ентов

сд а в а в ших

 

э кз а мен

 

п о

 

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

85.

 

Прив ед ите

 

ка к

 

можно

 

больше

 

формулиров ок

 

з а п роса

 

“Получ ить

 

фа милии

 

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

п реп од а ющ их

 

информа тику”

 


background image

3. 

М а н и пули р о ва н и е

 

да н н ы ми

 

3.1. 

Ком анды

 

м анипул ирования

 

данны м и

 

В

 SQL 

д ля

 

в ып олнения

 

оп ер а ций

 

в в од а

 

д а нных

 

в

 

та блицу

их

 

из менения

 

и

 

уд а ления

 

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

 

три

 

кома нд ы

 

яз ыка

 

ма нип улиров а ния

 

д а нными

 

(DML). 

Э то

 

кома нд ы

 

 

INSERT

 (

вставить

), 

UPDATE

 (

обновить

), 

DELETE

 

(

удалить

).  

К ома нд а

 

INSERT

 

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

 

в ста в ку

 

в

 

та блицу

 

нов ой

 

строки

В

 

п ростейшем

 

случ а е

 

она

 

имеет

 

след ующ ий

 

в ид

:  

INSERT

 

INTO

 <

и м я

 

т а бли цы

>  

VALUES

 (<

зна чени е

>, <

зна чени е

>, 

); 

При

 

та кой

 

з а п иси

 

ука з а нные

 

в

 

скобка х

 

п осле

 

ключ ев ого

 

слов а

 

VALUES

  

з на ч ения

 

в в од ятся

 

в

 

п оля

 

д оба в ленной

 

в

 

та блицу

 

нов ой

 

строки

 

в

 

том

 

п оряд ке

в

 

котором

 

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

 

столбцы

 

ука з а ны

 

п ри

 

соз д а нии

 

та блицы

то

 

есть

 

в

 

оп ераторе

 

CREATE

 

TABLE

Н а п ример

в в од

 

нов ой

 

стр оки

 

в

 

та блицу

 

STUDENT

 

может

 

быть

 

осущ еств лен

 

след ующ им

 

образ ом

 

INSERT

 

INTO

 

STUDENT

 

VALUES

 (

101

,

Ива н о в’

,

Алекса н др ’

200

3

,

М о ск

ва ’

,

6/10/1979

15

); 

Ч тобы

 

та ка я

 

кома нд а

 

могла

 

быть

 

в ып олнена

та блица

 

с

 

ука з а нным

 

в

 

ней

 

именем

  (

STUDENT

д олжна

 

быть

 

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

 

оп ред елена

  (

соз д а на

кома нд ой

 

CREATE

 

TABLE

Е сли

 

в

 

ка кое

-

либо

 

п оле

 

необход имо

 

в ста в ить

 

NULL

-

з на ч ение

то

 

оно

 

в в од ится

 

ка к

 

обыч ное

 

з на ч ение

INSERT

 

INTO

 

STUDENT

 

 

VALUES

 (

101

,

Ива н о в’

NULL

200

3

,

М о ск

ва ’

,

6/10/1979

15

); 

В

 

случ а ях

когд а

 

необход имо

 

в в ести

 

з на ч ения

 

п олей

 

в

 

п оряд ке

отлич ном

 

от

 

п оряд ка

 

столбцов

з а д а нного

 

кома нд ой

 

CREATE

 

TABLE

или

 

если

 

требуется

 

в в ести

 

з на ч ения

 

не

 

в о

 

в се

 

столбцы

то

 

след ует

 

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

 

след ующ ую

 

форму

 

кома нд ы

 

INSERT

:

 

INSERT

 

INTO

 

STUDENT

 (

STUDENT

_

ID

CITY

SURNAME

NAME

 

VALUES

 (101, 

М о ск

ва ’

Ива н о в’

С а ша ’

); 

Столбца м

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

 

которых

 

не

 

ука з а ны

 

в

 

п р ив ед енном

 

в

 

скобка х

 

сп иске

а в тома тич ески

 

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

 

з на ч ение

 

п о

 

умолч а нию

если

 

оно

 


background image

 

78 

на з на ч ено

 

п р и

 

оп иса нии

 

та блицы

 (

кома нд а

 

CREATE

 

TABLE)

либо

 

з на ч ение

 

NULL

С

 

п омощ ью

 

кома нд ы

 

INSERT

 

можно

 

из в леч ь

 

з на ч ение

 

из

 

од ной

 

та блицы

 

и

 

раз местить

 

его

 

в

 

д ругой

к

 

п римеру

з а п росом

 

след ующ его

 

в ид а

:  

INSERT

 

INTO

 

STUDENT1

 

 

SELECT

 * 

 

FROM

 

STUDENT 

 

WHERE

 

CITY 

=

 

М о сква

При

 

этом

 

та блица

 

STUDENT1

 

д олжна

 

быть

 

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

 

соз д а на

 

кома нд ой

 

CREATE

 

TABLE

  (

раз д ел

  4.1) 

и

 

иметь

 

структуру

ид ентич ную

 

та блице

 

STUDENT

 

У да ление

 

строк

 

из

 

та блицы

 

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

 

с

 

п омощ ью

 

кома нд ы

 

DELETE

.  

След ующ ее

 

в ыражение

 

уд а ляет

 

в се

 

строки

 

та блицы

 

EXAM

_

MARKS1

DELETE

 

FROM

 

EXAM

_

MARKS1

В

 

рез ульта те

 

та блица

 

ста нов ится

 

п устой

  (

п осле

 

э того

 

она

 

может

 

быть

 

уд а лена

 

кома нд ой

 

DROP

 

TABLE

).  

Д ля

 

уд а ления

 

из

 

та блицы

 

сраз у

 

нескольких

 

строк

уд ов летв ор яющ их

 

некоторому

 

услов ию

 

можно

 

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

 

п ред ложением

 

WHERE

на п ример

,  

DELETE

 

FROM

 

EXAM

_

MARKS1

 

 

WHERE

 

STUDENT

_

ID

 = 

103

М ожно

 

уд а лить

 

груп п у

 

строк

 

DELETE

 

FROM

 

STUDENT1

 

 

WHERE

 

CITY

 = 

М о ск

ва ’

 


background image

 

79 

К ома нд а

 

UPDATE

 

п оз в оляет

 

изменять

то

 

есть

 

обнов лять

з на ч ения

 

некоторых

 

или

 

в сех

 

п олей

 

в

 

сущ еств ующ ей

 

строке

 

или

 

строка х

 

та блицы

Н а п ример

ч тобы

 

д ля

 

в сех

 

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

св ед ения

 

о

 

которых

 

на ход ятся

 

в

 

та блице

 

UNIVERSITY1

из менить

 

рейтинг

 

на

 

з на ч ение

  200, 

можно

 

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

 

конструкцию

UPDATE

 

UNIVERSITY1 

 

SET

 

RATING 

=

 

200

Д ля

 

ука з а ния

 

конкретных

 

строк

 

та блицы

з на ч ения

 

п олей

 

которых

 

д олжны

 

быть

 

из менены

в

 

кома нд е

 

UPDATE

 

можно

 

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

 

п ред ика т

ука з ыв а емый

 

в

 

п ред ложении

 

WHERE

UPDATE

 

UNIVERSITY1

 

 

SET

 

RATING 

200

 

 

WHERE

 

CITY 

=

 

М о сква

В

 

р езульта те

 

в ып олнения

 

э того

 

з а п р оса

 

буд ет

 

из менен

 

рейтинг

 

только

 

у

 

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

расп оложенных

 

в

 

М оскв е

.  

К ома нд а

 

UPDATE

 

п оз в оляет

 

из менять

 

не

 

только

   

од ин

но

 

и

 

множеств о

 

столбцов

Д ля

 

ука з а ния

 

конкретных

 

столбцов

з на ч ения

 

которых

 

д олжны

 

быть

 

мод ифициров а ны

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

 

п ред ложение

 

SET

Н а п ример

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

 

п ред мета

 

обуч ения

 

М а тема ти к

а

  (

д ля

 

него

 

SUBJ

_

ID 

=

 

43) 

д олжно

 

быть

 

з а менено

на

 

на з в а ние

 

Вы сша я

 

ма тема ти к

а

п р и

 

э том

 

ид ентифика ционный

 

номер

 

необход имо

 

сохранить

но

 

в

 

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

 

п оля

 

строки

 

та блицы

 

в в ести

 

нов ые

 

д а нные

 

об

 

э том

 

п ред мете

 

обуч ения

За п рос

 

буд ет

 

в ыгляд еть

 

след ующ им

 

обра з ом

UPDATE

 

SUBJECT1

 

SET

 

SUBJ

_

NAME 

=

 

Вы сша я

 

ма тема ти к

а

HOUR 

=

 

36

SEMESTER 

=

 

1

 

WHERE

 

SUBJ

_

ID 

=

 

43

В

 

п ред ложении

 

SET

 

кома нд ы

 

UPDATE

 

можно

 

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

 

ска лярные

 

в ыражения

ука з ыв а ющ ие

 

сп особ

 

из менения

 

з на ч ений

 

п оля

в

 

которые

 

могут

 

в ход ить

 

з на ч ения

 

из меняемого

 

и

 

д ругих

 

п олей

UPDATE

 

UNIVERSITY1

 

 

SET

 

RATING 

=

 RATING

*

2


background image

 

80 

Н а п ример

д ля

 

ув елич ения

 

в

 

та блице

 

STUDENT1 

з на ч ения

 

п оля

 

STIPEND

 

в

 

д в а

 

раз а

 

д ля

 

студ ентов

 

из

 

М оскв ы

 

можно

 

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

 

з а п р ос

 

UPDATE

 

STUDENT1

 

 

SET

 

STIPEND 

=

 STIPEND

*

2

 

 

WHERE

 

CITY 

=

 

М о ск

ва

Пред ложение

 

SET

 

не

 

яв ляется

 

п ред ика том

п оэ тому

 

в

 

нем

 

можно

 

ука з а ть

 

з на ч ение

 

NULL

 

след ующ им

 

образ ом

UPDATE

 

UNIVERSITY1

 

 

SET

 

RATING 

=

 

NULL

 

 

WHERE

 

CITY 

=

 

М о ск

ва

УП Р АЖ НЕ НИ Я

 

86.

 

Н а п ишите

 

кома нд у

котора я

 

в в од ит

 

в

 

та блицу

 

SUBJECT

 

строку

 

д ля

 

нов ого

 

п ред мета

 

обуч ения

 

со

 

след ующ ими

 

з на ч ениями

 

п олей

SEMESTER 

=

 

4

SUBJ

_

NAME 

=

 

Алгеб р а

HOUR  = 

72

SUBJ

_

ID 

=

 

201

87.

 

Вв ед ите

 

з а п ись

 

д л я

 

нов ого

 

студ ента

которого

 

з ов ут

 

О р лов

 

Н икола й

обуч а ющ егося

 

на

 

п ерв ом

 

курсе

 

ВГ У

жив ущ его

 

в

 

Воронеже

св ед ения

 

о

 

д а те

 

рожд ения

 

и

 

раз мер е

 

стип енд ии

 

не

 

из в естны

88.

 

Н а п ишите

 

кома нд у

уд а ляющ ую

 

из

 

та блицы

 

EXAM

_

MARKS

 

з а п иси

 

обо

 

в сех

 

оценка х

 

студ ента

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

 

которого

 

рав ен

 

100. 

89.

 

Н а п ишите

 

кома нд у

которая

 

ув елич ив а ет

 

на

 

5

 

з на ч ение

 

рейтинга

 

в сех

имеющ ихся

 

в

 

ба з е

 

д а нных

 

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

расп оложенных

 

в

 

Са нкт

-

Петербурге

90.

 

Из мените

 

в

 

та блице

 

з на ч ение

 

город а

в

 

котором

 

п рожив а ет

 

студ ент

 

Ив а нов

на

 

Во р о н еж

.