Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум SQL.rtf
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
929 Кб
Скачать
☆

Ввод параметров

Располагается перед инструкцией SQL и определяет типы данных параметров, включенных в запрос. Применение параметров позволяет запросить некоторые значения данных у пользователя или взять их из элементов управления откры­той формы в ходе выполнения запроса.

Синтаксис:

PARAMETERS { [имя-параметра] тип-данных], . . .;

Если при выполнении запроса пользователь должен ввести значения, то имена параметров должны описывать их. Например, [Подвести итоги за месяц:] более содержательно, чем [Введите месяц:].

Допустимые типы данных параметров перечислены ниже:

Тип

Значение

Bit

Логический

Binary

Двоичный (Binary)

Byte

Байт

Currency

Денежный

DateTime

Дата/время

FLOAT

С плавающей точкой (8 байт)

lEEEDouble

С плавающей точкой (8 байт)

lEEESingle

С плавающей точкой (4 байта)

INT[EGER]

Длинное целое

Long

Длинное целое

LongBinary

Объект OLE

LongText

MEMO

REAL

С плавающей точкой (4 байта)

Short

Целое

SMALLINT

Целое

Text

Текстовый

Value

Значение (Value)

VARCHAR

MEMO

Пример №19. В запрос предыдущего примера введите параметр Укажите год учета. Определите его как длинное целое.

Решение

PARAMETERS [Укажите год учета] Long;

SELECT [Сведения о сотрудниках].ТабНом, [Сведения о сотрудниках]![Фамилия]+" "+Left([Сведения о сотрудниках]![Имя],1)+"."+Left([Сведения о сотрудниках]![Отчество],1)+"." AS ФИО, IIf([Сведения о сотрудниках]![ГрупПерс]<>"МОП","027","029") AS КодГруппыПерсонала, Round([Сведения о сотрудниках]![Ставка]+[Сведения о сотрудниках]![Ставка]*[Сведения о сотрудниках]![%доплат]/100,2) AS Тарификация, Year(Date())-Year([Сведения о сотрудниках]![ДатаРожд]) AS Возраст, [Укажите год учета] AS ГодУчета

FROM [Сведения о сотрудниках];

Изменение базы данных с помощью запросов.

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

Инструкция delete (запрос на удаление)

Удаляет одну или несколько строк из таблицы или запроса. Предложение WHERE является необязательным. Если в инструкции DELETE отсутствует предложение WHERE, то из таблицы или запроса, указанных в предложении FROM, будут удалены все строки. При использовании предложения WHERE к каждой строке таблицы или запроса будет применено условие отбора и будут удалены только те, для которых условие принимает значение Истина.

Синтаксис:

DELETE [список-выбора]

FROM [{ имя-таблицы [[AS] псевдоним ] \ имя-запроса-на-выборку [[AS] псевдоним ]} | <таблица-объединения>], ... [ IN <спецификация-ист очника-данных>] [WHERE условие-отбора] где список-выбора есть

[* | имя-таблицы. * | список-столбцов] , и где <таблица-объединения> есть ({имя-таблицы [[AS] псевдоним ] \ имя-запроса-на-выборку [[AS] псевдоним ]} | <таблица-объединения>} {INNER | LEFT | RIGHT | JOIN {имя-таблицы [[AS] псевдоним ] \

имя-запроса-на-выборку [[AS] псевдоним ] | <таблица-объединения>} ON <условие-объединения>)

Если в инструкции DELETE вы указываете имя запроса, то последний не должен содержать оператора UNION, итоговых функций SQL, предиката DISTINCT, предложений GROUP BY и HAVING или подчиненного запроса, использующе­го ту же базовую таблицу, что и инструкция DELETE.

Если в предложении FROM объединяются две или несколько таблиц, то вы можете удалять строки только со стороны «многие» отношения «один-ко-многим» либо из одной из таблиц, между которыми существует связь «один-к-одному». Если в предложение FROM вы включите более одной таблицы, то укажите, из какой именно таблицы должны быть удалены строки (используя в списке выбора конструкцию имя-таблицы.*). Если в предложении FROM указана только одна таблица, то список выбора необязателен.

При задании имен столбцов в предложении WHERE и в подчиненных предло­жениях вместо полных имен таблиц или запросов можно использовать их псевдонимы.

Псевдоним обязателен при ссылке на имя столбца, которое встречается более чем в одной из таблиц, перечисленных в предложении FROM.

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

Пример №20. Из таблицы Академическая справка удалить записи, в которых не заполнено поле КоличествоЧасов.