Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



СОЗДАНИЕ И МОДИФИКАЦИЯ СТРУКТУРЫ БД




Читайте также:
  1. II. ЕДИНСТВЕННО ПРАВИЛЬНЫЙ ТИП ОРГАНИЗАЦИОННОЙ СТРУКТУРЫ
  2. MS Access. Создание таблиц и запросов.
  3. А)создание венчурных предприятий и структурных подразделений для выполнения особо рискованных проектов;
  4. Абстрактные структуры данных
  5. Автоматическое создание простого отчета.
  6. Агрессия против СССР, создание антигитлеровской коалиции.
  7. Адаптивные структуры управления
  8. Алгоритм определения предпочтительной организационной структуры управления диверсифицированной фирмой
  9. Анализ динамики и структуры депозитов ОАО «РСК Банк», тыс.сом
  10. Анализ динамики и структуры объекта исследования

 

Мы рекомендовали бы начать с более простого - изучения достаточно удобных визуальных средств модификации структуры БД. Тем не менее, далеко не все из них имеют средства "обратной" генерации SQL-кода, в то время как иметь "архивное" определение БД в символьном виде часто и удобно, и необходимо в целях безопасности.

 

Для опытных программистов заметим, что описание структуры БД Visual FoxPro содержит в файле с расширением .dbc, являющимся на деле .dbf-таблицей (что расширяет и без того достаточно богатые возможности программного определения и модификации структуры БД).

 

СОЗДАНИЕ ТАБЛИЦЫ

 

CREATE TABLE Имя_создаваемой_таблицы [NAME* Длинное - до 128 символов - имя_таблицы] [FREE*]

[(ОПИСАНИЕ ПОЛЯ 1 [ПРАВИЛА КОРРЕКТНОСТИ ПОЛЯ 1)],

[(ОПИСАНИЕ ПОЛЯ 2] [ПРАВИЛА КОРРЕКТНОСТИ ПОЛЯ 2])],

…..

[(ОПИСАНИЕ ПОЛЯ n] [ПРАВИЛА КОРРЕКТНОСТИ ПОЛЯ n])],

[ПРАВИЛА КОРРЕКТНОСТИ ЗАПИСИ]

 

(опция FREE - свободная таблица - используется в том случае, если программист не хочет включать создаваемую таблицу ни в одну из существующих БД; в противном случае, по умолчанию, таблица будет включена в БД, открытую на момент исполнения команды CREATE TABLE)

 

где

 

ОПИСАНИЕ ПОЛЯ -

Имя_поля

Тип_поля

[(Ширина_поля [,Точность (число знаков после запятой - для числовых типов])]

 

далее перечисляются допустимые в FoxPro скалярные типы, с указанием имени типа и допустимости для соответствующего типа, опций указания ширины поля (Ш) и точности (Т).

 

Тип Ш Т Комментарий

C n - Character - cимвольная строка некоторой длины n

D - - Date - Дата

T - - dateTime - Дата-время

N n d Numeric - вешественное длины n , d знаков после

запятой

F n d Floating numeric - вещественное длины n, d знаков

после запятой, в форме с плавающей точкой

I - - Integer - целое

B - d douBle - целое двойной точности

Y - - currencY - денежная сумма

L - - Logical - логический

M - - Memo - строка неопределенной длины

G - - General - ссылка на внешний объект

 

à Скалярные типы данных могут различаться как по синтаксису, так и по семантике в различных версиях SQL.

 

ПРАВИЛА КОРРЕКТНОСТИ ПОЛЯ - одна или несколько опций вида



 

[NULL | NOT NULL] - значением поля может (не может) быть неопределенное значение NULL; по умолчанию, значение опции определяется значением системной (SET-)переменной NULL; также по умолчанию, значение NULL не допустимо для первичных ключей и уникальных (UNIQUE) полей;

 

[CHECK Условие корректности поля [ERROR* Текст сообщения о нарушении условия]] - проверяется при каждой модификации, а также при добавлении "пустой" записи; сообщение об ошибке появляется лишь при работе в интерактивном режиме

 

 

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

 

[PRIMARY KEY | UNIQUE] - значение поля является (единственным) первичным ключом записи | должно быть уникальным для каждой записи таблицы; для поддержки соответствующего правила создается индекс с именем, совпадающим с именем поля:

 

[REFERENCES Имя_родительской_таблицы [TAG Имя (тег) индекса]] - значение поля является внешним ключом указанной родительской таблицы [по данному индексу]

 

ПРАВИЛА КОРРЕКТНОСТИ ЗАПИСИ - список из одной или несколько опций вида

 

[PRIMARY KEY Выражение TAG* Имя (тег) индекса |, UNIQUE Выражение TAG* Имя индекса] - указанное выражение определяет (единственный составной) первичный ключ записи | обязано быть уникальным для каждой записи; для поддержки соответствующего правила создается индекс с указанным именем (тегом);



 

[, FOREIGN KEY Выражение TAG* Имя_индекса

REFERENCES Имя_родительской таблицы [TAG* Имя индекса родительской таблицы]] - указанное выражение определяет (составной) внешний ключ записи, поддерживаемым родительским индексом с указанным тегом

 

[, CHECK Условие корректности записи [ERROR* Текст сообщения о нарушении условия]]) - проверяется при каждой модификации, а также при добавлении "пустой" записи; сообщение об ошибке появляется лишь при работе в интерактивном режиме

 

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

 

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 (см. документацию).

 


Дата добавления: 2015-01-29; просмотров: 9; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2022 год. (0.014 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты