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

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

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

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

Добавлен: 02.04.2021

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

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

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

 

11 

Из

 

э тих

 

св ойств

 

отношения

 

в ытека ют

 

след ующ ие

 

в а жные

 

след ств ия

.  

 

Из

 

уника льности

 

кортежей

 

след ует

ч то

 

в

 

отношении

 

в сегд а

 

имеется

 

а тр ибут

 

или

 

на бор

 

а трибутов

п оз в оляющ их

 

и д ент и ф и ци р о в а т ь

 

кортеж

д ругими

 

слов а ми

 

в

 

отношении

 

в сегда

 

есть

 

п ер в ич ный

 

ключ

 

Из

 

неуп оряд оч енности

 

кортежей

 

след ует

в о

-

п ерв ых

ч то

 

в

 

отношении

 

не

 

сущ еств ует

 

д ругого

 

сп особа

 

а д реса ции

 

кортежей

кроме

 

а д реса ции

 

по

 

ключу

в о

-

в торых

ч то

 

в

 

отношении

 

не

 

сущ еств ует

 

та ких

 

п онятий

 

ка к

 

п ерв ый

 

кортеж

п ослед ний

п ред ыд ущ ий

след ующ ий

 

и

 

т

.

д

 

Из

 

неуп оряд оч енности

 

а трибутов

 

след ует

ч то

 

ед инств енным

 

сп особом

 

их

 

а д реса ции

 

в

 

з а п роса х

 

яв ляется

 

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

 

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

 

а тр ибута

.  

О тносительно

 

св ойств а

 

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

 

отношения

ка са ющ егося

 

отсутств ия

 

кортежей

-

д ублика тов

след ует

 

сд ела ть

 

в а жное

 

з а меч а ние

В

 

э том

 

п ункте

  SQL 

не

 

п олностью

 

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

 

реляционной

 

мод ели

А

 

именно

в

 

отношениях

яв ляющ ихся

 

рез ульта та ми

 

з а п росов

,  SQL 

д о пуска ет

 

на лич ие

 

од ина ков ых

 

строк

Д ля

 

их

 

устранения

 

в

 

з а п росе

 

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

 

ключ ев ое

 

слов о

 

DISTINCT

 (

см

ниже

). 

Информа ция

 

в

 

реляционных

 

ба з а х

 

д а нных

ка к

 

п ра в ило

хранится

 

не

 

в

 

од ной

 

та блице

-

отношении

а

 

в

 

нескольких

При

 

соз д а нии

 

нескольких

 

та блиц

 

в з а имосв яз а нной

 

информа ции

 

п ояв ляется

 

в оз можность

 

в ып олнения

 

более

 

сложных

 

оп ераций

 

с

 

д а нными

то

 

есть

 

более

 

сложной

 

обработки

 

д а нных

Д ля

 

работы

 

со

 

св яз а нными

 

д а нными

 

из

 

нескольких

 

та бл иц

 

в а жным

 

яв ляется

 

п онятие

 

та к

 

на з ыв а емых

 

в неш ни х

 

ключей

Внеш ни м

 

ключо м

 

та блицы

 

на з ыв а ется

 

а трибут

 

или

 

на бор

 

а трибутов

 

э той

 

та блицы

ка жд ое

 

з на ч ение

 

которых

 

в

 

текущ ем

 

состоянии

 

та блицы

 

в сегд а

 

сов п а д а ет

 

со

 

з на ч ением

 

а трибутов

яв л яющ ихся

 

ключ ом

в

 

д ругой

 

та блице

Внешние

 

ключ и

 

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

 

д ля

 

св яз ыв а ния

 

з на ч ений

 

а трибутов

 

из

 

раз ных

 

та блиц

С

 

п омощ ью

 

в нешних

 

ключ ей

 

обесп еч ив а ется

 

та к

 

на з ыв а ема я

 

ссылоч на я

 

целостность

 

ба з ы

 

д а нных

то

 

есть

   

согла сов а нность

 

д а нных

оп исыв а ющ их

 

од ни

 

и

 

те

 

же

 

объекты

но

 

хр а нящ ихся

 

в

 

раз ных

 

та блица х


background image

 

12 

1.2. 

О т л ичие

 SQL 

от

 

проц едурны х

 

я з ы ков

 

програм м ирования

 

Я з ык

 

SQL 

относится

 

к

 

кла ссу

 

неп роцед урных

 

яз ыков

 

п рогра ммиров а ния

В

 

отлич ие

 

от

 

унив ерса льных

 

п роцед урных

 

яз ыков

которые

 

та кже

 

могут

 

быть

 

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

 

д ля

 

работы

 

с

 

ба з а ми

 

д а нных

яз ык

 

SQL 

ориентиров а н

 

не

 

на

 

за пи си

а

 

на

 

м но ж ест в а

.  

Э то

 

оз на ч а ет

 

след ующ ее

В

 

ка ч еств е

 

в ход ной

 

информа ции

 

д ля

 

формулируемого

 

на

 

яз ыке

  SQL 

з а п роса

 

к

 

ба з е

 

д а нных

 

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

 

м но ж ест в о

 

ко р т еж ей

-

за пи сей

 

од ной

 

или

 

нескольких

 

та блиц

-

отношений

В

 

результа те

 

в ып олнения

 

з а п роса

 

та кже

 

образ уется

 

м но ж ест в о

 

ко р т еж ей

 

результирующ ей

 

та блицы

-

отношения

Д ругими

 

слов а ми

в

 SQL 

р езульта том

 

любой

 

оп ера ции

 

на д

 

отношениями

 

та кже

 

яв ляется

 

отношение

За п рос

  SQL 

з а д а ет

 

не

 

п р оцед уру

то

 

есть

 

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

 

д ейств ий

необход имых

 

д ля

 

п олуч ения

 

рез ульта та

а

 

услов ия

которым

 

д олжны

 

уд ов летв орять

 

кортежи

 

результирующ его

 

отношения

сформулиров а нные

 

в

 

термина х

 

в ход ного

  (

или

 

в ход ных

отношений

1.3. 

И нт еракт ивны й

 

и

 

встроенны й

 SQL 

Сущ еств уют

 

и

 

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

 

д в е

 

формы

 

яз ыка

  SQL: 

и нт ер а кт и в ны й

 

SQL

 

и

 

в ст р о енны й

 SQL

.  

Инт ер а кт и в ны й

  SQL

 

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

 

д ля

 

неп осред ств енного

 

в в од а

  SQL-

з а п росов

 

п ользов а телем

 

и

 

п олуч ения

 

результа та

 

в

 

интер а ктив ном

 

режиме

.  

Вст р о енны й

  SQL

 

состоит

 

из

 

кома нд

 SQL, 

в стр оенных

 

в нутрь

 

п рограмм

которые

 

обыч но

 

на п иса ны

 

на

 

некотором

 

д ругом

 

яз ыке

  (

Па ска ль

С

С

++ 

и

 

д р

.). 

Э то

 

д ела ет

 

п рогра ммы

на п иса нные

 

на

 

та ких

 

яз ыка х

более

 

мощ ными

гибкими

 

и

 

э ффектив ными

обесп еч ив а я

 

их

 

п р именение

 

д ля

 

работы

 

с

 

д а нными

хранящ имися

 

в

 

реляционных

 

ба з а х

Пр и

 

э том

од на ко

требуются

 

д оп олнительные

 

сред ств а

 

обесп еч ения

 

интер фейса

 SQL 

с

 

яз ыком

в

 

который

 

он

 

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

.  

Д а нна я

 

книга

 

п осв ящ ена

 

интера ктив ному

  SQL, 

п оэ тому

 

в

 

ней

 

не

 

обсужд а ются

 

в оп росы

 

п остроения

 

интерфейса

п оз в оляющ его

 

св яз а ть

 SQL 

с

 

д ругими

 

яз ыка ми

 

п рограммиров а ния

.   


background image

 

13 

 

1.4. 

С оставны е

 

части

 SQL 

И

 

интерактив ный

и

 

в строенный

  SQL 

п од раз д еляются

 

на

 

след ующ ие

 

соста в ные

 

ч а сти

.  

Язы к

 

О пр ед елени я

 

Д а нны х

 

  DDL

 

(Data  Definition  Language), 

д а ет

 

в оз можность

 

соз д а ния

из менения

 

и

 

уд а ления

 

раз лич ных

 

объектов

 

ба з ы

 

д а нных

 (

та блиц

инд ексов

п ользов а телей

п рив илегий

 

и

 

т

.

д

.). 

К

 

ч ислу

 

д оп олнительных

 

функций

 

яз ыка

 

оп ред еления

 

д а нных

  DDL 

могут

 

быть

 

в ключ ены

 

сред ств а

 

оп ред еления

 

огранич ений

 

целостности

 

д а нных

оп ред еления

 

п оряд ка

 

структур

 

хранения

 

д а нных

оп иса ния

 

э лементов

 

физ ич еского

 

уров ня

 

хра нения

 

д а нных

Язы к

 

О бр а бо т ки

 

Д а нны х

 

  DML  (Data  Manipulation  Language), 

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

 

в оз можность

 

в ыборки

 

информа ции

 

из

 

ба з ы

 

д а нных

 

и

 

ее

 

п реобра з ов а ния

Тем

 

не

 

менее

э то

 

не

 

д в а

 

р а з лич ных

 

яз ыка

а

 

комп оненты

 

ед иного

 SQL. 


background image

 

14 

1.5. 

Т ипы

 

данны х

 SQL 

В

 

яз ыке

  SQL 

имеются

 

сред ств а

п оз в ол яющ ие

 

д ля

 

ка жд ого

 

а трибута

 

ука з ыв а ть

 

тип

 

д а нных

которому

 

д олжны

 

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

 

в се

 

з на ч ения

 

э того

 

а трибута

.  

След ует

 

отметить

ч то

 

оп ред еление

 

тип ов

 

д а нных

 

яв ляется

 

той

 

ч а стью

в

 

которой

 

коммерч еские

 

реа лиз а ции

 

яз ыка

 

не

 

п олностью

 

согла суются

 

с

 

требов а ниями

 

официа льного

 

ста нд а р та

  SQL. 

Э то

 

объясняется

в

 

ч а стности

жела нием

 

сд ела ть

 SQL 

сов местимым

 

с

 

д ругими

 

яз ыка ми

 

п рогра ммиров а ния

1.5.1. 

Т ип

 

данны х

 

“строка

 

сим вол ов”

 

Ста нд а р т

 

п од д ержив а ет

 

только

 

од ин

 

тип

 

д ля

 

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

 

текста

CHARACTER(CHAR)

Э тот

 

тип

 

д а нных

 

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

 

собой

 

симв ольные

 

строки

 

фиксиров а нной

 

д лины

Е го

 

синта ксис

 

имеет

 

в ид

CHARACTER

 [(

д ли на

)]  

или

  

CHAR

 [(

д ли на

)]. 

Текстов ые

 

з на ч ения

 

п оля

 

та блицы

д ля

 

которого

 

оп ред елен

 

тип

 

CHAR

имеют

 

ф и кси р о в а нную

 

д лину

которая

 

оп ред еляется

 

п а р а метром

 

д ли на

Э тот

 

п а р а метр

 

может

 

п ринима ть

 

з на ч ения

 

от

  1 

д о

  255, 

то

 

есть

 

строка

 

может

 

сод ержа ть

 

д о

  255 

симв олов

Е сли

 

в о

 

в в од имой

 

в

 

п оле

 

текстов ой

 

конста нте

 

фа ктич еское

 

ч исло

 

симв олов

 

меньше

 

ч исла

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

   

п а р а метром

 

д ли на

то

 

э та

 

конста нта

 

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

 

д оп олняется

 

сп ра в а

 

п робела ми

 

д о

 

з а д а нного

 

ч исла

 

симв олов

Н екоторые

 

реа лиз а ции

 

яз ыка

  SQL 

п од д ер жив а ют

 

в

 

ка ч еств е

 

тип а

 

д а нных

 

строки

 

п еременной

 

д лины

Э тот

 

тип

 

может

 

обоз на ч а ться

 

ключ ев ыми

 

слов а ми

   

VARCHAR()

CHARACTER

 

VARYING

 

или

 

CHAR

 

VARYING()

О н

 

оп исыв а ет

 

текстов ую

 

строку

которая

 

может

 

иметь

 

пр о и зв о льную

 

д лину

 

д о

 

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

 

конкретной

 

реа лиз а цией

  SQL 

ма ксимума

  (

в

  Oracle 

д о

  2000 

симв олов

). 

В

 

отлич ие

 

от

 

тип а

 

CHAR

 

в

 

э том

 

случ а е

 

п ри

 

в в од е

 

текстов ой

 

конста нты

фа ктич еска я

 

д лина

 

которой

 

меньше

 

з а д а нной

не

 

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

 

ее

 

д оп олнения

 

п робела ми

 

д о

 

з а д а нного

 

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

 

з на ч ения

.  

К онста нты

имеющ ие

 

тип

 

CHARACTER

 

и

 

VARCHAR

в

 

в ыр а жениях

  SQL 

з а ключ а ются

 

в

 

од иноч ные

 

ка в ыч ки

на п ример

 

т екст

.  


background image

 

15 

След ующ ие

 

п ред ложения

 

э кв ив а лентны

VARCHAR

[(

д ли на

)], 

CHAR

 

VARYING

[(

д ли на

)],    

CHARACTER

 

VARYING

[(

д ли на

)] 

Е сли

 

д лина

 

строки

 

не

 

ука з а на

 

яв но

она

 

п ола га ется

 

рав ной

 

од ному

 

симв олу

 

в о

 

в сех

 

случ а ях

По

 

ср а в нению

 

с

 

тип ом

 

CHAR

 

тип

 

д а нных

 

VARCHAR

 

п оз в оляет

 

более

 

э кономно

 

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

 

п а мять

в ыд еляемую

 

д л я

 

хранения

   

текстов ых

 

з на ч ений

и

 

ока з ыв а ется

 

более

 

уд обным

 

п ри

 

в ып олнении

 

оп ераций

 

св яз а нных

 

со

 

срав нением

 

текстов ых

 

конста нт

1.5.2. 

Числ овы е

 

т ипы

 

данны х

 

Ста нд а р тными

 

ч ислов ыми

 

тип а ми

 

д а нных

 SQL 

яв ляются

 

INTEGER

 

 

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

 

д ля

 

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

 

целых

 

ч исел

 

в

 

д иа п а з оне

 

от

  

2

31

 

д о

 +2

31

.  

 

SMOLLINT

 

 

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

 

д ля

 

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

 

целых

 

ч исел

 

в

 

д иа п а з оне

 

меньшем

ч ем

 

д ля

 

INTEGER

а

 

именно

 

 

от

  

2

15

 

д о

 +2

15

.  

 

DECIMAL 

(

т о чно ст ь

[,

м а сш т а б

])

 

 

д есятич ное

 

ч исло

 

с

 

фиксиров а нной

 

точ кой

,   

точ ность

 

ука з ыв а ет

сколько

 

з на ч а щ их

 

цифр

 

имеет

 

ч исло

М а сшта б

 

ука з ыв а ет

 

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

 

ч исло

 

цифр

 

сп рав а

 

от

 

точ ки

 

 

NUMERIC 

(

т о чно ст ь

[,

м а сш т а б

])

 

 

д есятич ное

 

ч исло

 

с

 

фиксир ов а нной

 

точ кой

та кое

 

же

ка к

 

и

 

DECIMAL

 

FLOAT 

[(

т о чно ст ь

)]

 

 

ч исло

 

с

 

п ла в а ющ ей

 

точ кой

 

и

 

ука з а нной

 

минима льной

 

точ ностью

 

REAL

 

 

ч исло

 

та кое

 

же

ка к

 

п р и

 

тип е

 

FLOAT

з а

 

исключ ением

 

того

ч то

 

точ ность

 

уста на в лив а ется

 

п о

 

умолч а нию

 

в

 

з а в исимости

 

от

 

конкр етной

 

реа лиз а ции

 SQL

.

 

 

DOUBLE  PRECISION

 

 

ч исло

 

та кое

 

же

ка к

 

и

 

REAL

но

 

точ ность

 

в

 

д в а

 

раз а

 

п рев ыша ет

 

точ ность

 

д ля

 

REAL

.

 

СУ Б Д

  Oracle 

исп ользует

 

д оп олнительно

 

тип

 

д а нных

 

NUMBER

 

д ля

 

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

 

в сех

 

ч ислов ых

 

д а нных

целых

с

 

фиксиров а нной

 

или