2.5. Сортировка полученных результатов

Для того, чтобы сделать вывод упорядоченным, язык SQL предлагает использование конструкции ORDER [ASCEND|DESCEND] BY (поле). ASCEND/DESCEND – это направление сортировки – по возрастанию или убыванию, соответственно. Модернизируем наш предыдущий запрос таким образом, чтобы он при выводе сортировал данные по полю «Наименование»:

SELECT Количество FROM Склад_гр INNER JOIN Ассортимент ON (Склад_гр.ID_товара = Ассортимент.ID_товара)

ORDER ASCEND BY Наименование;

На этом закончим рассмотрение (несколько поверхностное) предложений SELECT.


3. Запросы на добавление

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

Иногда, зачастую в серверных базах данных или при использовании элементов программирования в Microsoft Access требуется динамически добавить запись в таблицу. Язык SQL предлагает использовать для этих целей предложение INSERT INTO.

Общая структура этого типа запросов такова:

INSERT INTO ИМЯ_ТАБЛИЦЫ VALUES (список значений);

Список значений всегда должен быть равен по количеству элементов количеству полей в изменяемой таблице. Если же надо ввести только некоторые поля, для остальных 0 или NULL для строковых полей. Также можно использовать выражения.

Например, есть таблица «товары»

ID_товара Наименование Количество

Допустим, нам надо добавить запись в эту таблицу, но беда в том, что поле ID_товара – ключевое и иммет тип «Счетчик». Нарушать его нельзя, поэтому воспользуемся групповой операцией Max().

INSERT INTO Товары VALUES

(MAX(ID_Товара)+1, ‘Какой-то товар’, 10);

Таким образом, мы сохранили порядок счета.

Следует заметить, что предложение INSERT является одним из самых простых в SQL. Никаких дополнительных конструкций в нем не используется.


4. Запросы на обновление

Иногда, опять-таки, зачастую при использовании элементов программирования, может потребоваться динамическое изменение всех или части записей в таблице. Для этого применяется предложение UPDATE.

Допустим, со склада раз в месяц осуществляется отгрузка. Отгружают по одному артикулу каждого товара. Если какой-то товар на складе отсутствует, его, соответственно, не отгружают.

Общая структура запросов на обновление:

UPDATE Имя_таблицы SET

(список значений или список выражений «Поле=значение»);

По умолчанию UPDATE налагает изменения на все записи таблицы. Чтобы ограничить количество затрагиваемых записей, следует использовать конструкцию WHERE так же, как и в запросах на выборку.

Наш запрос на отгрузку будет выглядеть так:

UPDATE Товары SET (Количество=Количество – 1)

WHERE (Количество > 0);

Он-то и выполнит все необходимые действия по обработке результатов отгрузки.


5. Запросы на удаление

Встречаются ситуации, когда данные в таблицах устаревают. Допустим, есть база финансовой отчетности предприятия. И документы, которые были введены туда до 1 января 2004 года, надо удалить.

Для этого используется предложение DELETE.

Структура таблицы «Документы»

Номер Название Текст Дата_регистрации

Запросы на удаление имеют следующую структуру:

DELETE * FROM Имя_таблицы WHERE (список условий);

В нашем случае запрос будет иметь следующий вид:

DELETE * FROM Документы

WHERE (Дата_регистрации < 01.01.2004);

Как видим, диалект языка SQL, используемый в Microsoft Access, весьма демократичен.


6. Параметрические запросы

Access позволяет сделать запросы более гибкими – т.е. сделать так, чтобы при изменении критериев в запросе не приходилось править его в конструкторе. Для этого используется механизм параметров.

Например, у нас есть таблица «Список_жильцов», и нам нужно отобразить тех из них, возраст которых превышает некоторую заранее неизвестную величину. Для этого используем запрос

SELECT * FROM Список_жильцов WHERE (Возраст > Критерий_ возраста);

При попытке открытия такого запроса Access в специальном диалоговом окне попросит ввести значение параметра «Критерий_возраста»

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



Информация о работе «SELECT»
Раздел: Информатика, программирование
Количество знаков с пробелами: 23091
Количество таблиц: 8
Количество изображений: 0

Похожие работы

Скачать
346834
2
0

... , in which connection practical experience in the concrete field of activity gains great importance. Issues recommended for independent study: the Game theory, the theory of fields, the theory of crises, the chaos theory, the theory of relativity, the management, strategy and tactics theories, basics of logic and statistics – concepts, substance/essence, stereotypes, paradoxes. See also: ...

Скачать
35022
11
1

... questions and answers. A much better kind of practice is to ask them to make their own sentences using the words correctly if they make some mistakes. The main aim of the pupils is to perform some kind of talk about towns and places of interest. There are different kinds of speaking activities from puzzle – like tasks to more involved role-playing. One type of speaking activity involves the ...

Скачать
183471
45
12

... Java, JavaScript и встроенные в сервер средства LiveConnect. Более мощными реляционными возможностями доступа к базе данных и более эффективным выполнением виртуальной Java-машины будут расширены услуги разработки приложений, обеспечиваемых в Enterprise Server 2.0,. Сервис управления. В дополнение к использованию встроенной машины каталога LDAP Enterprise Server 2.0 будет управляем через общие ...

Скачать
57810
37
13

... имеет событие Сlick. Обработчики событий Click для кнопок представлены в Приложении А. Заключение В ходе выполнения курсовой работы была достигнута цель работы – проектирование базы данных хозяйственного учета футбольного клуба. Для достижения цели был решен ряд задач: составление описания предметной области; составление словаря понятий и терминов; построение исходной модели (ER- ...

0 комментариев


Наверх