Лабораторная работа
Создание и управление базой данных с помощью SQL-операторов
Цель: Изучить основные операторы языка программирования SQL.
Задание:
- Создать базу данных с помощью языка SQL.
- Описать ход работы.
- Ответить на контрольные вопросы.
- Оформить отчет
Теоретические сведения:
Язык SQL предназначен для организации доступа к базам данных. При этом предполагается, что доступ к БД может быть осуществлен в двух режимах: в интерактивном режиме и в режиме выполнения прикладных программ (приложений).
SQL, хотя и является языком программирования, в силу своей специфической направленности не обладает многими возможностями универсальных языков программирования. В нем отсутствуют традиционные операторы, организующие циклы, позволяющие объявить и использовать внутренние переменные, организовать анализ некоторых условий и возможность изменения хода программы в зависимости от выполненного условия. В общем случае SQL можно назвать подъязыком, который служит исключительно для управления базами данных. Для создания приложений, настоящих программ необходимо использовать другие, базовые языки программирования, в которые операторы языка SQL будут встраиваться.
Основные достоинства языка SQL заключаются в следующем:
· стандартность – как уже было сказано, использование языка SQL в программах стандартизировано международными организациями;
· независимость от конкретных СУБД – все распространенные СУБД используют SQL, т.к. реляционную базу данных можно перенести с одной СУБД на другую с минимальными доработками;
· возможность переноса с одной вычислительной системы на другую – СУБД может быть ориентирована на различные вычислительные системы, однако приложения, созданные с помощью SQL, допускают использование как для локальных БД, так и для крупных многопользовательских систем;
· реляционная основа языка – SQL является языком реляционных БД, поэтому он стал популярным тогда, когда получила широкое распространение реляционная модель представления данных. Табличная структура реляционной БД хорошо понятна, а потому язык SQL прост для изучения;
· возможность создания интерактивных запросов – SQL обеспечивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно получить результат запроса за очень короткое время без написания сложной программы;
· возможность программного доступа к БД – язык SQL легко использовать в приложениях, которым необходимо обращаться к базам данных. Одни и те же операторы SQL употребляются как для интерактивного, так и программного доступа, поэтому части программ, содержащие обращение к БД, можно вначале проверить в интерактивном режиме, а затем встраивать в программу;
· обеспечение различного представления данных – с помощью SQL можно представить такую структуру данных, что тот или иной пользователь будет видеть различные их представления. Кроме того, данные из разных частей БД могут быть скомбинированы и представлены в виде одной простой таблицы, а значит, представления пригодны для усиления защиты БД и ее настройки под конкретные требования отдельных пользователей;
· возможность динамического изменения и расширения структуры БД – язык SQL позволяет манипулировать структурой БД, тем самым обеспечивая гибкость с точки зрения приспособленности БД к изменяющимся требованиям предметной области;
· поддержка архитектуры клиент-сервер – SQL – одно из лучших средств для реализации приложений на платформе клиент-сервер. SQL служит связующим звеном между взаимодействующей с пользователем клиентской системой и серверной системой, управляющей БД, позволяя каждой из них сосредоточиться на выполнении своих функций.
Структурированный язык запросов SQL является обычным языком программирования, состоящим из операторов и правил грамматики. Запрос к таблице базы данных на языке SQL представляет собой инструкцию SELECT, которую можно описать следующим образом.
SELECT [ALL|] (список полей таблицы или запроса)
FROM (список таблиц или запросов, на основе которых формируется запрос)
[WHERE (условия отбора данных)]
[GROUP BY (список полей, выводимых в результат выполнения запроса)]
[HAVING (условия для группировки данных в запросе)]
[ORDER BY (список полей, по которым упорядочивается вывод данных в запросе)]
В рассмотренной структуре инструкции SELECT ALL — ключевое слово, которое означает, что в результирующий набор записей включаются все записи таблицы или запроса, которые удовлетворяют условиям запроса. Ключевые слова могут отсутствовать в запросе.
В зависимости от характера выполняемых действий операторы SQL можно разделить на следующие группы:
• операторы определения данных;
• операторы манипулирования данными;
• операторы (язык) запросов;
• операторы управления действиями (транзакциями);
• операторы администрирования данными;
• операторы управления (управления курсором).
Операторы определения данных
Оператор | Действие |
CREATE TABLE | Создает новую таблицу БД |
DROP TABLE | Удаляет таблицу из БД |
ALTER TABLE | Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы |
CREATE VIEW | Создает виртуальную таблицу, соответствующую некоторому SQL-запросу |
ALTER VIEW | Изменяет ранее созданное представление |
DROP VIEW | Удаляет ранее созданное представление |
CREATE INDEX | Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс |
DROP INDEX | Удаляет ранее созданный индекс |
Операторы манипулирования данными
Оператор | Действие |
DELETE | Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически он записан правильно |
INSERT | Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу |
UPDATE | Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации |
Оператор запросов
Оператор | Действие |
SELECT | Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу |