Создание и ведение баз данных

 

Основные операторы ЯОД (DDL) SQL, позволяющие создавать (и уничтожать) объекты БД:

CREATE TABLE – определяет имя создаваемой таблицы, имена и типы данных, первичный ключ и любые внешние ключи;

ALTER TABLE – позволяет добавлять новые поля (ADD) или удалять существующие поля (DROP);

DROP INDEX – удаляет из таблицы индекс;

DROP TABLE – удаляет таблицу из базы данных.

Большинство современных СУБД предоставляют интерфейс-надстройку над DDL, позволяющий проводить операции по созданию, изменению, удалению объектов БД с использованием GUI.

Основные операторы ЯМД (DML) SQL, использующиеся при обработке данных, – это:

SELECT

INSERT

UPDATE

DELETE.

Эти операторы не изменяют объекты БД, а оперируют только с данными, содержащимися в БД.

Рассмотрим вначале операции выборки (SELECT), а далее операции обновления (INSERT, UPDATE, DELETE).

Простейшая операция выборки представляется командой 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 contain” – не содержит. Смысл выражения “A contains В” (А содержит В) тот же, что и выражения “В is in А” (В принадлежит множеству А). Помимо слов select, from, where в команде выборки можно использовать и другие служебные слова, например:

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

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

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

minus ‑ операция вычитания множеств (данных

выборок).

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

 

update Студент

set Kypc=3

where Kypc=2.

 

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

 

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

(“Семенов С. С.”, “Информатика”, 5, 15/01/96, “Петров П.П.”)

 

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

Команда delete используется для удаления информации из таблицы. Например:

 

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

where Оценка=2

 

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

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

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