Лабораторная работа № 3 создание запросов на языке microsoft jet sql
Цель работы - приобретение навыков написания SQL-кода в СУБД MS ACCESS
3.1 Краткая теория вопроса
Язык SQL – язык баз данных. Microsoft Access использует язык Microsoft Jet SQL. Ядро базы данных Microsoft Jet SQL в основном совместимо с ANSI-89 и ANSI-92. Однако некоторые возможности языка запросов ANSI SQL в нем не реализованы.
Когда пользователь создает запрос в режиме (QBE), Microsoft Access автоматически создает эквивалентную инструкцию SQL. При необходимости, можно просматривать и редактировать инструкции SQL в режиме SQL. После внесения изменений в запрос в режиме SQL его вид в режиме конструктора может измениться.
В справке MS Access (рис. 15) представлены с примерами инструкции языка Microsoft Jet SQL. Видно, что язык подразделяется на две составляющие: язык описания данных и язык управления данными. Но прежде, чем приступить к изучению инструкций следует ввести некоторые понятия и обозначения.
Команда — это инструкция SQL. Команда состоит из одной или нескольких логически различных частей, называемых предложениями. Предложения начинаются с ключевого слова и кроме него содержат аргументы, например:
WHERE fio = "Иванов",
где fio = "Иванов" — аргумент, а WHERE — ключевое слово.
Объекты — это структуры в базе данных (таблицы, запросы, формы и др.), которые именуются и хранятся в памяти.
Р
и
с. 15
Соглашения по синтаксису команд:
[ ] — квадратные скобки — часть команды, которую при желании можно опустить;
( ) — круглые скобки — предшествующее им можно повторить любое количество раз;
< > — слова, заключенные в угловые скобки, — специальные термины, которые объясняются по мере вывода.
Ниже приведены инструкции языка, необходимые для выполнения заданий лабораторной работы.
Инструкция 1. Создание таблицы (оновной)
CREATE TABLE таблица (поле_1 тип [(размер)] [NOT NULL] [индекс_1] [, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [, ...]] [, CONSTRAINT составнойИндекс [, ...]])
Инструкция 2. Создание подчиненной таблицы с установлением связи:
CREATE TABLE таблица (поле_1 тип [(размер)] [NOT NULL] [индекс_1] [, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [, ...]] [,CONSTRAINT имя {PRIMARY KEY (ключевое_1[, ключевое_2 [, ...]]) | UNIQUE (уникальное_1[, уникальное_2 [, ...]]) | NOT NULL (непустое_1[, непустое_2 [, ...]]) | FOREIGN KEY [NO INDEX] (ссылка_1[, ссылка_2 [, ...]]) REFERENCES внешняяТаблица [(внешнееПоле_1 [, внешнееПоле_2 [, ...]])] [ON UPDATE CASCADE | SET NULL] [ON DELETE CASCADE | SET NULL]}
Инструкция 3. Добавление полей
ALTER TABLE таблица {ADD {COLUMN тип поля[(размер)] [NOT NULL] [CONSTRAINT индекс] | ALTER COLUMN тип поля[(размер)] | CONSTRAINT составнойИндекс} | DROP {COLUMN поле1 CONSTRAINT имяИндекса} }
Инструкция 4. Добавление одной записи
INSERT INTO назначение [(поле_1[, поле_2[, ...]])] VALUES (значение_1[, значение_2[, ...])
(Вместо VALUES можно использовать слово SELECT)
Инструкция 5. Вставка данных из одной таблицы в другую
INSERT INTO назначение [(поле_1[, поле_2[, ...]])] [IN внешняяБазаДанных] SELECT [источник.]поле_1[, поле_2[, ...] FROM выражение
Инструкция 6. Удаление записей
DELETE [таблица.*] FROM таблица WHERE условиеОтбора
Инструкция 7. Выборка данных
SELECT [предикат] { * | таблица.* | [таблица.]поле_1 [AS псевдоним_1] [, [таблица.]поле_2 [AS псевдоним_2] [, ...]]}
FROM выражение [, ...] [IN внешняяБазаДанных]
[WHERE условие_отбора]
[GROUP BY список_полей_группировки]
[HAVING условие. группировки]
[ ORDER BY вполе_1( ASC | DESC ] [, вполе_2 [ASC |DESC]]...];
Ниже представлены пояснения по инструкции SELECT.
"Предикат" — задает ограничения на возвращаемые записи:
ALL — без ограничений (по умолчанию);
DISTINCT — все записи без их дублирования;
Таблица — имя таблицы-источника, из которой берутся записи;
поле_1, поле_2... — имена полей, из которых берутся записи;
псевдоним_1, псевдоним_2... — имена, которые станут заголовками столбцов вместо исходных названий столбцов в таблице;
выражение — имена одной или нескольких таблиц, из которых берутся данные;
Внешняя_База_Данных — имя базы данных с таблицами, которые указаны с помощью аргумента "выражение", если они не находятся в текущей базе данных;
условие_отбора — выражение с условием, которому должны соответствовать записи, включенные в результат исполняемого запроса;
список_полей группировки — имена полей, которые применяются для группирования записей;
условие _Группиравки — выражение, которое определяет, какие сгруппированные записи следует отображать;
вполе_1, вполе_2 — поля, по значениям которых сортируются записи в результате запроса: ASC— по возрастанию, DESC— по убыванию.
Выполнение команды SELECT не изменяет данные в базе данных. Выбираемые столбцы с таблицы не удаляются, из них только извлекаются данные.