Файл: Управление данными (пособие).pdf

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

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

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

Добавлен: 31.03.2021

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

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

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

8. 

Язык

 SQL  

Язык

 

запросов

 

к

 

базам

 

данных

 SQL 

появился

 

в

 70-

е

 

годы

Его

 

прототип

 

был

 

разработан

 

фирмой

 IBM 

и

 

известен

 

под

 

названием

 SEQUEL (Structured 

English QUEry Language). SQL 

вобрал

 

в

 

себя

 

достоинства

 

реляционной

 

модели

в

 

частности

 

то

что

 

в

 

ее

 

основе

 

лежит

 

математический

 

аппарат

 

реляционной

 

 

зуя

 

при

 

этом

 

сравнительно

 

небольшое

 

число

 

операторов

 

и

 

простой

 

синтаксис

Благодаря

 

своим

 

качествам

 

язык

 SQL 

стал

 

вначале

  «

де

-

факто

», 

а

 

затем

 

и

 

офиц

в

м ти

у

 SQL 

посвящено

 

большое

 

число

 

книг

в

 

том

 

числе

 

и

 

учебного

 

назначения

некоторые

 

из

 

них

 

приведены

 

в

 

списке

 

литературы

 

данного

 

пособия

 

[9-12]

в

 

частности

учебное

 

пособие

 [9] 

специально

 

посвящено

 

вопросам

 

практического

 

изучения

 

языка

 SQL. 

В

 

связи

 

с

 

эт

 

пособии

 

мы

 

имеющие

 

е

 

алгебры и

 

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

 

исчисления

исполь

иально

 

утвержденным

 

в

 

качестве

 

стандарта

 

языка

 

для

 

работы

 

с

 

реляционными

 

базами

 

данных

поддерживаемого

 

всеми

 

ведущими

 

мировыми

 

фирмами

действующими

 

в

 

области

 

технологии

 

баз

 

данных

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

 

выразительного

 

и

 

эффективного

 

стандартного

 

языка

 

поз олило

 

в

 

настоящее

 

время

 

обеспечить

 

высокую

 

степень

 

независи ос

 

разрабатываемых

 

прикладных

 

программных

 

систем

 

от

 

конкретного

 

типа

 

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

 

СУБД

существенно

 

поднять

 

уровень

 

и

 

унификацию

 

инструментальных

 

средств

 

разработки

 

приложений

работающих

 

с

 

реляционными

 

базами

 

данных

Говоря

 

о

 

стандарте

 

языка

 SQL, 

следует

 

заметить

что

 

большинство

 

его

 

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

 

реализаций

 

имеют

 

большие

 

или

 

меньшие

 

отступления

 

от

 

стандарта

Это

конечно

ухудшает

 

совместимость

 

систем

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

 

различные

  «

диалекты

» SQL. 

С

 

другой

 

стороны

полезные

 

расширения

 

реализаций

 

языка

 

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

 

стандарта

 

являются

 

средством

 

развития

 

языка

 

и

 

со

 

временем

 

включаются

 

в

 

новые

 

редакции

 

стандарта

.  

Язык

им

 

в

 

данном

рассмотрим

 

лишь

 

важные

 

общие

 

особенности

 

данного

 

языка

значени для

 

последующего

 

изложения

 

материала


background image

 

72

8.1. 

Отличие

 SQL 

от

 

процедурных

 

языков

 

ассу

 

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

 

языков

 

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

е

 

также

 

могут

 

быть

 

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

 

не

 

на

 

пи

 

к

е в

 

8.2

Существуют

 

и

 

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

 

две

 

формы

 

языка

 SQL: 

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

 SQL

 

и

 

встроенный

 SQL

Интерактивн

L

 

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

 

для

 

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

 

ввода

 

и

 

получе

зульт

-

запросов

 

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

 

в

 

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

 

режиме

.  

Встроенный

 

тоит

 

из

 

команд

 SQL, 

встроенных

 

внутрь

 

программ

которы

чно

 

написаны

 

на

 

некотором

 

другом

 

языке

 (

Паскаль

С

С

++

 

и

 

др

.). 

Это

 

д

рогр

написанные

 

на

 

таких

 

языках

более

 

мощными

 

и

 

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

об

ивая

 

возможность

 

работы

 

с

 

помощью

 

них

 

с

 

данными

хранящимися

 

в

 

онных

 

базах

 

данных

требуя

однако

введения

 

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

 

с

обеспечивающих

 

интерфейс

 SQL 

с

 

языком

в

 

который

 

он

 

встр

ется

.  

 

быть

 

включены

 

также

 

средства

 

определения

 

ограничений

 

целостности

 

данных

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

 

Язык

 SQL – 

относится

 

к

 

кл

В

 

отличие

 

от

 

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

 

процедурных

 

языков

которы

спользованы

 

для

 

работы

 

с

 

базами

 

данных

язык

 SQL 

и

за си

,

а

 

на

 

множества

Это

 

означает

 

следующее

В

 

ачеств

 

ходной

 

информации

 

для

 

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

 

на языке

 SQL 

запроса

 

к

 

базе

 

данных

 

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

 

множество

 

кортежей

-

записей

 

одной

 

или

 

нескольких

 

таблиц

-

отношений

В

 

результате

 

выполнения

 

запроса

 

также

 

образуется

 

множество

 

кортежей

 

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

 

таблицы

-

отношения

Другими

 

словами

 

в

 SQL 

результатом

 

любой

 

операции

 

над

 

отношениями

 

также

 

является

 

отношение

Запрос

 SQL 

задает

 

не

 

процедуру

т

.

е

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

 

действий

необходимых

 

для

 

получения

 

результата

а

 

условия

которым

 

должны

 

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

 

кортежи

 

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

 

отношения

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

 

в

 

терм

го

 (

или

 

входных

отношений

инах

 

входно

Формы

 

и

 

составные

 

части

 SQL 

.  

ый

 SQ

ния

 

ре

ата

 SQL

SQL

 

сос

е

 

обы

елает

 

п

аммы

еспеч

реляци

редств

аива

И

 

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

и

 

встроенный

 SQL 

обычно

 

разделяют

 

на

 

следующие

  

составные

 

части

.  

Язык

 

Определения

 

Данных

– DDL

 

(Data Definition Language), 

дает

 

возможность

 

создания

изменения

 

и

 

удаления

 

различных

 

объектов

 

базы

 

данных

 

(

таблиц

индексов

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

привилегий

 

и

 

т

.

д

.). 

К

 

числу

 

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

 

функций

 

языка

 

определения

 

данных

 DDL 

могут

 


background image

 

73

определения

 

орядка

 

в

 

структурах

 

ранения

 

данных

описания

 

элементов

 

физического

 

уровня

 

хра

п

х

нения

 

данных

нящейся

 

в

 

ней

 

данных

это

 

различных

 

языка

а

 

компоненты

 

единого

 SQL. 

8.3. 

словия

 

и

 

терминология

 

Ключевые

 

слова

 

– 

это

 

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

 

в

 

выражениях

 SQL 

слова

которые

 

имеют

ьное

 

назначение

Например

они

 

могут

 

обозначать

 

конкретные

 

команд

Ключевые

 

слова

 

нельзя

 

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

 

для

 

других

 

целей

наприм

естве

 

имен

 

объектов

 

базы

 

данных

.  

Операторы

 SQL 

являются

 

инструкциями

с

 

помощью

 

которых

 

произв

бращение

 SQL 

к

 

базе

 

данных

Операторы

 

состоят

 

из

 

одной

 

или

 

более

 

отдельных

 

логических

 

частей

называемых

 

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

Пред

ответственно

строка

 

и

 

 

SELECT-

запросы

 

 

  Q

 

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

 

оператором

Он

 

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

 

для

 

выборки

 

данных

Упрощенный

 

синтаксис

 

оператора

 

м

 

образом

Язык

 

Обработки

 

Данных

 – DML (Data Manipulation Language), 

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

 

возможность

 

выборки

 

информации

 

из

 

базы

 

данных

 

и

 

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

 

хра

Тем

 

не

 

менее

 

не

 

два

У

 

специал

ы

 SQL

ер

 

в

 

кач

одится

 

о

ложения

 

начинаются

 

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

 

ключевым

 

словом

 

и

 

состоят

 

из

 

ключевых

 

слов

 

и

 

аргументов

Следует

 

обратить

 

внимание

 

на

 

то

что

 

термины

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

 

в

 

языке

 

SQL, 

несколько

 

отличаются

 

от

 

терминов

принятых

 

при

 

описании

 

реляционной

 

модели

В

 

частности

вместо

 

термина

 

отношение

 

в

 

нем

 

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

 

термин

 

таблица

вместо

 

терминов

 

кортеж

 

и

 

атрибут

со

столбец

8.4. 

Выборка

 

данных

Оператор

 

SELECT

  

Простейшие

Оператор

 

SELECT

(

ВЫБРАТЬ

языка

S L 

является

 

самым

 

важным

 

и

 

самым

 

часто

информации

 

из

 

таблиц

 

базы

 

SELECT

 

выглядит

 

следующи

 


background image

 

74

SEL

 

ператором

 

SELECT

>

]

;

 

 

казаны

 

элементы

которые

 

могут

 

в

 

запросе

 

Ключе

УБД

что

 

данное

 

предложение

 

является

 

запросом

 

на

 

извлечение

 

информации

После

 

слова

 

SELECT

 

через

 

запятую

 

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

 

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

 

полей

  (

список

 

атрибутов

), 

содержимое

 

х

 

ECT

 

является

 

слово

 

FR

исок

 

разделенных

 

запятыми

ормация

.  

Напр

 SELECT

 

NAME

SURNAME

 

FROM

 

STUDENT

ECT [DISTINCT] 

<

список

 

атрибутов

>

 FROM 

<

список

 

таблиц

>

 

 [WHERE 

<

условие

 

выборки

>

 [ORDER 

BY 

<

список

 

атрибутов

>

[GROUP 

BY 

<

список

 

атрибутов

>

 [HAVING 

<

условие

>

 [UNION 

<

выражение

 

с

 

о

В квад

 

у

 

ратных

 

скобках

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

.   

вое

 

слово

 

SELECT

 

сообщает

 

С

которы запрашивается

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

 

ключевым

 

словом

 

в

 

предложении

-

запросе

 

SEL

OM

  (

из

). 

За

 

ключевым

 

словом

 

FROM

 

указывается

 

сп

 

имен

 

таблиц

,  

из

  

которых

 

извлекается

 

инф

имер

,  

SQL-

запрос

 

должен

 

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

 

символом

 «

точка

 

с

 

запятой

».  

Приведенный

 

запрос

 

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

 

выборку

 

всех

 

значений

 

полей

 

NAME

 

и

 

SURNAME

 

из

 

таблицы

 

STUDENT

.  

Его

 

результатом

 

является

 

таблица

 

следующего

 

вида

 

NAME

SURNAME

Иван

 

Иванов

 

Петр

 

Петро

 

в

Вадим

 

Сидоров

 

Борис

 

Кузнецов

 

Ольга

 

Зайцева

  

Андрей

 

Павлов

 

Павел

 

Котов

 

Артем

 

Лукин

 

Антон

 

Петров

 

Вадим

 

Белкин

 

…… …… 

Порядок

 

следова

NAME

 

и

 

SURNAME

ук

ния

 

столбцов

 

в

 

этой

 

таблице

 

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

 

порядку

 

полей

 

азанному

 

в

 

запросе

а

 

не

 

их

 

порядку

 

во

 

входной

 

таблице

 

 

в

 

результате

 SQL-

запроса

 

лению

 

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

 

отношения

В

 

STUDENT

Обратим

 

внимание

 

на

 

то

что

 

получаемые

таблицы

 

не

 

в

 

полной

 

мере

 

отвечают

 

опреде


background image

 

75

частности

 

в

 

них

 

могут

 

оказаться

 

дубликаты

 

кортежей

 

с

 

одинаковыми

 

 

названий

 

городов

в

 

которых

 

живут

 

но

 

записать

 

FROM

  

STUDENT

Е

ица

 

значениями

 

атрибутов

прос

: “

Получить

 

список

Например

за

студенты

сведения

 

о

 

которых

 

находятся

 

в

 

таблице

 

STUDENT

”, 

мож

ующем

 

виде

 

в

 

след

 

  

SELECT

CITY

  

го

 

результатом

 

будет

 

табл

CITY

Орел

 

Курск

 

Москва

 

Брянск

 

Липецк

 

Воронеж

 

Белгород

 

Воронеж

 

NULL

 

Воронеж

 

…… 

Можно

 

видеть

что

 

в

 

этой

 

таблице

 

могут

 

встречаться

 

одинаковые

 

строки

ирным

 

шрифтом

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

 

записей

 

 

Если

 

запрос

 

SELECT

 

ство

 

полей

то

 

DISTINCT

 

исключает

 

дубликаты

 

строк

в

 

ожения

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

 

где

), 

позволяет

 

вводить

 

выражение

 

условия

 

щее

 

значение

 

истина

 

или

 

ложь

 

для

 

значений

 

полей

 

строк

 

оператор

 

SELECT

Предложение

 

WHERE

 

 

должны

 

быть

 

выбраны

В

 

таблицу

ультатом

 

запроса

включаются

 

только

 

те

 

строки

для

 

которых

 

 

в

 

предложении

 

WHERE

принимает

 

значение

 

Пример

 

 

с

выполняющий

 

выборку

 

имен

  (

NAME

всех

 

студентов

 

с

 

ения

 

о

 

которых

 

находятся

 

в

 

таблице

 

  

SURNAME

,  

NAME

STUDENT

 

SURNAME

 = ‘

Петров

’; 

Они

 

выделены

 

ж

Для

 

исключения

 

из

 

результата

 

SELECT

-

запроса

 

п

чевое

 

слово

 

DISTINCT

  (

отличный

).

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

 

клю

кает

 

множе

извле
которых

 

значения

 

всех

 

выбранных

 

полей

 

идентичны

.  

В

ператора

 

SELECT

предл

ведение

 

в

 

выражение

 

о

ключевым

 

словом

 

WHERE

  (

(

предикат

), 

принимаю

таблиц

к

 

которым

 

обращается

 

е

 

строки

 

указанных

 

таблиц

определяет

каки

являющуюся

 

рез

условие

  (

предикат

), 

указанное

истина

Написать

 

запро

фамилией

  (

SURNAME

Петров

свед

STUDENT

 SELECT

 

 

FROM

 

RE

  WHE