[ADD FOREIGN KEY [eExpression5] TAG TagName4
REFERENCES TableName2 [TAG TagName5]]
[DROP FOREIGN KEY TAG TagName6 [SAVE]]
[RENAME COLUMN FieldName4 TO FieldName5]
[NOVALIDATE]
Намного проще эта команда выглядит в Microsoft Access:
ALTER TABLE таблица {ADD {COLUMN поле тип[(размер)] [CONSTRAINT индекс] I
CONSTRAINT составной_индекс} |
DROP {COLUMN поле I CONSTRAINT имя_индекса} }
И наконец, синтаксис этой команды в MS SQL Server еще короче:
ALTER TABLE [[database.]owner.]table_name ADD column_name datatype NULL [, column_name
datatype NULL...]
На этом мы закончили обзор команд SQL, которые присутствуют во всех трех приложениях.
Не удивляйтесь, что параграф уже закончился, а примеров все еще нет. Примеры по
использованию команд SQL для изменения структуры данных вы уже видели в главе 6 при
описании создания БД.
7.4. Запросы и локальные представления в Microsoft
Visual FoxPro
В этом параграфе мы подробно рассмотрим визуальные и программные методы создания
запросов и представлений в Visual FoxPro.
Расширения команд xBase командами SQL, которые появились, начиная с версии FoxPro 2.0,
принесли, несомненно, ему очень большую пользу. Главным достоинством можно считать
значительное сокращение кода для выборки данных, причем без потери скорости, так как метод
оптимизации Rushmore работает и в SQL запросах. Это единственный вариант, где указанный
метод может использоваться для поиска данных в нескольких таблицах. А, например, команда
INSERT-SQL работает на порядок быстрее, чем классическая конструкция
APPEND BLANK
REPLACE <<поле>> WITH <<выражение>>
Правда, SQL команд и было всего ничего:
• SELECT-SQL
• INSERT-SQL
• CREATE TABLE
При этом курсоры, которые получались в результате выборки, были немодифицирующими, то
есть изменения, которые вы делали в них, не отражались в таблицах, данные из которых они
отражали. Тем не менее были изобретены сотни способов синхронизации изменений в курсорах,
полученных с помощью команды SELECT с данными в исходных таблицах. Одни из самых
простых - использование в запросе в качестве выводимых колонок функции RECNO(), которая
возвращает номер записи и использование возможности SELECT-SQL создавать таблицы. У этого
способа есть существенное ограничение - он работает корректно только при выборке из одной
таблицы. В случае выборки из нескольких таблиц получить с помощью функции RECNO()
нужный результат невозможно.
Большое число задач требует просто просмотра или распечатки промежуточных результатов,
вследствие чего язык SQL прижился и был быстро освоен программистами.
В Visual FoxPro добавилось несколько новых команд SQL, с помощью которых мы можем менять
структуру уже существующих таблиц, удалять записи и модифицировать данные. Но самое
главное, - у нас теперь есть возможность создавать представления (View), которые можно
хранить в базе данных. Тем самым значительно увеличились возможности организации данных.
Помимо этого представление позволяет создавать курсоры, с помощью которых мы можем менять
данные в исходных таблицах. При этом мы сами можем определять, какие поля разрешить для
модификации, а какие нет. Возникают определенные трудности, если в исходных таблицах нет
уникальных ключевых полей, но они легко преодолимы. Можно сказать, что запросы в том виде,
как они существовали в предыдущих версиях и продолжают существовать сейчас, больше не
нужны. Хотя бесспорно при желании можно доказать необходимость их использования. В Visual
FoxPro как синтаксис команд по созданию представлений и запросов, так и конструкторы для
создания этих краеугольных камней систем управления базами данных очень похожи друг на
друга. Поэтому, начиная обзор Конструктора представлений, мы одновременно изучаем и
Конструктор запросов. Параллельно мы будем обсуждать как визуальный способ создания
converted to PDF by HupBaH9I