logo
Основы языка SQL

Краткое описание языка sql в ms Access

Операторы (инструкции) языка SQL в СУБД MS Access используются при разработке форм, отчетов, а также написания макрокоманд и программ.

К числу основных операторов языка SQL, реализованного в Access, относятся следующие: ALTER TABLE, CREATE INDEX, CREATE TABLE, DELETE, DROP, INSERT INTO, SELECT, TRANSFORM и UPDATE.

Приведем описание инструкций, которое составлено по сведениям справочной системы MS Access

  1. Инструкция ALTER TABLE

Назначение: изменение структуры таблицы, созданной с помощью инструкции CREATE TABLE

Пример.

Удалить поле «Оклад» из таблицы «Сотрудники», которая создана ранее с помощью инструкции CREATE TABLE.

ALTER TABLE Сотрудники DROP COLUMN Оклад;

  1. Инструкция CREATE INDEX

Назначение: создание нового индекса для существующей таблицы.

Пример.

Создать в таблице «клиенты» индекс по полю «КодКлиента» в этом поле исключить повторяющиеся и пустые значения.

CREATE UNIQUE INDEX ИндексКлиента ON Клиенты (КодКлиента) WITH DISALLOW NULL;

  1. Инструкция CREATE TABLE

Назначение: создание новой таблицы.

Пример.

Создать новую таблицу «Таблица1» с двумя текстовыми полями и одним целочисленным полем. Поле «Страховка» сделать ключевым.

CREATE TABLE Таблица1 (Имя TEXT, Фамилия TEXT, Страховка INTEGER CONSTRAINT Индекс1 PRIMARY KEY);

  1. Инструкция DELETE

Назначение: создание запроса на удаление записей из одной или нескольких таблиц, перечисленных в предложении FROM, которые удовлетворяют предложению WHERE.

Пример.

Удалить записи о всех сотрудниках, которые занимают должность «Стажер» и имеют запись в таблице «Оплата». Между таблицами «Сотрудники» и «Оплата» установлена связь 1:1

DELETE Сотрудники.*FROM Сотрудники INNER JOIN Оплата ON Сотрудники.КодСотрудника=Оплата.КодСотрудника WHERE Сотрудники.Должность='Стажер';

  1. Инструкция DROP

Назначение: удаление таблицы из базы данных или индекса из таблицы.

Пример.

Удалить «Индекс1» из таблицы «Стажеры».

DROP INDEX Индекс1 ON Стажеры;

  1. Инструкция INSERT INTO

Назначение: добавить запись или записи в таблицу. Эта инструкция образует запрос на добавление.

Пример.

Отобрать все записи из таблицы «Стажеры» для стажеров, принятых на работу более 30 дней назад, и добавить их в таблицу «Сотрудники».

INSERT INTO сотрудники SELECT Стажеры.*FROM Стажеры WHERE ДатаНайма < Now () – 30;

  1. Инструкция SELECT.

Назначение: представить данные из базы данных в виде набора записей.

Примеры.

Отобрать все поля из таблицы «Сотрудники».

SELECT Сотрудники.*FROM Сотрудники;

Подсчитать число записей, которые содержат непустое значение в поле «Индекс», и присвоить заголовок «Итого» полю, в которое возвращается результат.

SELECT Count(Индекс) AS Итого FROM Клиенты;

Вывести число сотрудников и их среднюю и максимальную зарплату.

SELECT Count(*) AS ЧислоСотрудников, Avg (Оклад) AS Средний оклад, Max (Оклад) AS Максимальный оклад FROM Сотрудники;

  1. Инструкция SELECT…INTO

Назначение: подготовка запроса на создание таблицы. Запрос на создание таблицы можно использовать для архивации записей, создания резервных копий таблицы, копий для экспорта в другую базу данных или основы отчета, отображающего данные за конкретный период времени.

Примеры.

Создать таблицу с именем «Стажеры» и скопировать в нее записи о всех сотрудниках, имеющих должность «Стажер»

SELECT Сотрудники.Имя, Фамилия INTO Стажеры FROM Сотрудники WHERE Должность='Стажер';

Создать таблицу, содержащую сведения о всех стажерах и их зарплате. Между таблицами «Сотрудники» и «Оплата» установлена связь 1:1. новая таблица должна содержать все данные из таблицы «Сотрудники», а также данные поля «Оклад» из таблицы «Оплата».

SELECT Сотрудники.*, Оклад INTO Стажеры FROM Сотрудники INNER JOIN Оплата ON Сотрудники.КодСотрудника=Оплата.КодСотрудника WHERE Должность = 'Стажер';

  1. Инструкция TRANSFORM

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

Пример.

Создать перекрестный запрос, показывающий распределение продаж по месяцам указанного пользователем года. Месяцы должны определять заголовки столбцов слева направо, а марка товаров – заголовки строк сверху вниз.

PARAMETERS [Год продажи ?] LONG;

TRANSFORM

Sum (Заказано.Количество * (Заказано.Цена – (Заказано.Скидка / 100) * Заказано.Цена)) AS Продажи

SELECT Марка

FROM Заказы INNER JOIN

(Товары INNER JOIN Заказано ON Товары.КодТовара = Заказано.КодТовара) ON Заказы.КодЗаказа = Заказано.КодЗаказа

WHERE DatePart(“yyyy”, ДатаРазмещения) = [ Год продажи?]

GROUP BY Марка

ORDER BY Марка

PIVOT DatePart(“m”, ДатаРазмещения);

В этом примере перед инструкцией TRANSFORM стоит оператор PARAMETERS, который запрашивает у пользователя значение переменной «Год продажи?». Это позволяет построить запрос с параметром.

10. Инструкция UPDATE

Назначение: создание запроса на обновление записей, который изменяет значение полей указанной таблицы на основе заданного условия отбора.

Пример.

Увеличить на 10 процентов цену на все товары поставщика, имеющего код 8, поставки которых еще не прекращены.

UPDATE Товары SET Цена = Цена * 1.1 WHERE КодПоставщика = 8

AND ПоставкиПрекращены = No;

Замечания:

Yandex.RTB R-A-252273-3