Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Database_Quick.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
135.55 Кб
Скачать
  • PRIMARY - столбец первичного индекса;

  • DISALLOW NULL - столбец не может быть оставлен пустым

  • Ignore null - запись будет проигнорирована, если этот столбец пуст

CREATE UNIQUE INDEX MyIndex ON stud (fio_stud) WITH DISALLOW NULL

Запись не будет вставлена в таблицу, если поле fio_stud будет пустым

Можно использовать CREATE INDEX, чтобы создать индекс для присоединенной таблицы, которая его не имеет. Для этого не обязательно иметь права на доступ к таблице. Достаточно иметь права только на чтение.

Создание индекса при помощи ALTER TABLE

ALTER TABLE stud ADD CONSTRAINT key_stud PRIMARY (key_stud)

можно добавить индекс по многим полям

ALTER TABLE stud ADD CONSTRAINT MyIndex UNIQUE (fio_stud, birthday_stud)

Предложение CONSTRAINT и целостность ссылок

Предложение CONSTRAINT позволяет определять первичные и внешние ключи, чтобы установить отношения и поддерживать целостность ссылок

Создание индекса по одному полю

CONSTRAINT имя {PRIMARY KEY | UNIQUE | REFERENCES внешняя таблица [(внешнее поле1, внешнее поле2)]}

Создание индекса по многим полям

CONSTRAINT имя {PRIMARY KEY (первич1 [, первич2]) | UNIQUE (уник1 [, уник2]) | FOREIGN KEY (ссылка1 [, ссылка2]) REFERENCES внешняя таблица [(внешнее поле1, внешнее поле2)]}

Аргумент

Описание

Имя

Наименование создаваемого индекса

первич1, первич2

Поля первичного ключа

уник1, уник2

Поля неповторяющегося ключа

ссылка1, ссылка 2

Наименование поля внешнего ключа или полей, которые ссылаются на поля в другой таблице

внешняя_таблица

Наименование внешней таблицы, содержащей поле или поля, определяемые параметром внешнее поле

внешнее_поле1

Наименование поля или полей в таблице внешняя_таблица, заданных ссылка1, ссылка2

Пример добавления внешнего ключа key_town к таблице stud для создания отношения (использование ключевых слов FOREIGN KEY) межу таблицей stud и таблицей town

ALTER TABLE stud ADD CONSTRAINT key_town FOREIGN KEY (key_town) REFERENCES town (key_town)

Ключевые слова

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

PRIMARY KEY - определяет набор полей как первичный ключ. В таблице может быть только один первичный ключ. Значения полей должны быть неповторяющиеся

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

Sub proba_DB5()

Dim i As Integer

Dim strSQL As String

Dim path As String

path = ActiveWorkbook.path

Set MyWs = DBEngine.Workspaces(0)

If Dir(path + "\DBproba2.mdb") <> "" Then Kill path + "\DBproba2.mdb"

Set MyDB = MyWs.CreateDatabase(path + "\DBproba2.mdb", _

dbLangCyrillic, dbVersion40)

strSQL = "Create table stud ([key_stud] COUNTER CONSTRAINT key_stud PRIMARY KEY, [fio_stud] TEXT (50),[birthday_stud] DATETIME, [key_town] LONG )"

MyDB.Execute strSQL

strSQL = "Create table town ([key_town] COUNTER PRIMARY KEY, [name_town] TEXT (50))"

MyDB.Execute strSQL

strSQL = "ALTER table stud ADD CONSTRAINT key_town FOREIGN KEY(key_town) REFERENCES town (key_town)"

MyDB.Execute strSQL

MyDB.Close

End Sub

Уплотнение базы данных

Для повышения быстродействия Visual Basic откладывает удаление ненужных (удаленных) страниц до тех пор, пока не будет закрыта база данных и не будет произведено уплотнение неиспользуемых страниц. Через некоторое время можно обнаружить, что файл mdb возрастает пропорционально удаляемой и добавляемой информации.

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

Перед уплотнением базы данных она должна быть закрыта. Также нельзя использовать одинаковые имена для исходных и результирующих баз. Уплотнение нельзя выполнять внутри транзакции

DBEngine.CompactDatabase исх_имя, Рез_имя, стандарт, параметры

Стандарт и параметры - такие же как и у CreateDatabase

Пример:

DBEngine.CompactDatabase "C:\temp\my_old_db.mdb", "C:\work\my_new_db.mdb", dbLangGeneral

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