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

Модификация структуры бд

УДАЛЕНИЕ ТАБЛИЦЫ

DROP TABLE Имя_таблицы | Имя_файла | ? [RECYCLE]

удаляет таблицу из текущей БД; опция ? выдает диалоговое окно выбора таблицы; подопция RECYCLE указывает на то, что удаленную таблицу нужно поместить в "корзину" ОС Windows c возможностью последующего восстановления, в противном случае восстановление невозможно.

УДАЛЕНИЕ ПРЕДСТАВЛЕНИЯ

DROP VIEW имя_представления

МОДИФИКАЦИЯ СТРУКТУРЫ ТАБЛИЦЫ

ALTER TABLE Имя_таблицы

ADD | ALTER [COLUMN] Имя_поля

Тип_поля [(Ширина_поля [, Точность])]

[NULL | NOT NULL]

[CHECK Правило_корректности_поля

[ERROR Текст_сообщения_о_нарушении_правила]]

[DEFAULT Значение_по_умолчанию]

[PRIMARY KEY | UNIQUE]

[REFERENCES Имя_родительской_таблицы

[TAG Тег(имя)_индекса]]

или

ALTER TABLE Имя_таблицы

ALTER [COLUMN] Имя_поля

[NULL | NOT NULL]

[SET DEFAULT Значение_по_умолчанию]

[SET CHECK Правило_корректности_поля

[ERROR Текст_сообщения_о_нарушении_правила]]

[DROP DEFAULT]

[DROP CHECK]

или

ALTER TABLE Имя_таблицы

[DROP [COLUMN] Имя_поля]

[SET CHECK Правило_корректности_поля

[ERROR Текст_сообщения_о_нарушении_правила]]

[DROP CHECK]

[ADD PRIMARY KEY Выражение_первичного_ключа

TAG Тег(имя)_индекса_первичного_ключа]

[DROP PRIMARY KEY]

[ADD UNIQUE Выражение [TAG Тег_индекса]]

[DROP UNIQUE TAG Тег_индекса]

[ADD FOREIGN KEY [Выражение_внешнего_ключа]

TAG Тег_индекса

REFERENCES Имя_родительской_таблицы

[TAG Тег_родительского_индекса]]

[DROP FOREIGN KEY TAG Тег_индекса]

[RENAME COLUMN Старое_имя_поля TO Новое_имя_поля]

Несмотря на устрашающий синтаксис, семантика команды ALTER TABLE легко выводится из пояснений к команде CREATE TABLE и значений английских слов ALTER - изменить, ADD - добавить, DROP - удалить, SET - положить равным, RENAME - переименовать.

Замечание. Пожалуй, единственным существенным упущением текущей версии FoxPro по сравнению с другими реализациями SQL является отсутствие команды создания пользовательского индекса Create Index (и, соответственно команды удаления индекса Drop Index). Правда, это упущение – чисто синтаксическое, поскольку имеется достаточно мощная команда-аналог самого FoxPro – а именно, команда Index (см.документацию).

Модификация содержимого таблиц

Добавление записи.

INSERT INTO имя_таблицы [(список_имен_полей])]

VALUES (список_выражений)

где

имя_таблицы - имя dbf-файла (возможно - с указанием пути) или алиас рабочей области; может быть задано строковым выражением;

если список имен полей задан, то он, очевидно, должен быть согласован по типу со списком выражений, задающим значения соответствующих полей в добавляемой записи; если список имен полей отсутствует, то, по умолчанию, подразумевается список имен всех полей таблицы. В любом случае, необъявленные значения полей либо берутся равным значению по умолчанию (см. опцию DEFAULT в команде CREATE TABLE), либо - равными NULL (если системная SET-переменная NULL имеет значение ON)

Замечания.

  1. Текущая версия FoxPro не содержит второй стандартной формы команды - INSERT INTO имя_таблицы (команда SELECT), которая, впрочем легко реализуется - например с помощью цикла SCAN прохода по соответствующему команде выборки представлению или курсору (см. далее)

  2. С другой стороны, FoxPro содержит свои собственные, достаточно многочисленные и часто - изощренные способы генерации записей - см., например APPEND, INSERT в справочной системе FoxPro.

Редактирование записей

UPDATE [Имя_базы_данных!]Имя_таблицы

SET Список выражений вида Имя_поля=Выражение

[WHERE Условие_обновления]

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

Логическое удаление записей

DELETE FROM [Имя_базы_данных!]Имя_таблицы

[WHERE Условие_удаления]

помечает записи [,удовлетворяющие заданному условию,] как удаленные.

Замечание. Как обычно в СУБД, логическое удаление записей не означает их фактического, т.е. физического удаления - производимого в FoxPro командой упаковки таблицы PACK; до выполнения последней помеченные как удаленные записи могут быть восстановлены командой RECALL. Помеченные, но фактически не удаленные записи могут включаться или не включаться в последующую обработку в зависимости от значения системной SET-переменной DELETED.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]