Язык манипулирования данными SQL

Рассмотрим в качестве примера языка манипулирования данными некоторые команды языка SQL (от английских слов Structured Query Language), ставшего классическим языком реляционных баз данных.

Простейшая операция выборки представляется командой SELECT - FROM -WHERE (выбрать - из - где):

select <список атрибутов>

from <отношение>

where <условие>.

Например, если необходимоиз отношения «Успеваемость», имеющего схему:

Успеваемость (ФПО_студента, Дисциплина, Оценка, Дата, Преподаватель)

произвести выборку данных о том, какие оценки студент Иванов И.И. получил и по каким предметам, надо задать команду:

select Дисциплина, Оценка

from Успеваемость

where ФИО_студента = «Иванов И. И.».

Часть команды «where» не является обязательной. Например, можно получить список всех студентов из отношения «Успеваемость» с помощью следующей команды:

select unique ФИО_студента

from Успеваемость.

Ключевое слово unique позволяет исключить из результата дубликаты значений атрибута. Выбрать полностью информацию из таблицы можно с помощью команды

select *

from Успеваемость.

Условие, следующее за «where», может включать операторы сравнения =, <>, >=, <, <=, булевы операторы AND, OR, NOT, а также скобки для указания желаемого порядка операции. Например, выбрать из таблицы «Успеваемость» фамилии студентов, сдавших на "5" экзамен по информатике, можно с помощью команды

select ФИО_студента

from Успеваемость

where Дисциплина = «Информатика» AND Оценка=5.

Выборка может быть и вложенной, когда необходимо использовать в условии результаты-другой выборки. Например, если надо из отношения «Успеваемость» выбрать только студентов физико-математического факультета, пользуясь отношением «Студент», то команда select может выглядеть так:

select ФИО_студента

from Успеваемость

where ФИО_студента is in

(select Фамилия

from Студент

where Ф_т = «физмат»).

Здесь «is in» является представлением оператора принадлежности элемента множеству. Можно также использовать операторы «is not in» («не принадлежит множеству»), «contains» - содержит, «does not contains» - не содержит. Смысл выражения «A contains В» (А содержит В) тот же, что и выражения «В is in А» (В принадлежит множеству А). Помимо слов select, from, where в команде выборки можно использовать и другие служебные слова, например:

order by < атрибут > asc - определяет сортировку результата выборки
в порядке возрастания (asc) или убывания (desc)
значения атрибута;

group by <атрибут1> - группирует данные по значениям атрибута;

having set <атрибут2>

minus - операция вычитания множеств (данных выборок).

Помимо команды выборки select, язык SQL имеет команды, позволяющие обновлять данные (update), вставлять (insert) и удалять (delete). Например, если студенты переводятся со 2-го курса на третий, информацию можно обновить командой

update Студент

set Kypc=3

where Kypc=2.

Если атрибут «Семенов С.С.» сдал экзамен по информатике на «5» 15 января 1996 г. преподавателю Петрову П.П., то информация об этом может быть добавлена в таблицу «Успеваемость» командой

insert inio Успеваемость:

<«Семенов С.С.», «Информатика», 5,15/01/96, Петров П.П.>.

Оператор insert может быть использован для включения одной строки (как в этом примере) или произвольного числа строк, определенных списком кортежей, заключенных в скобки, или операций выборки select из какой-либо другой таблицы. Команда delete используется для удаления информации из таблицы. Например,

delete Успеваемость

where Оценка=2

позволяет удалить информацию о студентах, получивших 2 (в случае их отчисления).

Существенно расширяют возможности языка библиотечные функции, такие как count (подсчет), sum (суммирование), avg (среднее), max и min.

Например, подсчитать число студентов в таблице «Студент»: select count (*) from Студент.

6.5. ПРИМЕРЫ СИСТЕМ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: