Язык манипулирования данными 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. ПРИМЕРЫ СИСТЕМ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
СУБД DBASE
СУБД типа DBASE позволяют работать с реляционными базами данных (БД), структура которых состоит из трех элементов:
• число полей БД;
• характеристикакаждогополя;
• число записей в БД.
Каждое поле имеет следующие характеристики:
Field name Type Width Dec
(имя поля) (тип) (ширина) (дес.знаки).
Field name - может состоять из набора символов, но без пробелов.
Type - в системах типа DBASE имеется 5 типов полей:
С (Character) - символьный (текстовый) тип;
N (Numerical) - числовой тип;
L (Logical) - логический тип;
D (Date) - поле дат, содержит даты в виде dd/mm/yy;
М (Memo) - поле памяти, содержит большой текст (файл).
Width - обозначает допустимую ширину поля.
Dec - используется для числовых полей и определяет точность
задаваемых чисел.
DBASE создает следующие типы файлов:
.dbf - файлы с записями БД;
.prg - файлы с текстами программ;
.frm - файлы структуры форматных отчетов;
.ndx - индексные файлы, сортирующие записи по определенному ключу;
.mem - файлы данных переменной Mem.
Запуск СУБД осуществляетсяиз операционной системы ехе-файлом (db.exe, foxdb и т.п.), выход-командой.Quit.
Теперь опишем кратко основные команды СУБД.
Создание БД осуществляется командойCreate.
Create (например, «Абитуриент»)
После ввода этой команды на экране появится форма:
Field name (имя поля) .001 | Type (тип) | Width (ширина) | Dec (дес.знаки). |
.001
В соответствии с этой формой создадим структуру таблицы:
001 ФИО, С, 18
002 год_рожд, С, 7
003 район. С, 13
004 адрес. С, 100
005 группа, С, 3
006 оценка 1,N,3
007 оценка2,N, 3
008 оценкаЗ,N, 3
Теперь можно начать заполнение таблицы записями.
В случае заполнения записями уже существующей базы данных, необходимо предварительно эту базу командой Use сделать активной:
.Use Абитуриент (use - использовать),
.Append (добавить)
Данные вводят в карточки, имеющие следующую форму:
Запись #00001
ФИО:
год_рожд:
район :
адрес:
группа:
оценка1:
оценка2:
оценка3:
Например,
Запись #00005
ФИО: Семенов Сергей Викторович
год_рожд: 1980
район: Туруханский
адрес: ул. Декабристов, д. 12, кв.23
группа: И2
оценка!: 5
оценка2: 4
оценкаЗ: 4
Запись можно ввести в определенное место БД, введя одну из команд:
.Insert (вставить)
или
.Insert before .
Перемещение по таблице и просмотр записей БД осуществляется командами:
Go top - (идти наверх) установка указателя на первую запись,
Go bottom - (идти вниз) установка указателя на последнюю запись;
List - (список) просмотр всех записей БД;
Display - (отобразить) просмотр записи, на которой находится указатель,
Browse - (просмотреть) помимо просмотра позволяет редактировать
записи БД.
Редактирование записей позволяют проводить следующие команды:
Edit N - редактирование записи с номером N;
Change - (поменять) изменения только в некоторых полях или записях,
удовлетворяющих заданным условиям;
Delete - (удалить) стирание ненужных записей;
Copy -(копировать) копирование записей.
Изменить структуру БД можно командой Modify. Ниже предложен перечень команд, осуществляющих обработку данных:
Report form - (отчет, форма) создание отчетов;
Sort - (сортировка) упорядочение БД по какому-либо ключу;
Index - (индекс) индексирование БД;
Find - (найти) поиск в БД.
Работу с несколькими БД помогают вести команды:
Select - (выбор) сделать активной какую-либо БД;
Update - (расширить) передача данных из одной БД в другую;
Join to - (присоединить) соединение целых БД.
Для осуществления интерактивности БД используют команды ввода и вывода:
Wait - (ожидание) пауза, приостановка;
Input - (вход) ввод данных;
Say - (сказать) вывод информации;
Read - (читать) ввод данных.
Дата добавления: 2020-02-05; просмотров: 541;